# egarluq292/fitnesteban architecture

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

- Interactive diagram: https://gitdiagram.com/egarluq292/fitnesteban
- Repository: https://github.com/egarluq292/fitnesteban

## Overview

FITNESTEBAN appears to be a fitness web app, with workout blocks and a 3D exercise mannequin; its service worker provides offline support. The supplied README is empty, and the main app code and data files were not excerpted, so the user-to-result workflow and most feature connections cannot be verified. The graph preserves the visible app, mannequin, and offline-cache components without inferring calls between them.

Main entry points: [`sw.js`](https://github.com/egarluq292/fitnesteban/blob/main/sw.js) (Service worker), [`gym3d.js`](https://github.com/egarluq292/fitnesteban/blob/main/gym3d.js) (3D mannequin)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App shell"]
  node_app_js["App logic<br/>[app.js]"]
  node_index["App page<br/>[index.html]"]
  node_styles["App styles<br/>[styles.css]"]
end

subgraph group_fitness["Fitness features"]
  node_blocks["Workout blocks<br/>[bloques.json]"]
  node_mannequin["3D mannequin<br/>[gym3d.js]"]
  node_three["Three.js"]
end

subgraph group_offline["Offline support"]
  node_worker["Service worker<br/>[sw.js]"]
  node_cache[("Browser cache")]
  node_app_assets["App assets"]
end

node_user(("App user"))

node_mannequin -->|"imports"| node_three
node_worker -->|"caches assets"| node_cache
node_worker -->|"pre-caches"| node_app_assets

click node_app_js "https://github.com/egarluq292/fitnesteban/blob/main/app.js"
click node_index "https://github.com/egarluq292/fitnesteban/blob/main/index.html"
click node_styles "https://github.com/egarluq292/fitnesteban/blob/main/styles.css"
click node_blocks "https://github.com/egarluq292/fitnesteban/blob/main/bloques.json"
click node_mannequin "https://github.com/egarluq292/fitnesteban/blob/main/gym3d.js"
click node_worker "https://github.com/egarluq292/fitnesteban/blob/main/sw.js"

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_js,node_index,node_styles,node_user toneBlue
class node_blocks,node_mannequin,node_three toneAmber
class node_worker,node_cache,node_app_assets toneMint
```

## Components

### App shell

- [App logic](https://github.com/egarluq292/fitnesteban/blob/main/app.js): `app.js`
- [App page](https://github.com/egarluq292/fitnesteban/blob/main/index.html): `index.html`
- [App styles](https://github.com/egarluq292/fitnesteban/blob/main/styles.css): `styles.css`

### Fitness features

- [Workout blocks](https://github.com/egarluq292/fitnesteban/blob/main/bloques.json): `bloques.json`
- [3D mannequin](https://github.com/egarluq292/fitnesteban/blob/main/gym3d.js): `gym3d.js`
- **Three.js**

### Offline support

- [Service worker](https://github.com/egarluq292/fitnesteban/blob/main/sw.js): `sw.js`
- **Browser cache**
- **App assets**

### Other components

- **App user**

## Connections

- 3D mannequin → Three.js: imports (evidence: `gym3d.js`)
- Service worker → Browser cache: caches assets (evidence: `sw.js`)
- Service worker → App assets: pre-caches (evidence: `sw.js`)
