How moosa-natiezen/southasianfitness_saas works
South Asian Fitness is a Desi-focused nutrition and fitness planning platform. The main user journey runs from signup and onboarding through personalized nutrition targets and meal-plan generation to dashboard tracking; users can also request AI workout guidance and record progress. The backend exposes these capabilities through FastAPI, with PostgreSQL-backed user, food, plan, and progress data. Meal planning has both a deterministic optimizer and an AI generation path, while AI chat routes requests to specialist workers. The README documents these capabilities; unsampled route and service implementations limit some call-level detail.
Main entry points: app Next.js app · api.ts API client · session.py Database session · router.py REST routes
Components 30
Web experience
- Next.js app
frontend/app - Onboarding wizard
frontend/components/onboarding/onboarding-wizard.tsx - Meal plan views
frontend/components/meal-plan/meal-plan-view.tsx - Meal stream hook
frontend/hooks/use-meal-plan-stream.ts - Workout generator
frontend/components/ai/ai-workout-generator.tsx - Dashboard views
frontend/app/dashboard - API client
frontend/lib/api.ts - Meal plan enqueue
frontend/app/api/meal-plans/enqueue/route.ts - Generation task
frontend/trigger/generate-meal-plan.ts
API and identity
- FastAPI app
backend/app/main.py - REST routes
backend/app/api/router.py - Authentication routes
backend/app/api/routes/auth.py - Auth and onboarding
backend/app/services/auth_service.py - Meal plan routes
backend/app/api/routes/meal_plans.py - AI routes
backend/app/api/routes/ai.py
Nutrition and coaching
- Nutrition services
backend/app/services/nutrition_service.py - Meal optimizer
backend/app/services/meal_optimizer.py - AI generation
backend/app/services/ai_service.py - Intent orchestrator
backend/app/services/agents/orchestrator.py - Nutrition worker
backend/app/services/agents/nutrition_worker.py - Workout worker
backend/app/services/agents/workout_worker.py - AI user context
backend/app/services/ai_context_service.py
Product data
- Food services
backend/app/services/food_service.py - Progress services
backend/app/services/progress_service.py - Database session
backend/app/db/session.py - Domain models
backend/app/models - PostgreSQL
backend/app/db
Other components
- Member
- OpenAI
- Trigger.dev
Connections 38
- Member → Next.js app: uses
- Next.js app → Onboarding wizard: presents
- Next.js app → Meal plan views: presents
- Next.js app → Dashboard views: presents
- Next.js app → Workout generator: presents
- Onboarding wizard → API client: submits profile
- Meal plan views → Meal stream hook: starts generation
- Meal stream hook → API client: requests data
- Workout generator → API client: requests coaching
- Dashboard views → API client: loads views
- API client → FastAPI app: HTTP requests
- FastAPI app → REST routes: dispatches
- REST routes → Authentication routes: dispatches
- REST routes → Meal plan routes: dispatches
- REST routes → AI routes: dispatches
- Authentication routes → Auth and onboarding: calls
- Meal plan routes → Meal optimizer: uses
- Meal plan routes → AI generation: uses
- AI routes → Intent orchestrator: routes intent
- Intent orchestrator → Nutrition worker: dispatches
- Intent orchestrator → Workout worker: dispatches
- Nutrition worker → OpenAI: generates with
- Workout worker → OpenAI: generates with
- AI generation → OpenAI: generates with
- Nutrition worker → AI user context: uses profile context
- Workout worker → AI user context: uses profile context
- Nutrition services → Food services: uses food data
- Progress services → Database session: queries and updates
- Auth and onboarding → Database session: queries and updates
- AI user context → Database session: loads profile
- Food services → Database session: queries foods
- Meal optimizer → Food services: filters foods
- Database session → PostgreSQL: connects
- Domain models → PostgreSQL: maps domain data
- Meal stream hook → Meal plan enqueue: optional background request
- Meal plan enqueue → Trigger.dev: enqueues task
- Trigger.dev → Generation task: runs
- Generation task → FastAPI app: forwards authenticated request