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:

  1. 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").
  2. 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.

Built With

Share this project:

Updates