# injo007/fit-mom architecture

> Architecture diagram of the GitHub repository injo007/fit-mom, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/injo007/fit-mom
- Repository: https://github.com/injo007/fit-mom

## Overview

Fit Mom Reset is a postpartum and maternal wellness application with member and admin experiences. Members authenticate, complete onboarding, and use a dashboard and wellness features; the client calls a server API that applies authentication, tenant context, safety and entitlement checks, and persists application data. Documented capabilities are reflected in feature nodes, but unsampled routes are grouped by subsystem rather than asserting a detailed request sequence. Edges cite excerpts or SOURCE INDEX references; some feature-to-API connections are therefore omitted.

Main entry points: [`src/App.tsx`](https://github.com/injo007/fit-mom/blob/main/src/App.tsx) (Application shell), [`server/app.ts`](https://github.com/injo007/fit-mom/blob/main/server/app.ts) (HTTP API), [`server/aiOrchestrator.ts`](https://github.com/injo007/fit-mom/blob/main/server/aiOrchestrator.ts) (AI coaching), [`server/db.ts`](https://github.com/injo007/fit-mom/blob/main/server/db.ts) (Tenant-scoped database)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Member application"]
  node_app["Application shell<br/>[App.tsx]"]
  node_authui["Sign-in and onboarding<br/>[AuthPage.tsx]"]
  node_authctx["Client auth state<br/>[AuthContext.tsx]"]
  node_navigation["App navigation<br/>[navigation.ts]"]
end

subgraph group_wellness["Wellness features"]
  node_dashboard["Today dashboard<br/>[TodayDashboard.tsx]"]
  node_workouts["Workout tracking<br/>[WorkoutSection.tsx]"]
  node_habits["Habit tracking<br/>[HabitTracker.tsx]"]
  node_hydration["Hydration tracking"]
  node_nutrition["Nutrition planning"]
  node_baby["Baby tracking<br/>[BabyTracker.tsx]"]
  node_recovery["Recovery and screening"]
  node_community["Community"]
  node_adminui["Admin console<br/>[AdminConsole.tsx]"]
end

subgraph group_server["API and domain services"]
  node_api["HTTP API<br/>[app.ts]"]
  node_authroutes["Authentication routes<br/>[auth.ts]"]
  node_coach["AI coaching<br/>[aiOrchestrator.ts]"]
  node_coachingctx["Coaching context<br/>[coaching.ts]"]
  node_safety["Safety rules<br/>[safety.ts]"]
  node_nutritionservice["Nutrition services<br/>[nutrition.ts]"]
  node_pregnancynutrition["Pregnancy nutrition"]
  node_notifications["Notifications<br/>[notifications.ts]"]
  node_entitlements["Feature entitlements<br/>[entitlements.ts]"]
end

subgraph group_platform["Identity and persistence"]
  node_tenant["Tenant resolution<br/>[tenants.ts]"]
  node_database[("Tenant-scoped database<br/>[db.ts]")]
end

node_member(("Member"))
node_admin(("Admin"))
node_gemini["Google Gemini"]

node_member -->|"uses"| node_app
node_admin -->|"uses"| node_app
node_app -->|"renders"| node_authui
node_app -->|"renders"| node_dashboard
node_app -->|"renders"| node_workouts
node_app -->|"renders"| node_habits
node_app -->|"renders"| node_hydration
node_app -->|"renders"| node_nutrition
node_app -->|"renders"| node_baby
node_app -->|"renders"| node_recovery
node_app -->|"renders"| node_community
node_app -->|"renders"| node_adminui
node_app -->|"uses"| node_navigation
node_authui -->|"uses"| node_authctx
node_authctx -->|"requests auth"| node_api
node_api -->|"mounts routes"| node_authroutes
node_authroutes -->|"resolves tenant"| node_tenant
node_authroutes -->|"reads and writes"| node_database
node_api -->|"reads and writes"| node_database
node_api -->|"uses safety"| node_safety
node_api -->|"creates notifications"| node_notifications
node_api -->|"checks access"| node_entitlements
node_api -->|"uses nutrition"| node_nutritionservice
node_api -->|"uses nutrition"| node_pregnancynutrition
node_api -.->|"routes coaching"| node_coach
node_coach -->|"gets context"| node_coachingctx
node_coach -->|"persists replies"| node_database
node_coach -->|"generates replies"| node_gemini
node_database -->|"gets tenant context"| node_tenant

click node_app "https://github.com/injo007/fit-mom/blob/main/src/App.tsx"
click node_authui "https://github.com/injo007/fit-mom/blob/main/src/components/AuthPage.tsx"
click node_authctx "https://github.com/injo007/fit-mom/blob/main/src/AuthContext.tsx"
click node_navigation "https://github.com/injo007/fit-mom/blob/main/src/navigation/navigation.ts"
click node_dashboard "https://github.com/injo007/fit-mom/blob/main/src/components/TodayDashboard.tsx"
click node_workouts "https://github.com/injo007/fit-mom/blob/main/src/components/WorkoutSection.tsx"
click node_habits "https://github.com/injo007/fit-mom/blob/main/src/components/HabitTracker.tsx"
click node_hydration "https://github.com/injo007/fit-mom/blob/main/src/components/HydrationTracker.tsx"
click node_nutrition "https://github.com/injo007/fit-mom/blob/main/src/components/NutritionSection.tsx"
click node_baby "https://github.com/injo007/fit-mom/blob/main/src/components/BabyTracker.tsx"
click node_recovery "https://github.com/injo007/fit-mom/blob/main/src/components/RecoverySection.tsx"
click node_community "https://github.com/injo007/fit-mom/blob/main/src/components/CommunitySection.tsx"
click node_adminui "https://github.com/injo007/fit-mom/blob/main/src/components/AdminConsole.tsx"
click node_api "https://github.com/injo007/fit-mom/blob/main/server/app.ts"
click node_authroutes "https://github.com/injo007/fit-mom/blob/main/server/routes/auth.ts"
click node_coach "https://github.com/injo007/fit-mom/blob/main/server/aiOrchestrator.ts"
click node_coachingctx "https://github.com/injo007/fit-mom/blob/main/server/coaching.ts"
click node_safety "https://github.com/injo007/fit-mom/blob/main/server/safety.ts"
click node_nutritionservice "https://github.com/injo007/fit-mom/blob/main/server/nutrition.ts"
click node_pregnancynutrition "https://github.com/injo007/fit-mom/blob/main/server/pregnancy-nutrition.ts"
click node_notifications "https://github.com/injo007/fit-mom/blob/main/server/notifications.ts"
click node_entitlements "https://github.com/injo007/fit-mom/blob/main/server/entitlements.ts"
click node_tenant "https://github.com/injo007/fit-mom/blob/main/server/tenants.ts"
click node_database "https://github.com/injo007/fit-mom/blob/main/server/db.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_authui,node_authctx,node_navigation toneBlue
class node_dashboard,node_workouts,node_habits,node_hydration,node_nutrition,node_baby,node_recovery,node_community,node_adminui toneAmber
class node_api,node_authroutes,node_coach,node_coachingctx,node_safety,node_nutritionservice,node_pregnancynutrition,node_notifications,node_entitlements toneMint
class node_tenant,node_database toneRose
class node_member,node_admin,node_gemini toneIndigo
```

## Components

### Member application

- [Application shell](https://github.com/injo007/fit-mom/blob/main/src/App.tsx): `src/App.tsx`
- [Sign-in and onboarding](https://github.com/injo007/fit-mom/blob/main/src/components/AuthPage.tsx): `src/components/AuthPage.tsx`
- [Client auth state](https://github.com/injo007/fit-mom/blob/main/src/AuthContext.tsx): `src/AuthContext.tsx`
- [App navigation](https://github.com/injo007/fit-mom/blob/main/src/navigation/navigation.ts): `src/navigation/navigation.ts`

### Wellness features

- [Today dashboard](https://github.com/injo007/fit-mom/blob/main/src/components/TodayDashboard.tsx): `src/components/TodayDashboard.tsx`
- [Workout tracking](https://github.com/injo007/fit-mom/blob/main/src/components/WorkoutSection.tsx): `src/components/WorkoutSection.tsx`
- [Habit tracking](https://github.com/injo007/fit-mom/blob/main/src/components/HabitTracker.tsx): `src/components/HabitTracker.tsx`
- [Hydration tracking](https://github.com/injo007/fit-mom/blob/main/src/components/HydrationTracker.tsx): `src/components/HydrationTracker.tsx`
- [Nutrition planning](https://github.com/injo007/fit-mom/blob/main/src/components/NutritionSection.tsx): `src/components/NutritionSection.tsx`
- [Baby tracking](https://github.com/injo007/fit-mom/blob/main/src/components/BabyTracker.tsx): `src/components/BabyTracker.tsx`
- [Recovery and screening](https://github.com/injo007/fit-mom/blob/main/src/components/RecoverySection.tsx): `src/components/RecoverySection.tsx`
- [Community](https://github.com/injo007/fit-mom/blob/main/src/components/CommunitySection.tsx): `src/components/CommunitySection.tsx`
- [Admin console](https://github.com/injo007/fit-mom/blob/main/src/components/AdminConsole.tsx): `src/components/AdminConsole.tsx`

### API and domain services

- [HTTP API](https://github.com/injo007/fit-mom/blob/main/server/app.ts): `server/app.ts`
- [Authentication routes](https://github.com/injo007/fit-mom/blob/main/server/routes/auth.ts): `server/routes/auth.ts`
- [AI coaching](https://github.com/injo007/fit-mom/blob/main/server/aiOrchestrator.ts): `server/aiOrchestrator.ts`
- [Coaching context](https://github.com/injo007/fit-mom/blob/main/server/coaching.ts): `server/coaching.ts`
- [Safety rules](https://github.com/injo007/fit-mom/blob/main/server/safety.ts): `server/safety.ts`
- [Nutrition services](https://github.com/injo007/fit-mom/blob/main/server/nutrition.ts): `server/nutrition.ts`
- [Pregnancy nutrition](https://github.com/injo007/fit-mom/blob/main/server/pregnancy-nutrition.ts): `server/pregnancy-nutrition.ts`
- [Notifications](https://github.com/injo007/fit-mom/blob/main/server/notifications.ts): `server/notifications.ts`
- [Feature entitlements](https://github.com/injo007/fit-mom/blob/main/server/entitlements.ts): `server/entitlements.ts`

### Identity and persistence

- [Tenant resolution](https://github.com/injo007/fit-mom/blob/main/server/tenants.ts): `server/tenants.ts`
- [Tenant-scoped database](https://github.com/injo007/fit-mom/blob/main/server/db.ts): `server/db.ts`

### Other components

- **Member**
- **Admin**
- **Google Gemini**

## Connections

- Member → Application shell: uses
- Admin → Application shell: uses
- Application shell → Sign-in and onboarding: renders (evidence: `src/App.tsx`)
- Application shell → Today dashboard: renders (evidence: `src/App.tsx`)
- Application shell → Workout tracking: renders (evidence: `src/App.tsx`)
- Application shell → Habit tracking: renders (evidence: `src/App.tsx`)
- Application shell → Hydration tracking: renders (evidence: `src/App.tsx`)
- Application shell → Nutrition planning: renders (evidence: `src/App.tsx`)
- Application shell → Baby tracking: renders (evidence: `src/App.tsx`)
- Application shell → Recovery and screening: renders (evidence: `src/App.tsx`)
- Application shell → Community: renders (evidence: `src/App.tsx`)
- Application shell → Admin console: renders (evidence: `src/App.tsx`)
- Application shell → App navigation: uses (evidence: `src/App.tsx`)
- Sign-in and onboarding → Client auth state: uses (evidence: `src/components/AuthPage.tsx`)
- Client auth state → HTTP API: requests auth (evidence: `src/AuthContext.tsx`)
- HTTP API → Authentication routes: mounts routes (evidence: `server/app.ts`)
- Authentication routes → Tenant resolution: resolves tenant (evidence: `server/routes/auth.ts`)
- Authentication routes → Tenant-scoped database: reads and writes (evidence: `server/routes/auth.ts`)
- HTTP API → Tenant-scoped database: reads and writes (evidence: `server/app.ts`)
- HTTP API → Safety rules: uses safety (evidence: `server/app.ts`)
- HTTP API → Notifications: creates notifications (evidence: `server/app.ts`)
- HTTP API → Feature entitlements: checks access (evidence: `server/app.ts`)
- HTTP API → Nutrition services: uses nutrition (evidence: `server/app.ts`)
- HTTP API → Pregnancy nutrition: uses nutrition (evidence: `server/app.ts`)
- HTTP API → AI coaching: routes coaching (evidence: `server/app.ts`)
- AI coaching → Coaching context: gets context (evidence: `server/aiOrchestrator.ts`)
- AI coaching → Tenant-scoped database: persists replies (evidence: `server/aiOrchestrator.ts`)
- AI coaching → Google Gemini: generates replies (evidence: `server/aiOrchestrator.ts`)
- Tenant-scoped database → Tenant resolution: gets tenant context (evidence: `server/db.ts`)
