# grandmaster24k/gymtrack-ccp- architecture

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

- Interactive diagram: https://gitdiagram.com/grandmaster24k/gymtrack-ccp-
- Repository: https://github.com/grandmaster24k/gymtrack-ccp-

## Overview

GymTrack is a C-based workout and health tracker. Users operate its console menu to log and manage workout history, generate plans, and estimate calories; workout records can be persisted between sessions. The README assigns input validation, workout search/sorting, feature calculations, and persistence to separate modules. It documents the menu capabilities and module responsibilities, but no source excerpts are available to verify which functions call which modules, so those dispatch links are shown as unverified.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interaction["User interaction"]
  node_menu["Console menu"]
  node_input["Input validation"]
end

subgraph group_workouts["Workout tracking"]
  node_workout_records["Workout history"]
end

subgraph group_health["Health features"]
  node_plans["Workout plans"]
  node_calories["Calorie estimate"]
end

subgraph group_persistence["Data persistence"]
  node_storage["File storage"]
  node_workout_file[("workouts.txt")]
end

node_user(("GymTrack user"))

node_user -->|"uses"| node_menu
node_menu -.->|"accepts input"| node_input
node_menu -.->|"manages history"| node_workout_records
node_menu -.->|"offers plans"| node_plans
node_menu -.->|"estimates calories"| node_calories
node_menu -.->|"loads and saves"| node_storage
node_storage -->|"reads and writes"| node_workout_file

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_menu,node_input,node_user toneBlue
class node_workout_records toneAmber
class node_plans,node_calories toneMint
class node_storage,node_workout_file toneRose
```

## Components

### User interaction

- **Console menu**
- **Input validation**

### Workout tracking

- **Workout history**

### Health features

- **Workout plans**
- **Calorie estimate**

### Data persistence

- **File storage**
- **workouts.txt**

### Other components

- **GymTrack user**

## Connections

- GymTrack user → Console menu: uses (evidence: `README.md`)
- Console menu → Input validation: accepts input
- Console menu → Workout history: manages history
- Console menu → Workout plans: offers plans
- Console menu → Calorie estimate: estimates calories
- Console menu → File storage: loads and saves
- File storage → workouts.txt: reads and writes (evidence: `README.md`)
