🚀 Inspiration
As students constantly battling stress, screen time, and irregular routines, we’ve realized staying active is hard. One of our team members recently started going to the gym but struggled with motivation, form, and structure. The question became:
What if you had a personal trainer that fit in your pocket?
Most fitness apps throw random workouts at you without feedback or correction. We wanted something smarter—an AI-powered experience that understands your goals, tracks your form, and grows with you.
🛠️ What We Built
Work-it-out is a full-stack workout assistant that:
- 📅 Generates personalized weekly workout plans based on your goals.
- 🎥 Tracks your reps in real time using your webcam + pose detection.
- 🧠 Classifies exercises like squats, push-ups, bench press using MediaPipe + TensorFlow.
- 🔘 Launches the correct form-tracking script with a single click—no setup, no terminals.
It’s a personal coach, rep counter, and workout planner—all in one app.
💡 What We Learned
- How to bridge the React/Next.js frontend with Flask + Python-based pose tracking.
- How to launch MediaPipe pose estimation in real-time for form classification and rep counting.
- How to handle script execution through Flask, dynamic data routing, and smooth UI feedback.
- How to design a frictionless experience that feels native—despite working across two languages.
😅 Challenges
- Integrating MediaPipe’s real-time detection with webcam feeds and counting reps accurately.
- Dynamically mapping GPT-generated exercises (like “Incline Bench Press”) to Python scripts.
- Ensuring each
.pyscript launched correctly without freezing the backend. - Dealing with CORS, Windows subprocesses, and path resolution across systems.
✅ Outcome
We created an AI workout generator with real-time rep tracking that runs locally, launches with one click, and works out of the box. No CLI. No setup. Just results.
For students like us—and millions of others trying to stay active—it’s one less excuse and one more reason to show up.

Log in or sign up for Devpost to join the conversation.