Professional Documents
Culture Documents
class DiaryApp:
def a_start_page(self):
self.start_frame = ttk.Frame(self.root)
self.start_frame.pack(padx=20, pady=20)
def a_login_main(self):
self.start_frame.destroy()
self.login_frame = ttk.Frame(self.root)
self.login_frame.pack(padx=20, pady=20)
ttk.Label(self.login_frame, text="Login", font=("Helvetica", 16,
"bold")).grid(row=0, column=0, columnspan=2,
pady=10)
ttk.Button(self.login_frame, text="Login",
command=self.a_login_main_button).grid(row=3, column=0, columnspan=2,
pady=10)
ttk.Button(self.login_frame, text="Back to Start Page",
command=self.a_login_main_back).grid(row=4, column=0,
columnspan=2,
pady=10)
self.frames = []
def a_login_main_button(self):
login_id = self.login_id_entry.get()
password = self.password_entry.get()
else:
messagebox.showerror("Error", "Invalid login ID or password!")
def a_login_main_back(self):
self.login_frame.destroy()
self.a_start_page()
def a_register(self):
self.start_frame.destroy()
self.register_frame = ttk.Frame(self.root)
self.register_frame.pack(padx=20, pady=20)
columnspan=2, pady=10)
ttk.Button(self.register_frame, text="Register",
command=self.a_register_button).grid(row=6, column=0,
columnspan=2, pady=10)
ttk.Button(self.register_frame, text="Back to Login",
command=self.a_register_back).grid(row=7, column=0,
columnspan=2, pady=10)
def a_register_button(self):
username = self.username_entry.get()
user_id = self.user_id_entry.get()
email = self.email_entry.get()
password = self.password_entry.get()
encodedpw=self.fernet.encrypt(password.encode())
print(username,user_id,email,password)
print(encodedpw , type(encodedpw))
confirm_password = self.confirm_password_entry.get()
if len(user_id) < 1 or len(username) < 1:
messagebox.showerror("Error", "Username and UserId Cannot be empty.")
return
if password != confirm_password:
messagebox.showerror("Error", "Passwords do not match!")
return
try:
# Code to register user in database
conn = sqlite3.connect('data.sqlite')
cursor = conn.cursor()
def a_register_back(self):
self.register_frame.destroy()
self.a_start_page()
def a_login_admin(self):
self.start_frame.destroy()
self.admin_login_frame = ttk.Frame(self.root)
self.admin_login_frame.pack(padx=20, pady=20)
columnspan=2,
pady=10)
ttk.Button(self.admin_login_frame, text="Login",
command=self.a_login_admin_button).grid(row=3, column=0,
columnspan=2, pady=10)
ttk.Button(self.admin_login_frame, text="Back to Login",
command=self.a_login_admin_back).grid(row=4, column=0,
columnspan=2,
pady=10)
def a_login_admin_button(self):
# Code to handle admin login
pass
def a_login_admin_back(self):
self.admin_login_frame.destroy()
self.a_start_page()
def dashboard(self):
self.login_frame.destroy()
self.dashboard_frame = ttk.Frame(self.root)
self.dashboard_frame.pack(padx=20, pady=20)
columnspan=3, pady=10)
ttk.Button(self.dashboard_frame, text="Save",
command=self.b_save).grid(row=3, column=0, pady=10)
ttk.Button(self.dashboard_frame, text="Set Reminder",
command=self.set_reminder).grid(row=3, column=1, pady=10)
ttk.Button(self.dashboard_frame, text="Upload Images",
command=self.upload_images).grid(row=3, column=2,
pady=10)
# Image display area
self.image_label = ttk.Label(self.dashboard_frame)
self.image_label.grid(row=4, column=0, columnspan=3, pady=10)
def upload_images(self):
# Open file dialog to select an image file
file_path = filedialog.askopenfilename(filetypes=[("Image files",
"*.png;*.jpg;*.jpeg")])
if file_path:
# Display the selected image
self.display_image(file_path)
def display_image(self, file_path):
# Open the image file
image = Image.open(file_path)
# Logout button
ttk.Button(self.dashboard_frame, text="Logout",
command=self.b_logout).grid(row=5, column=0, columnspan=3,
pady=10)
def set_reminder(self):
# Code to set reminder
pass
def upload_images(self):
# Code to upload images
pass
def b_save(self):
# Get the text and selected date from entry fields and do further
processing
d_newText_data = self.text_entry.get("1.0", tk.END)
selected_date_entry = self.date_entry.get_date()
format_string = "%Y-%m-%d"
dateStr = selected_date_entry.strftime(format_string)
print(type(dateStr))
print(d_newText_data)
try:
# Code to register user in database
conn = sqlite3.connect('data.sqlite')
cursor = conn.cursor()
print(self.user[0], selected_date_entry, d_newText_data)
# Add the username and password in the database --INSERT INTO
diary_entries (userid,date,diarytext) VALUES (2,"2024-03-23","adadad")
cursor.execute("INSERT INTO diary_entries (userid,entrydate,diarytext)
VALUES (?,?,?)",
(self.user[0], dateStr, d_newText_data))
print("Succesfully Inserted!")
conn.commit()
print("Succesfully Commited!")
# Close the database connection
conn.close()
def b_logout(self):
self.dashboard_frame.destroy()
self.a_start_page()
root = tk.Tk()
app = DiaryApp(root)
root.mainloop()