Simple Task Manager Update 11/03/2023

Simple Task Manager new UI
Update 13

Hello everyone it has been a while since my last post, partially due to being overseas but also due to commitments with university. I have made some nice UI improvements to Simple Task Manager and I have also added some new functionality to it which I cannot wait to share with you all down below!

Updates (Summary)

  • Changed UI to look more presentable
  • Added a search by tag feature
  • Created a custom error message to match theme

Key Points

Custom Tkinter

The most noticeable change that I have made to Simple Task Manager, was replacing the original UI with a module called Custom Tkinter by TomSchimansky. Tom has done some amazing work with this module and he even has great documentation to go with it. It is because of that documentation, that I was able to transition from Tkinter smoothly. The difference as you can see is night and day, I am also really happy that my application does not look like it is built for windows 95. The most impressive feature that this module has is its ability to change from dark mode to light mode depending on the user’s OS theme. You can see it in action below.

Simple Task Manager new UI
Dark Mode
Light Mode

Project Management

Because I am so busy with university I thought I could use a little help managing my project. I decided to make a Trello board for Simple Task Manager. This is a great application as it helps me remember what I was doing last and what needs to be completed next. I also have a little tab for issues that come up during testing so that I can go and fix them later.

Search Feature

The next feature I added to Simple Task Manager was a search feature that lets the user search for tasks with a specific tag. Before I even attempted this, I created a flow chart using pseudo code, to explain the logic of how this would work. I heard this is a great way to plan a new function instead of just charging in and coding.

Flowchart of search function
Flowchart of search function

The function works by the user clicking a search button and then the user is asked to enter a tag that they would like to search for. Once the user enters a tag, the tasks that have that tag are then displayed. The user can then see all the tasks again by clicking the “Show All tasks” button.

Search function gif

The challenge of making this function was how do I keep track of tasks that do not match the searched tag, as they are removed from the Tree View. To solve this problem I just saved all the tasks to a temporary list when the user searches for a tag. Then when the user clicks “Show All Tasks” the Tree View is repopulated with that temporary list and the temporary list is cleared. Another challenge I had to face was, what if the user closes the application after they have searched for a tag. Currently, the saving feature saves all the tasks from Tree View by writing to a CSV file on the closing of the application. Because this is the case it means the other tasks that are temporarily removed from Tree View would not be saved. To work around this I simply made an if statement in this function. The statement checks if the temporary list where the tasks are temporarily stored is populated or not. If it is then write to the CSV using tasks in that list. If the temporary list is not populated then write as usual with the tasks from Tree view.

Updated write data function

Custom Message Box

The last thing I did was make a custom message box, as Custom Tkinter does not have its own one, and I did not want to use the windows 95 looking Tkinter one. Luckily Custom Tkinter makes it easy for you to make your own little widgets. (Shout out to Creatype and Dewi Sari) for these awesome icons that they have created!)

Old message box
New dark message box
New light message box

Conclusion

I am really happy with Simple Task Manager’s new look and I am also happy with the search by tag function. I think I am getting closer to finishing Simple Task Manager, as the main functionality is probably complete. The next thing I would like to do is give the user the ability to change the colours of the task highlighting system, which should not be too difficult. I would also like to make a help button that the user can press to explain how the application works. Finally, I just want to add some more polish to the application and then all that would be left is to test it for a while.
Thanks for reading my post until next time!

Leave a Comment