This is a Python-based app built with customtkinter
and tkinter
to make managing employee data quick and hassle-free. You can add, view, update, and delete employee records easily, thanks to an interactive table powered by ttk.Treeview
. The whole thing is structured using Object-Oriented Programming (OOP), keeping the code clean and easy to maintain. Event handling is in place to ensure smooth user interaction, and the dark-themed UI, styled with ttk.Style
, gives it a modern touch.

Now, let’s dive into the details of how the app works and how I handled common user mistakes. When entering data, users might leave fields empty, enter invalid formats (like text in a salary field), or forget to select required options. To prevent these issues, I added input validation and error handling. If something's off, the app gives clear messages instead of crashing. This way, users can quickly fix their input and keep things running smoothly.
If a user starts filling in the fields but forgets or skips one, they’ll get a clear error message reminding them that all fields must be filled. This ensures no incomplete records are saved. The app won’t proceed until everything is properly entered, making sure the data stays clean and accurate. Instead of crashing or allowing bad input, it prompts users to fix mistakes right away.

If a user enters incorrect data in a field, the app will show an error message explaining what needs to be fixed. Here’s how validation works for each field:
- Name: Must contain only letters. If numbers or special characters are entered, the user will be asked to correct it.
- Role: Cannot be left empty. If skipped, an error message will appear.
- Salary: Must be a number. If a user types text or leaves it blank, they’ll get a warning.
- Department: Required field. The user must enter a valid department name.
- Hire Date & Status: Must be in
YYYY-MM-DD
format. If entered incorrectly, an error will pop up asking for the correct format. - Gender: The user must select an option from the dropdown. If they try to leave it blank, they’ll be reminded to choose one.
The app won’t proceed unless all fields are correctly filled out, ensuring clean and accurate data.

Need to update an employee’s details? No problem! Whether you’re changing just one field or updating everything, the Update Employee button makes it easy.
For example, if you want to update an employee’s salary:
- Click on the employee’s record in the table.
- Enter the new salary in the Salary field.
- Hit the Update Employee button.
- The app will check if the input is valid before saving.
- If there’s a mistake—like typing letters instead of numbers—you’ll see an error message telling you what to fix.
This works the same way for all fields. The app makes sure everything is entered correctly before saving, so no bad data gets stored.


If an employee leaves the company—whether they got a new job, retired, or were let go—you can easily remove their record using the Delete Employee button.
Here’s how it works:
- Select the employee from the table.
- Click the Delete Employee button.
- A confirmation message will pop up to make sure you really want to delete the record.
- Once confirmed, the employee’s data will be permanently removed.
This keeps the records clean and up to date, so you’re only managing active employees.


Need to wipe all employee data and start fresh? Just hit the Reset Application button.
Here’s what happens:
- Click Reset Application.
- A message pops up asking if you're sure.
- If you confirm, all employee records get deleted for good.
- The app refreshes, leaving you with a clean slate.
This is great if you want to clear everything at once instead of deleting records one by one. Just a heads-up—once you reset, there’s no undo!


Thanks for making it this far! I’d love for you to stay tuned and check out my future updates. I’ll be adding new features soon, like searching for employees by name or ID and exporting data to an Excel sheet.
So, keep an eye out for updates! And if you’ve got any feedback, I’d really appreciate it.