# mxminh/fitness_tracker_app architecture

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

- Interactive diagram: https://gitdiagram.com/mxminh/fitness_tracker_app
- Repository: https://github.com/mxminh/fitness_tracker_app

## Overview

This is a Windows console fitness tracker. The user starts the app, then uses its menus to manage an account and track workouts, cardio, nutrition, and goals; progress and calendar views present recorded data. FitnessApp coordinates the interface and domain managers, while User handles credentials and per-user files. The excerpts show workout and goal updates and some file access, but not the full login, cardio, or nutrition flows, so those connections are omitted or marked unverified.

Main entry points: [`FitnessApp.cpp`](https://github.com/mxminh/fitness_tracker_app/blob/master/FitnessApp.cpp) (App menus), [`User.cpp`](https://github.com/mxminh/fitness_tracker_app/blob/master/User.cpp) (User file access), [`main.cpp`](https://github.com/mxminh/fitness_tracker_app/blob/master/main.cpp) (Program entry), [`Workout.cpp`](https://github.com/mxminh/fitness_tracker_app/blob/master/Workout.cpp) (Workout log)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Console application"]
  node_entry["Program entry<br/>[main.cpp]"]
  node_controller["App menus<br/>[FitnessApp.cpp]"]
end

subgraph group_tracking["Fitness tracking"]
  node_workout["Workout log<br/>[Workout.cpp]"]
  node_cardio["Cardio log<br/>[FitnessApp.cpp]"]
  node_nutrition["Nutrition log<br/>[Nutrition.cpp]"]
  node_goals["Goal tracking<br/>[Goal.cpp]"]
  node_progress["Progress view<br/>[FitnessApp.cpp]"]
  node_calendar["Calendar view<br/>[FitnessApp.cpp]"]
end

subgraph group_accounts["Accounts and storage"]
  node_account["Account management<br/>[FitnessApp.cpp]"]
  node_persistence["User file access<br/>[User.cpp]"]
  node_userfiles[("User data files")]
  node_credentials[("Credential file")]
end

node_user(("User"))

node_user -->|"starts"| node_entry
node_entry -->|"runs"| node_controller
node_controller -->|"adds workouts"| node_workout
node_controller -->|"updates goals"| node_goals
node_controller -->|"displays"| node_progress
node_controller -->|"displays"| node_calendar
node_controller -->|"deletes account"| node_persistence
node_controller -.->|"records cardio"| node_cardio
node_controller -.->|"records nutrition"| node_nutrition
node_controller -.->|"loads and saves"| node_persistence
node_account -.->|"manages accounts"| node_persistence
node_persistence -->|"reads and writes"| node_userfiles
node_persistence -->|"reads and writes"| node_credentials

click node_entry "https://github.com/mxminh/fitness_tracker_app/blob/master/main.cpp"
click node_controller "https://github.com/mxminh/fitness_tracker_app/blob/master/FitnessApp.cpp"
click node_account "https://github.com/mxminh/fitness_tracker_app/blob/master/FitnessApp.cpp"
click node_workout "https://github.com/mxminh/fitness_tracker_app/blob/master/Workout.cpp"
click node_cardio "https://github.com/mxminh/fitness_tracker_app/blob/master/FitnessApp.cpp"
click node_nutrition "https://github.com/mxminh/fitness_tracker_app/blob/master/Nutrition.cpp"
click node_goals "https://github.com/mxminh/fitness_tracker_app/blob/master/Goal.cpp"
click node_progress "https://github.com/mxminh/fitness_tracker_app/blob/master/FitnessApp.cpp"
click node_calendar "https://github.com/mxminh/fitness_tracker_app/blob/master/FitnessApp.cpp"
click node_persistence "https://github.com/mxminh/fitness_tracker_app/blob/master/User.cpp"

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_controller,node_user toneBlue
class node_workout,node_cardio,node_nutrition,node_goals,node_progress,node_calendar toneAmber
class node_account,node_persistence,node_userfiles,node_credentials toneMint
```

## Components

### Console application

- [Program entry](https://github.com/mxminh/fitness_tracker_app/blob/master/main.cpp): `main.cpp`
- [App menus](https://github.com/mxminh/fitness_tracker_app/blob/master/FitnessApp.cpp): `FitnessApp.cpp`

### Fitness tracking

- [Workout log](https://github.com/mxminh/fitness_tracker_app/blob/master/Workout.cpp): `Workout.cpp`
- [Cardio log](https://github.com/mxminh/fitness_tracker_app/blob/master/FitnessApp.cpp): `FitnessApp.cpp`
- [Nutrition log](https://github.com/mxminh/fitness_tracker_app/blob/master/Nutrition.cpp): `Nutrition.cpp`
- [Goal tracking](https://github.com/mxminh/fitness_tracker_app/blob/master/Goal.cpp): `Goal.cpp`
- [Progress view](https://github.com/mxminh/fitness_tracker_app/blob/master/FitnessApp.cpp): `FitnessApp.cpp`
- [Calendar view](https://github.com/mxminh/fitness_tracker_app/blob/master/FitnessApp.cpp): `FitnessApp.cpp`

### Accounts and storage

- [Account management](https://github.com/mxminh/fitness_tracker_app/blob/master/FitnessApp.cpp): `FitnessApp.cpp`
- [User file access](https://github.com/mxminh/fitness_tracker_app/blob/master/User.cpp): `User.cpp`
- **User data files**
- **Credential file**

### Other components

- **User**

## Connections

- User → Program entry: starts (evidence: `main.cpp`)
- Program entry → App menus: runs (evidence: `main.cpp`)
- App menus → Workout log: adds workouts (evidence: `FitnessApp.cpp`)
- App menus → Goal tracking: updates goals (evidence: `FitnessApp.cpp`)
- App menus → Progress view: displays (evidence: `FitnessApp.cpp`)
- App menus → Calendar view: displays (evidence: `FitnessApp.cpp`)
- App menus → User file access: deletes account (evidence: `FitnessApp.cpp`)
- App menus → Cardio log: records cardio (evidence: `FitnessApp.cpp`)
- App menus → Nutrition log: records nutrition
- App menus → User file access: loads and saves
- Account management → User file access: manages accounts
- User file access → User data files: reads and writes (evidence: `User.cpp`)
- User file access → Credential file: reads and writes (evidence: `User.cpp`)
