Exercise Tracker — Project Submission
Inspiration
We were inspired to build a fitness tracker that works right from the browser using just a webcam. With so many people working out at home, we wanted to create something that could help users track their exercises without needing expensive equipment or wearable devices.
Our goal was to make something simple, accessible, and motivating — especially for students or people new to working out. We also wanted to explore how computer vision and AI can be used in everyday wellness.
How We Built It
We used the following tools and technologies to bring our idea to life:
- Python & Flask — for building the backend and serving the web interface
- OpenCV & MediaPipe — for real-time pose detection and gesture tracking
- HTML/CSS — for designing the user interface
We wrote separate Python scripts for each exercise (squat, push-up, sit-up, and plank), using MediaPipe to detect body landmarks. Flask handles routing and opens the appropriate tracker based on user selection.
What We Learned
- How to use MediaPipe to detect human pose and hand gestures
- How to connect Flask with Python scripts for real-time execution
- The importance of clean UI and user feedback in a fitness app
- How to debug camera issues and improve OpenCV display handling
Challenges We Faced
- Camera window behavior: Making OpenCV windows appear in front of the browser and remain responsive
- Gesture accuracy: Fine-tuning thresholds to detect hand-on-head or hands-apart gestures reliably
- Cross-platform compatibility: Making sure it works regardless of Python version or OS
- Integration: Linking the Flask frontend to individual exercise trackers smoothly
Outcome
This project taught us a lot about combining AI, real-time processing, and web development, and we’re excited to keep improving it.
Future plans
To improve the project, we plan to expand the range of exercises supported by the tracker, starting. We’re also working on making the detection more accurate by refining angle calculations and adding more smoothing to reduce false counts. On the Flask side, we aim to improve the user interface to make it more intuitive and add a dashboard where users can view their workout history and progress over time. Eventually, we’d like to integrate user accounts and mobile compatibility for easier access
Log in or sign up for Devpost to join the conversation.