# manivask/fitness-tracker architecture

> Architecture diagram of the GitHub repository manivask/fitness-tracker, 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/manivask/fitness-tracker
- Repository: https://github.com/manivask/fitness-tracker

## Overview

Fitness & Diet Tracker is a two-member web app for following personalized nutrition and training plans and recording daily progress. The user selects a member and date, reviews diet or training guidance, checks off adherence or workout sets, and saves or exports logs. Separate views provide a weight-loss forecast and exercise tutorials. The excerpts show the app’s view composition, local-storage persistence, and log-file API implementation; the exact client-to-API wiring is only partially shown, so that relationship is marked unverified.

Main entry points: [`src/App.jsx`](https://github.com/manivask/fitness-tracker/blob/main/src/App.jsx) (App Shell), [`src/components/TrainingView.jsx`](https://github.com/manivask/fitness-tracker/blob/main/src/components/TrainingView.jsx) (Training Split and Set Tracking), [`dailyLogsPlugin.js`](https://github.com/manivask/fitness-tracker/blob/main/dailyLogsPlugin.js) (Daily Log API), [`src/components/WorkoutTutorials.jsx`](https://github.com/manivask/fitness-tracker/blob/main/src/components/WorkoutTutorials.jsx) (Workout Tutorials)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App and Logging"]
  node_entry["App Shell<br/>[App.jsx]"]
  node_navigation["Profile and Date Controls<br/>[Navbar.jsx]"]
  node_browser_store[("Browser Storage")]
  node_log_api["Daily Log API<br/>[dailyLogsPlugin.js]"]
  node_daily_logs[("Daily Log Files")]
  node_root["Browser Entry<br/>[main.jsx]"]
end

subgraph group_nutrition["Nutrition Planning"]
  node_diet_view["Diet Plan and Adherence<br/>[DietView.jsx]"]
  node_diet_data["Member Diet Plans<br/>[dietData.js]"]
end

subgraph group_training["Training"]
  node_training_view["Training Split and Set Tracking<br/>[TrainingView.jsx]"]
  node_workout_data["Workout Plans<br/>[workoutData.js]"]
  node_timer["Rest and Hold Timer<br/>[ActiveTimer.jsx]"]
end

subgraph group_progress["Progress and Learning"]
  node_roadmap["Weight-Loss Roadmap"]
  node_tutorials["Workout Tutorials"]
end

node_user(("Member"))

node_user -->|"selects profile and date"| node_navigation
node_root -->|"renders"| node_entry
node_entry -->|"renders"| node_navigation
node_entry -->|"renders"| node_diet_view
node_entry -->|"renders"| node_training_view
node_entry -->|"renders"| node_roadmap
node_entry -->|"renders"| node_tutorials
node_entry -->|"persists state"| node_browser_store
node_entry -->|"loads member plans"| node_diet_data
node_training_view -->|"uses training splits"| node_workout_data
node_training_view -->|"renders timer"| node_timer
node_tutorials -->|"indexes exercises"| node_workout_data
node_entry -.->|"requests log endpoint"| node_log_api
node_log_api -->|"reads and writes"| node_daily_logs

click node_entry "https://github.com/manivask/fitness-tracker/blob/main/src/App.jsx"
click node_navigation "https://github.com/manivask/fitness-tracker/blob/main/src/components/Navbar.jsx"
click node_log_api "https://github.com/manivask/fitness-tracker/blob/main/dailyLogsPlugin.js"
click node_daily_logs "https://github.com/manivask/fitness-tracker/tree/main/DailyLogs"
click node_diet_view "https://github.com/manivask/fitness-tracker/blob/main/src/components/DietView.jsx"
click node_diet_data "https://github.com/manivask/fitness-tracker/blob/main/src/data/dietData.js"
click node_training_view "https://github.com/manivask/fitness-tracker/blob/main/src/components/TrainingView.jsx"
click node_workout_data "https://github.com/manivask/fitness-tracker/blob/main/src/data/workoutData.js"
click node_timer "https://github.com/manivask/fitness-tracker/blob/main/src/components/ActiveTimer.jsx"
click node_roadmap "https://github.com/manivask/fitness-tracker/blob/main/src/components/WeightLossRoadmap.jsx"
click node_tutorials "https://github.com/manivask/fitness-tracker/blob/main/src/components/WorkoutTutorials.jsx"
click node_root "https://github.com/manivask/fitness-tracker/blob/main/src/main.jsx"

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_entry,node_navigation,node_browser_store,node_log_api,node_daily_logs,node_root toneBlue
class node_diet_view,node_diet_data toneAmber
class node_training_view,node_workout_data,node_timer toneMint
class node_roadmap,node_tutorials toneRose
class node_user toneIndigo
```

## Components

### App and Logging

- [App Shell](https://github.com/manivask/fitness-tracker/blob/main/src/App.jsx): `src/App.jsx`
- [Profile and Date Controls](https://github.com/manivask/fitness-tracker/blob/main/src/components/Navbar.jsx): `src/components/Navbar.jsx`
- **Browser Storage**
- [Daily Log API](https://github.com/manivask/fitness-tracker/blob/main/dailyLogsPlugin.js): `dailyLogsPlugin.js`
- [Daily Log Files](https://github.com/manivask/fitness-tracker/tree/main/DailyLogs): `DailyLogs`
- [Browser Entry](https://github.com/manivask/fitness-tracker/blob/main/src/main.jsx): `src/main.jsx`

### Nutrition Planning

- [Diet Plan and Adherence](https://github.com/manivask/fitness-tracker/blob/main/src/components/DietView.jsx): `src/components/DietView.jsx`
- [Member Diet Plans](https://github.com/manivask/fitness-tracker/blob/main/src/data/dietData.js): `src/data/dietData.js`

### Training

- [Training Split and Set Tracking](https://github.com/manivask/fitness-tracker/blob/main/src/components/TrainingView.jsx): `src/components/TrainingView.jsx`
- [Workout Plans](https://github.com/manivask/fitness-tracker/blob/main/src/data/workoutData.js): `src/data/workoutData.js`
- [Rest and Hold Timer](https://github.com/manivask/fitness-tracker/blob/main/src/components/ActiveTimer.jsx): `src/components/ActiveTimer.jsx`

### Progress and Learning

- [Weight-Loss Roadmap](https://github.com/manivask/fitness-tracker/blob/main/src/components/WeightLossRoadmap.jsx): `src/components/WeightLossRoadmap.jsx`
- [Workout Tutorials](https://github.com/manivask/fitness-tracker/blob/main/src/components/WorkoutTutorials.jsx): `src/components/WorkoutTutorials.jsx`

### Other components

- **Member**

## Connections

- Member → Profile and Date Controls: selects profile and date (evidence: `src/components/Navbar.jsx`)
- Browser Entry → App Shell: renders (evidence: `src/main.jsx`)
- App Shell → Profile and Date Controls: renders (evidence: `src/App.jsx`)
- App Shell → Diet Plan and Adherence: renders (evidence: `src/App.jsx`)
- App Shell → Training Split and Set Tracking: renders (evidence: `src/App.jsx`)
- App Shell → Weight-Loss Roadmap: renders (evidence: `src/App.jsx`)
- App Shell → Workout Tutorials: renders (evidence: `src/App.jsx`)
- App Shell → Browser Storage: persists state (evidence: `src/App.jsx`)
- App Shell → Member Diet Plans: loads member plans (evidence: `src/App.jsx`)
- Training Split and Set Tracking → Workout Plans: uses training splits (evidence: `src/components/TrainingView.jsx`)
- Training Split and Set Tracking → Rest and Hold Timer: renders timer (evidence: `src/components/TrainingView.jsx`)
- Workout Tutorials → Workout Plans: indexes exercises (evidence: `src/components/WorkoutTutorials.jsx`)
- App Shell → Daily Log API: requests log endpoint (evidence: `src/App.jsx`)
- Daily Log API → Daily Log Files: reads and writes (evidence: `dailyLogsPlugin.js`)
