Full-stack fitness tracker that logs meals and workouts with real nutrition data and AI-powered coaching insights.
Live: fitsync-5tf7.onrender.com
DEMO : Demo
Chimdinma Jason — designed and built end-to-end as my capstone project for the Meta University Engineering Internship, Summer 2025. Presented to Meta leadership at end-of-program showcase.
FitSync is a clean, free alternative to paywalled fitness apps. Users log meals (pulled from the Nutritionix API for real nutrition data), log workouts, and track their daily calories in/out with weekly progress charts. An AI chat assistant powered by Gemini provides personalized coaching insights.
- Frontend: React, Tailwind CSS
- Backend: Node.js, Express
- Database: PostgreSQL + Prisma
- Auth: JWT-secured sessions + Firebase Auth
- Real-Time: WebSockets (live workout state sync)
- APIs: Nutritionix (food data), Gemini (AI coaching)
- Deployment: Render
- Email/password signup with JWT-secured sessions
- Food search with real nutrition data via the Nutritionix API
- Meal and workout logging with full CRUD
- Daily calories in/out/net summary
- Weekly progress charts
- LLM-generated personalized workout plans
- WebSocket-based live sync (workout state stays consistent across sessions)
- AI chat assistant (Gemini) for personalized coaching
cd server
npm install
npm run dev
cd client
npm install
npm run dev
Required environment variables (see .env.example):
DATABASE_URL(PostgreSQL connection string)NUTRITIONIX_APP_IDandNUTRITIONIX_APP_KEYGEMINI_API_KEYFIREBASE_*config keysJWT_SECRET
React client communicates with Express backend via REST + WebSocket. PostgreSQL stores user data via Prisma ORM. Nutritionix powers food search; Gemini powers the AI assistant. Firebase Auth manages sessions alongside JWT.