Inspiration
Many students struggle to stay awake and maintain focus during long study sessions, especially when studying alone. This challenge inspired us to create Wakey Wakey – a productivity app designed to keep students awake, alert, and focused. By combining real-time drowsiness detection with a Pomodoro timer, Wakey Wakey provides an innovative solution for students to combat fatigue and procrastination while studying effectively.
What it does
Wakey Wakey is a smart focus app that ensures students stay productive by:
- Drowsiness Detection System:
- Monitors the user's face through their webcam to detect signs of drowsiness in real-time.
- Alerts the user with an alarm and visual feedback when they begin to doze off, using a bounding box and status label ("Awake" or "Dozing Off").
- Pomodoro Timer:
- A productivity timer to help students focus using short work intervals and regular breaks.
- Allows users to customise work and break durations.
- Plays an alarm to signal the end of each session.
How we built it
- Frontend:
- Built using React for the user interface.
- Styled with Tailwind CSS for a responsive and modern design.
- Hosted on Vercel for easy deployment and scalability.
- Backend:
- Built with Flask to handle drowsiness detection and API endpoints.
- Utilised YOLOv5 for real-time drowsiness detection using a trained machine learning model.
- Used OpenCV to process video frames and detect the user's face.
- Hosted on Heroku to provide a reliable and scalable backend.
- Machine Learning:
- Dataset labelled and trained using YOLOv5 for accurate drowsiness detection.
- The model detects and identifies user states (e.g., "Awake" or "Dozing Off") in real-time.
Challenges we ran into
- Model Training:
- Ensuring the YOLOv5 model achieved high accuracy with limited training data.
- Labelling the dataset manually, which was time-consuming and required precision.
- Frontend Development:
- Designing an intuitive interface that integrates real-time drowsiness feedback and the Pomodoro timer seamlessly.
- Integration:
- Connecting the React frontend with the Flask backend and ensuring smooth communication.
- Managing CORS issues during deployment.
- Deployment:
- Debugging Python dependencies on Heroku and ensuring the backend ran correctly after deployment.
Accomplishments that we're proud of
- Successfully creating a fully functional web app that integrates both drowsiness detection and a Pomodoro timer.
- Achieving high drowsiness detection accuracy using a custom-trained YOLOv5 model.
- Developing a responsive and user-friendly interface that provides real-time feedback.
- Overcoming deployment challenges to host the app on both Heroku and Vercel.
What we learned
- Enhanced our knowledge of React and Tailwind CSS to build modern, responsive web applications.
- Gained experience in training machine learning models with YOLOv5 and improving their performance through dataset labelling and fine-tuning.
- Learned how to seamlessly integrate frontend and backend services, managing real-time communication and CORS issues.
- Improved our understanding of deploying web applications to platforms like Vercel and Heroku.
What's next for Wakey Wakey
- Integration with Driving Systems:
- Expand the app's use case to detect drowsiness while driving in vehicles like cars, buses, and trucks.
- Advanced Features:
- Add analytics to help users track focus trends and drowsiness over time.
- Incorporate gamification elements to make productivity more engaging.
- Multi-Device Support:
- Extend compatibility to mobile devices and tablets for broader accessibility.
- Improved Detection:
- Further refine the YOLOv5 model for even higher accuracy in different environments and lighting conditions.
Log in or sign up for Devpost to join the conversation.