Pomodoro Timer GUI emulates the Pomodoro Technique which is a time management method that breaks work into intervals separated by short or long breaks.
Make sure to install the DearPyGUI and Playsound Modules for it to work. You can follow the installation to DearPyGUI here and Playsound here .
Alternatively just do pip install dearpygui==1.0.2 and pip install playsound==1.2.2 on your terminal
- PyCharm IDE
- DearPyGUI v1.0.2 (GUI Framework)
- Playsound Module v1.2.2
- Python 3.8+
Note: You can run the software through the .exe file located in the dist folder
Configured settings will be stored on local json file after starting the session
User can check out the total mins of focus and the total pomodoros they have done so far
- Pause - Pauses the timer
- Stop - Stops the timer, and returns user back to the setting configurations
- Restart - Resets the timer to the original timer and the Pomodoro Counter
- Resume - (only available once the user pauses the timer) Resumes the timer
Once the timer finishes, a small dialog appears that asks the user either to continue with focusing or take a break. The day's pomodoro counter will be incremented and saved to the json file
(For Window 10 Users only) Once the timer is finished it will also display a notification
- When using a new framework like this, it is important to visit their communities (i.e. Discord and Reddit) for help as usually problems don't appear often in popular sites like stackoverflow
- Python has a more cleaner way of setting up a GUI as opposed to in Java.
- Since threading was involved in counting down the timer and updating the GUI, I had to make them into daemon threads which meant that once the main thread ends it ends the process almost immediately
- If I wanted a make a thread wait for another thread, I'd have to use the join()
- I found it easier to create the GUI that I wanted with DearPyGUI as opposed to Swing framework from Java.
- The reason why I chose DearPyGUI over other frameworks like Tkinter, QT, or Kivy is that it is open-source, I don't need to worry about the terms and conditions especially for a small project like this, and it has a very active community (Discord and Reddit).
The images I used for this project are not mine. You can find the sites where I got the images below