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.
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.
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.
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.
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!)
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!