Smart AI-powered fitness companion with realβtime pose detection, gamified progress, personalized plans, and a community leaderboard. Built for speed, accessibility, and fun. β¨
- Highlights
- Architecture
- Tech Stack
- Features
- Getting Started
- Available Pages
- API Overview
- Folder Structure
- Troubleshooting
- Contributing
- π‘ Personalized Workouts: Tailored exercise routines and deskβfriendly movements
- π₯ Realβtime Pose Coaching: MediaPipe + TensorFlow.js guidance via your webcam
- π§ AI Insights: Hydration nudges, habit tracking, and daily goals
- π§βπ€βπ§ Community & Leaderboard: Stay motivated with friendly competition
- ποΈ Kanban Productivity: Plan health tasks with a dragβandβdrop board
- π Auth & Profiles: JWT auth, user profiles, achievements and badges
Judges: jump to "Getting Started" to run the project quickly.
- βοΈ React 18, React Router
- β‘ Vite, ESLint, Tailwind CSS
- π§ TensorFlow.js, MediaPipe Pose
- π₯ Firebase (client SDK)
- π© Node.js, Express
- π MongoDB, Mongoose
- π€ Sign up, sign in, and profiles
- ποΈ Exercise flows: pushup, pullup, lunges, squats, shoulder press, bicep curls, front raises, high knees, morning routine
- π» Desk exercises: hand, curls, knee raises
- π§ Hydration break alerts
- πΊοΈ Personalized plan suggestions
- π§± Kanban task board (dragβandβdrop)
- π Leaderboard and badges
- πͺ Events and community space
- Node.js 18+ and npm
- MongoDB Atlas (or local MongoDB)
- A modern browser with webcam access (for pose features)
Create server/.env with:
MONGO_URI=mongodb+srv://<username>:<password>@<cluster>/<db>?retryWrites=true&w=majority
PORT=8080
JWT_SECRET=change_this_secret
Firebase config for the client is read from client/src/components/firebaseConfig.jsx. Ensure your keys are set there if required.
Open two terminals or use a multiplexer. Commands are Windowsβfriendly.
- Backend (Express + MongoDB)
cd server
npm install
npm start
# Server listens on http://localhost:8080 by default- Frontend (Vite + React)
cd client
npm install
npm run dev
# App runs on http://localhost:5173 by default/Landing page/login,/signupAuth/dashboardOverview widgets + quick links/exerciseExercise hub/exercise/pushup(and similar for others)/personalizedPersonalizedExercise/kanbanKanbanFlow/leaderboardLeaderboard/communityCommunity/dietDietPlan/eventEvent/profileProfile
Base URL: http://localhost:8080/api
POST /authAuthentication routes (login/register)GET/POST/PUT/DELETE /tasksTask CRUD for the Kanban boardGET /users/:idUser profile and stats
See server/routes/ and server/controllers/ for details.
FitFlow.ai-master/
ββ client/
β ββ public/ # Static assets (gifs, images)
β ββ src/
β β ββ components/ # UI and auth components
β β ββ pages/ # Feature pages (Exercise, Kanban, etc.)
β β ββ lp/ # Landing page sub-app
β β ββ data/ # Data helpers
β ββ package.json
ββ server/
ββ config/db.js # Mongo connection (uses MONGO_URI)
ββ controllers/ # Route handlers
ββ models/ # Mongoose schemas
ββ routes/ # Express routers
ββ server.js # App entrypoint
ββ package.json
- π§© Pose not detected: ensure camera permission is granted and page is served over
http://localhost. - π Auth errors: verify Firebase config and server
JWT_SECRET. - πΏ DB not connecting: doubleβcheck
MONGO_URIand network IP allowlist on MongoDB Atlas. - π§΅ CORS issues: server enables CORS; ensure frontend uses the correct base URL.
Contributions are welcome! Feel free to open issues or PRs. Please keep code readable and consistent, and add clear descriptions to changes.
Built with β€οΈ, caffeine β, and lots of reps ποΈ by the PixelForce team.