How emoisan22/nutrition works
NutriTracker is a cycling and triathlon nutrition and performance application. Athletes use the React app to review training and nutrition, plan fueling and supplements, and sync activity data; the FastAPI backend serves these workflows and persists athlete records. The README documents AI plans, analytics, gamification, PWA support and Stripe tiers. Sampled excerpts confirm selected nutrition, training, supplement and Strava paths; several other capability links reflect the documented product and tree, not inspected call sites.
Main entry points: nutrition_routes.py Nutrition routes · app.py FastAPI app · App.jsx App shell · client.js API client
Components 23
Athlete experience
- App shell
frontend/src/App.jsx - Dashboard
frontend/src/pages/Dashboard.jsx - Weekly planner
frontend/src/pages/WeeklyPlanner.jsx - Supplements manager
frontend/src/components/SupplementsManager.jsx - API client
frontend/src/api/client.js
API and identity
- FastAPI app
backend/app.py - JWT auth
backend/auth_middleware.py
Training and integrations
- Training routes
backend/routes/training_routes.py - Training service
backend/services/training_service.py - Activity integrations
backend/integrations - Strava OAuth
backend/strava_routes.py
Nutrition and guidance
- Nutrition routes
backend/routes/nutrition_routes.py - Nutrition service
backend/services/nutrition_service.py - AI plans
backend/ai_complete_nutrition_strategy.py - Supplement guidance
backend/ai_supplements.py - Hydration planning
backend/hydration.py - Race-day planning
backend/race_day_service.py
Persistence and account
- Application database
backend/database.py - Domain models
backend/models.py - Plans and billing
backend/subscription.py
Other components
- Athlete
- Stripe
- Activity providers
Connections 27
- Athlete → App shell: uses
- App shell → Dashboard: renders
- App shell → Weekly planner: renders
- App shell → Supplements manager: renders
- Dashboard → API client: requests data
- Weekly planner → API client: requests plans
- Supplements manager → API client: logs intake
- API client → FastAPI app: HTTP requests
- FastAPI app → JWT auth: validates tokens
- FastAPI app → Training routes: dispatches
- FastAPI app → Nutrition routes: dispatches
- Training routes → Training service: delegates
- Training routes → Application database: reads and writes
- Training service → Application database: reads and writes
- Activity integrations → Activity providers: syncs activities
- Strava OAuth → Activity providers: exchanges OAuth
- Nutrition routes → Training service: loads training
- Nutrition routes → Nutrition service: generates plans
- Nutrition routes → Supplement guidance: generates protocols
- Nutrition routes → Hydration planning: plans hydration
- Nutrition service → AI plans: generates guidance
- Nutrition routes → Application database: reads and writes
- Supplements manager → Nutrition routes: records intake
- Nutrition routes → Race-day planning: requests race plans
- Application database → Domain models: stores records
- FastAPI app → Plans and billing: checks access
- Plans and billing → Stripe: bills users