# oceanosdev/inclinebackend architecture

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

- Interactive diagram: https://gitdiagram.com/oceanosdev/inclinebackend
- Repository: https://github.com/oceanosdev/inclinebackend

## Overview

Incline Fitness is a web application intended to replace the school’s Tri-Fit system. Users sign in and record or review fitness measurements across body composition, cardiovascular fitness, flexibility, and muscular strength/endurance; the application scopes records by authenticated owner and stores them through Entity Framework. The tree also shows a separate Web API surface and an onboarding flow that provisions tenants through Microsoft identity consent. The API and onboarding details are only partly sampled, so their broader wiring is represented conservatively.

Main entry points: [`TodoListWebApp/DAL/TodoListWebAppContext.cs`](https://github.com/oceanosdev/inclinebackend/blob/SurfaceBuilds/TodoListWebApp/DAL/TodoListWebAppContext.cs) (Entity Framework context), [`TodoListWebApp/Controllers/OldControllers`](https://github.com/oceanosdev/inclinebackend/tree/SurfaceBuilds/TodoListWebApp/Controllers/OldControllers) (Fitness pages), [`TodoListWebApp/Controllers/OnboardingController.cs`](https://github.com/oceanosdev/inclinebackend/blob/SurfaceBuilds/TodoListWebApp/Controllers/OnboardingController.cs) (Tenant onboarding), [`TodoListWebApp/Controllers/OldControllers/BodyCompositionController.cs`](https://github.com/oceanosdev/inclinebackend/blob/SurfaceBuilds/TodoListWebApp/Controllers/OldControllers/BodyCompositionController.cs) (Body composition)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Identity and onboarding"]
  node_account["Account sign-in"]
  node_onboarding["Tenant onboarding"]
end

subgraph group_fitness["Fitness tracking"]
  node_fitness_pages["Fitness pages"]
  node_body["Body composition"]
  node_cardio["Cardiovascular fitness"]
  node_strength["Strength and endurance"]
  node_flexibility["Flexibility tracking"]
  node_fitness_api["Fitness measurement APIs"]
  node_viewmodels["Fitness view models"]
end

subgraph group_storage["Application data"]
  node_models["Fitness and app models"]
  node_context["Entity Framework context"]
  node_database[("Application database")]
end

node_user(("Fitness user"))
node_web["Web application"]
node_identity_provider["Microsoft identity"]

node_user -->|"uses"| node_web
node_web -->|"signs in"| node_account
node_account -->|"authenticates"| node_identity_provider
node_web -->|"requests signup"| node_onboarding
node_onboarding -->|"requests consent"| node_identity_provider
node_onboarding -->|"stores tenant data"| node_context
node_identity_provider -->|"returns authorization"| node_onboarding
node_web -->|"routes requests"| node_fitness_pages
node_fitness_pages -->|"routes body metrics"| node_body
node_fitness_pages -->|"routes cardio metrics"| node_cardio
node_fitness_pages -->|"routes strength metrics"| node_strength
node_fitness_pages -->|"routes flexibility metrics"| node_flexibility
node_user -->|"submits measurements"| node_fitness_api
node_body -->|"reads and writes"| node_context
node_cardio -->|"reads and writes"| node_context
node_strength -->|"reads and writes"| node_context
node_flexibility -->|"reads and writes"| node_context
node_body -->|"builds page data"| node_viewmodels
node_cardio -->|"builds page data"| node_viewmodels
node_strength -->|"builds page data"| node_viewmodels
node_context -->|"maps entities"| node_models
node_fitness_api -->|"reads and writes"| node_context
node_context -->|"queries and saves"| node_database

click node_account "https://github.com/oceanosdev/inclinebackend/blob/SurfaceBuilds/TodoListWebApp/Controllers/AccountController.cs"
click node_onboarding "https://github.com/oceanosdev/inclinebackend/blob/SurfaceBuilds/TodoListWebApp/Controllers/OnboardingController.cs"
click node_fitness_pages "https://github.com/oceanosdev/inclinebackend/tree/SurfaceBuilds/TodoListWebApp/Controllers/OldControllers"
click node_body "https://github.com/oceanosdev/inclinebackend/blob/SurfaceBuilds/TodoListWebApp/Controllers/OldControllers/BodyCompositionController.cs"
click node_cardio "https://github.com/oceanosdev/inclinebackend/blob/SurfaceBuilds/TodoListWebApp/Controllers/OldControllers/CardiovascularFitnessController.cs"
click node_strength "https://github.com/oceanosdev/inclinebackend/blob/SurfaceBuilds/TodoListWebApp/Controllers/OldControllers/MuscularStrengthAndEnduranceController.cs"
click node_flexibility "https://github.com/oceanosdev/inclinebackend/blob/SurfaceBuilds/TodoListWebApp/Controllers/OldControllers/FlexibilitiesController.cs"
click node_fitness_api "https://github.com/oceanosdev/inclinebackend/tree/SurfaceBuilds/TodoListWebApp/Controllers/WebApiControllers"
click node_viewmodels "https://github.com/oceanosdev/inclinebackend/tree/SurfaceBuilds/TodoListWebApp/ViewModels"
click node_models "https://github.com/oceanosdev/inclinebackend/tree/SurfaceBuilds/TodoListWebApp/Models"
click node_context "https://github.com/oceanosdev/inclinebackend/blob/SurfaceBuilds/TodoListWebApp/DAL/TodoListWebAppContext.cs"

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_account,node_onboarding,node_user toneBlue
class node_fitness_pages,node_body,node_cardio,node_strength,node_flexibility,node_fitness_api,node_viewmodels toneAmber
class node_models,node_context,node_database toneMint
class node_web,node_identity_provider toneIndigo
```

## Components

### Identity and onboarding

- [Account sign-in](https://github.com/oceanosdev/inclinebackend/blob/SurfaceBuilds/TodoListWebApp/Controllers/AccountController.cs): `TodoListWebApp/Controllers/AccountController.cs`
- [Tenant onboarding](https://github.com/oceanosdev/inclinebackend/blob/SurfaceBuilds/TodoListWebApp/Controllers/OnboardingController.cs): `TodoListWebApp/Controllers/OnboardingController.cs`

### Fitness tracking

- [Fitness pages](https://github.com/oceanosdev/inclinebackend/tree/SurfaceBuilds/TodoListWebApp/Controllers/OldControllers): `TodoListWebApp/Controllers/OldControllers`
- [Body composition](https://github.com/oceanosdev/inclinebackend/blob/SurfaceBuilds/TodoListWebApp/Controllers/OldControllers/BodyCompositionController.cs): `TodoListWebApp/Controllers/OldControllers/BodyCompositionController.cs`
- [Cardiovascular fitness](https://github.com/oceanosdev/inclinebackend/blob/SurfaceBuilds/TodoListWebApp/Controllers/OldControllers/CardiovascularFitnessController.cs): `TodoListWebApp/Controllers/OldControllers/CardiovascularFitnessController.cs`
- [Strength and endurance](https://github.com/oceanosdev/inclinebackend/blob/SurfaceBuilds/TodoListWebApp/Controllers/OldControllers/MuscularStrengthAndEnduranceController.cs): `TodoListWebApp/Controllers/OldControllers/MuscularStrengthAndEnduranceController.cs`
- [Flexibility tracking](https://github.com/oceanosdev/inclinebackend/blob/SurfaceBuilds/TodoListWebApp/Controllers/OldControllers/FlexibilitiesController.cs): `TodoListWebApp/Controllers/OldControllers/FlexibilitiesController.cs`
- [Fitness measurement APIs](https://github.com/oceanosdev/inclinebackend/tree/SurfaceBuilds/TodoListWebApp/Controllers/WebApiControllers): `TodoListWebApp/Controllers/WebApiControllers`
- [Fitness view models](https://github.com/oceanosdev/inclinebackend/tree/SurfaceBuilds/TodoListWebApp/ViewModels): `TodoListWebApp/ViewModels`

### Application data

- [Fitness and app models](https://github.com/oceanosdev/inclinebackend/tree/SurfaceBuilds/TodoListWebApp/Models): `TodoListWebApp/Models`
- [Entity Framework context](https://github.com/oceanosdev/inclinebackend/blob/SurfaceBuilds/TodoListWebApp/DAL/TodoListWebAppContext.cs): `TodoListWebApp/DAL/TodoListWebAppContext.cs`
- **Application database**

### Other components

- **Fitness user**
- **Web application**
- **Microsoft identity**

## Connections

- Fitness user → Web application: uses
- Web application → Account sign-in: signs in
- Account sign-in → Microsoft identity: authenticates
- Web application → Tenant onboarding: requests signup
- Tenant onboarding → Microsoft identity: requests consent
- Tenant onboarding → Entity Framework context: stores tenant data
- Microsoft identity → Tenant onboarding: returns authorization
- Web application → Fitness pages: routes requests
- Fitness pages → Body composition: routes body metrics
- Fitness pages → Cardiovascular fitness: routes cardio metrics
- Fitness pages → Strength and endurance: routes strength metrics
- Fitness pages → Flexibility tracking: routes flexibility metrics
- Fitness user → Fitness measurement APIs: submits measurements
- Body composition → Entity Framework context: reads and writes
- Cardiovascular fitness → Entity Framework context: reads and writes
- Strength and endurance → Entity Framework context: reads and writes
- Flexibility tracking → Entity Framework context: reads and writes
- Body composition → Fitness view models: builds page data
- Cardiovascular fitness → Fitness view models: builds page data
- Strength and endurance → Fitness view models: builds page data
- Entity Framework context → Fitness and app models: maps entities
- Fitness measurement APIs → Entity Framework context: reads and writes
- Entity Framework context → Application database: queries and saves
