Create a Pomodoro Timer in Python
by rh5
Increasing Efficiency Journey Overview
Follow this step-by-step increasing efficiency journey to see real progress updates, challenges overcome, and practical experience.
Progress Updates (4 total)
Update #1: Create a Pomodoro Timer in Python
While I begin to focus back into the real world, I need to be time efficient. I discovered the pomodoro technique back in my senior year of high school, and it is a highly effective strategy for me to get work done. Essentially, it involves breaking work into focused intervals (usually 25 minutes) separated by short breaks (usually 5 minutes).
Update #2: Basic GUI Created
80% completeAlthough I have designed multiple GUIs with PyQT/Pyside, it always takes me a second to reestablish myself. Using the pyqt docs, and random tutorials I have designed a basic GUI using the QWindow.
This is going to be a very basic pomodoro timer for now as I need to go back to grad school apps haha. I just want something that will get the job done.
Challenges Overcome: The primary window is designed. I will want to design it better in the future, but for now the overall idea is there. There will be a countdown, the ability to start and stop the timer, and a display until the long break is ready for you.
Obstacles Faced: Although it should be relatively straightforward, I need to figure out the logic with implementing the countdown, switching to a break countdown, and tracking the long break.
Looking Back: N/A for now.
Additional Notes: Wow, I'm rusty. Although I have a lot of work to do, this is a good project to re-acclimate me.
Update #3: Timer Functionality
100% completeUsing Qt's signals and slots and QTimer, I added a timer that properly decrements and adds a long break after 4 cycles.
Challenges Overcome: Timer properly decrements and the buttons work as expected.
Obstacles Faced: My variable naming convention threw me off and figuring out how to make sure the breaks only incremented after the timer and not the break timer was messing with my jetlagged brain.
Looking Back: I would have started neglecting the breaks, first implement the timer, then work the breaks in afterwards instead of trying to do it all at once.
Update #4: Added Notifications
100% completeWell, with the timer working, it would kinda be lame if I didn't get notified when it was done. Thanks to notif-py, cross-platform notifications work really simply, and you can add audio/images whatever.
I'm used to .exe's with windows. I need to do some more research for pyinstaller and mac. For now, I will say this is completed :).
Challenges Overcome: I did it!
Obstacles Faced: Can't make a .exe equivalent for mac haha, but if you want the .exe let me know!
Looking Back: I tried using Pyler. I pip installed and it didn't work. I tried debugging and eventually just looked for another cross-platform library for notifications. I wish I didn't waste so much time with that one.
Discussion: Have you heard of the Pomodoro Technique? If you have tried it, has it been effective for you?
Are there other study methods you use instead?