How marioshehan22/nutrition-fitness works
This is a nutrition-planning and tracking app with an AI-assisted plan generator and chat. The main workflow is to enter dietary requirements, generate a plan, enroll in a plan option, track meals and water, and review progress. The graph also shows chat and the server’s plan, logging, and progress layers. Some client-to-server wiring is inferred from the API structure, so that edge is marked unverified; unsampled implementation details are not expanded.
Main entry points: App.tsx Page router · http.ts HTTP client · routes.ts API router · models Plan records
Components 25
Client app
- Page router
packages/client/src/App.tsx - Requirements
packages/client/src/pages/RequirementsPage.tsx - Plan generation
packages/client/src/pages/GeneratePlanPage.tsx - Plan enrollment
packages/client/src/pages/EnrollPage.tsx - Daily tracking
packages/client/src/pages/TodayPage.tsx - Food logging
packages/client/src/pages/LogFoodPage.tsx - Progress view
packages/client/src/pages/ProgressPage.tsx - Chat interface
packages/client/src/components/chat/ChatBot.tsx - HTTP client
packages/client/src/api/http.ts
Server API
- API router
packages/server/routes.ts - Plan controller
packages/server/controllers/plan.controller.ts - Enrollment controller
packages/server/controllers/planEnrollment.controller.ts - Daily log controller
packages/server/controllers/dailyLog.controller.ts - Chat controller
packages/server/controllers/chat.controller.ts
Nutrition services
- Plan service
packages/server/services/plan.service.ts - Enrollment service
packages/server/services/planEnrollment.service.ts - Daily log service
packages/server/services/dailyLog.service.ts - Progress service
packages/server/services/progress.service.ts - LLM client
packages/server/llm/client.ts
Persistence
- Plan repository
packages/server/repositories/plan.repository.ts - Plan records
packages/server/models - Daily log record
packages/server/models/DailyLog.ts
Other components
- User
- MongoDB
- OpenRouter
Connections 34
- User → Page router: uses
packages/client/src/App.tsx - Page router → Requirements: routes to
packages/client/src/App.tsx - Page router → Plan generation: routes to
packages/client/src/App.tsx - Page router → Plan enrollment: routes to
packages/client/src/App.tsx - Page router → Daily tracking: routes to
packages/client/src/App.tsx - Page router → Food logging: routes to
packages/client/src/App.tsx - Page router → Progress view: routes to
packages/client/src/App.tsx - Page router → Chat interface: routes to
packages/client/src/App.tsx - Requirements → HTTP client: calls API
packages/client/src/pages/RequirementsPage.tsx - Plan generation → HTTP client: calls API
packages/client/src/pages/GeneratePlanPage.tsx - Plan enrollment → HTTP client: calls API
packages/client/src/pages/EnrollPage.tsx - Daily tracking → HTTP client: calls API
packages/client/src/pages/TodayPage.tsx - Food logging → HTTP client: calls API
packages/client/src/pages/LogFoodPage.tsx - Progress view → HTTP client: calls API
packages/client/src/pages/ProgressPage.tsx - HTTP client → API router: sends requests
- API router → Plan controller: routes requests
packages/server/routes.ts - API router → Daily log controller: routes requests
packages/server/routes.ts - API router → Chat controller: routes requests
packages/server/routes.ts - Plan controller → Plan service: delegates to
packages/server/controllers/plan.controller.ts - Plan controller → Plan repository: reads plans
packages/server/controllers/plan.controller.ts - Enrollment controller → Enrollment service: delegates to
packages/server/controllers/planEnrollment.controller.ts - Daily log controller → Daily log service: delegates to
packages/server/controllers/dailyLog.controller.ts - Chat controller → OpenRouter: uses via service
- Plan service → Plan repository: stores plans
packages/server/services/plan.service.ts - Plan service → LLM client: generates with
packages/server/services/plan.service.ts - LLM client → OpenRouter: sends prompts
packages/server/llm/client.ts - Enrollment service → Plan records: reads and writes
packages/server/services/planEnrollment.service.ts - Plan repository → Plan records: queries
packages/server/repositories/plan.repository.ts - Daily log service → Daily log record: reads and writes
packages/server/services/dailyLog.service.ts - Daily log service → Plan records: loads active plan
packages/server/services/dailyLog.service.ts - Plan records → MongoDB: persists in
- Daily log record → MongoDB: persists in
- API router → Enrollment controller: mounts enrollment routes
packages/server/routes.ts - API router → Progress service: mounts progress routes
packages/server/routes.ts