Inspiration
With modern algorithms engineered to keep users addicted with dopamine hits, staying concentrated while studying can be challenging. I have been struggling to keep my new year’s resolution of reducing my screen time by 25%, in fact, it has gone up! Oftentimes, I have been too lazy to start studying, and when I have, I find it hard to stay concentrated for a long time without losing productivity. While I have tried simple pomodoro timers, I have always found myself “cheating the pomodoro” by taking breaks when I was not supposed to and by working through my breaks. I created Breakify to create that accountability for students like myself, and to motivate them to achieve more focused and productive study sessions together.
What it does
Breakify useless your webcam to monitor your studying. It will automatically start and stop the pomodoro timer for you whenever you are in frame. Additionally, Breakify will play a warning sound whenever you attempt to “cheat the pomodoro” by leaving or using your phone during work periods. Once your work sessions are up, it will play a sound letting you know that you are on break. It will then give you a timer for your breaks and let you know how focused your session was. It will give you a chance to reflect on your previous session and plan ahead for your next session. To keep users motivated to consistently use the app, Breakify also features a leaderboard with the ability to view other people’s time on the app, number of sessions. In this leaderboard, Breakify also gives users a “focus score” that reflects how focused your sessions were, on average. Breakify is also fully customizable, with the ability to set work and break lengths. Finally, users can create accounts that are used to post their sessions to the leaderboard, and store their settings.
How we built it
In order to build Breakify, we used a React frontend with Javascript and CSS. In order to keep the user’s compute requirements low (so that running Breakify on older laptops won’t make them inoperably slow), we also integrate a Flask backend that runs YOLO12n to find people and cell phones in each frame. In order to ensure privacy, we do not store users’ video recordings; rather, we replace each frame of the video as soon as a new frame comes in from any user. We also do not link users’ accounts to the video frames that we are processing. We also used a PostgreSQL server to store all of our user’s information, following standard security protocols, like hashing servers rather than saving them in plaintext. In order to host this, we used Vercel to host the app’s React frontend and Runway to host the backend.
Challenges we ran into
Tuning the YOLO detector to accurately detect cellphones and people was challenging, as I had to painstakingly balance the number of false positives and false negatives. Additionally, since this was my first time using PostgreSQL with Python, I had to adapt to PostgreSQL from the sqlite3 system that I was used to. I also faced challenges in making the UI, mainly in designing for minimalism while packing in functionality. Hosting a live app online was also challenging for me, as I had no experience hosting before. Here, I had to carefully decide amongst different platforms based on their compute, RAM, and storage availability, and I eventually landed on Vercel and Runway. Using the Runway free plan required intense storage optimization in order to make the backend’s execution only use 512 megabytes of data, such as switching models and reducing the size of our PostgreSQL’s storage requirements.
Accomplishments that we’re proud of
We’re proud to have built a fully functional productivity app that combines computer vision, web development, and data management into a seamless experience. Breakify integrates a React frontend with a Flask backend powered by YOLO12n, enabling real-time monitoring of study sessions directly through the user’s webcam. One of our biggest accomplishments was achieving this functionality while maintaining strict privacy standards by processing each frame in real time without storing any video data. We also implemented a PostgreSQL database with robust security practices, including password hashing and efficient query management. Successfully deploying the system across Vercel and Runway was another major milestone. Despite limited compute and storage resources, we optimized YOLO’s model weights, reduced PostgreSQL overhead, and created a smooth, responsive web experience. The project not only works reliably but also feels intuitive and motivating for users.
What we learned
Throughout the development of Breakify, we gained valuable experience across multiple domains of technology and design. From a technical standpoint, we learned how to tune object detection models, specifically balancing false positives and false negatives when detecting phones and people to achieve reliable real-world performance. Transitioning from SQLite3 to PostgreSQL taught us advanced concepts in database management, security, and scalability. We also deepened our understanding of UI/UX design, discovering how to maintain minimalism without sacrificing functionality. On the deployment side, we learned to navigate the complexities of cloud hosting, evaluating platforms based on their compute limits, performance, and ease of integration with our tech stack. Most importantly, we learned how to connect multiple technologies into a unified, production-ready product that solves a real problem faced by students.
$$ What’s next for Breakify
Our next goal is to make Breakify smarter, more social, and more adaptive. We plan to:
Enhance YOLO’s accuracy through additional fine-tuning and dataset augmentation for better phone and user detection in varied lighting conditions. Expand the leaderboard system to include community-based challenges, daily focus streaks, and group productivity rooms for friends or study groups. Create public-facing profiles and work streaks to further encourage users to continue staying focused in their work mprove personalization by introducing AI-powered focus analytics—offering insights into a user’s most productive hours, consistency trends, and customized break suggestions. Add mobile and desktop integrations, allowing synchronization between devices and potentially supporting study data visualization over time.
Built With
- flask
- postgresql
- pytorch
- react
- render
- vercel
- vite
- yolo
Log in or sign up for Devpost to join the conversation.