Deep Focus Tracker

PythonCron JobsPushover API

Tuesday, October 1, 2024

A Pomodoro App that Levelled Up My Productivity

I’ve used a lot of Pomodoro timers over the years. They were great for deep work—until I wanted to know just how deep I was going. The timer I used did track those stats, but they were locked behind a paywall. So, I thought, why not build my own? Thus, the Deep Focus Tracker was born.

Key Features:

  • CI/CD Integration: I used GitHub for continuous integration and tests to ensure every new feature or bug fix didn’t break existing functionality. This helped maintain code quality and streamlined the development process.
  • Pomodoro Timer: The classic 25-minute work session, short breaks, and a long break after every four rounds—it's the structure that keeps productivity flowing.
  • Time Tracking: Automatically records all my focus sessions, so I can analyze just how much time I’m spending in deep work.
  • Weekly Reports: Every Sunday morning at 10 a.m., I get a notification on my phone via Pushover summarizing my total focus time for the week. I used the Pushover API to send these notifications, which cost me $5 and I have it for life 💸.
  • Visual Stats: Clean and simple bar charts to visualize my daily focus time—because numbers are more motivating when they look good.

This project is built with Python, and it was my first dive into the world of CI/CD. I chose Python for its versatility and the wide array of libraries available, including Pygame for a smooth UI and JSON's for lightweight data storage. I continuously refined it through a feedback loop—finding bugs, improving error handling, and solving tricky bugs like ensuring data consistency after unexpected shutdowns, improving error handling by implementing try-except blocks to manage application crashes, and ensuring data tracking continued smoothly even if the app was unexpectedly closed.

One of my favorite challenges was setting up automated notifications. I wanted to see if I could motivate myself by competing... with myself. Using a cron job, I faced challenges such as using the proper version calls of python to run my API script. Using a cron job, I automated weekly notifications to send me my deep work tally. Every Sunday, it’s a reminder of how committed I’ve been, and honestly, it’s boosted my productivity to new heights. I’m finishing homework ahead of schedule, diving into extracurriculars, and even getting a jump on those college applications.

I genuinely love this project, and it’s become part of my daily routine. Feel free to check out the code on GitHub: Deep Focus Tracker.