# estif34/bp-tracker architecture

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

- Interactive diagram: https://gitdiagram.com/estif34/bp-tracker
- Repository: https://github.com/estif34/bp-tracker

## Overview

Bp-Tracker is a Laravel web app for recording and reviewing blood pressure and related vitals. Users enter readings, then browse or filter them, inspect trends and summaries, and export their records. The README also describes a scatter plot; its implementation is not present in the sampled source, so it is represented only as a documented capability. Account registration, login, verification, and profile management support the tracking workflow. The route definitions and several views were not sampled, so some feature wiring is based on the repository tree and README rather than inspected implementation.

Main entry points: [`app/Http/Controllers/BloodPressureController.php`](https://github.com/estif34/bp-tracker/blob/main/app/Http/Controllers/BloodPressureController.php) (Reading controller), [`routes/web.php`](https://github.com/estif34/bp-tracker/blob/main/routes/web.php) (Web routing), [`app/Http/Controllers/Auth/RegisteredUserController.php`](https://github.com/estif34/bp-tracker/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php) (Authentication handlers), [`app/Http/Controllers/ProfileController.php`](https://github.com/estif34/bp-tracker/blob/main/app/Http/Controllers/ProfileController.php) (Profile management)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Web entry"]
  node_front["Laravel request entry<br/>[index.php]"]
  node_routing["Web routing<br/>[web.php]"]
end

subgraph group_tracking["Reading tracking"]
  node_bp["Reading controller"]
  node_reading["Reading model"]
  node_db[("Configured database")]
  node_reading_views["Reading forms and list<br/>[index.blade.php]"]
  node_dashboard["Dashboard"]
end

subgraph group_insights["Insights and export"]
  node_chart["Trend chart<br/>[chart.blade.php]"]
  node_stats["Reading statistics"]
  node_guide["Blood pressure guide<br/>[guide.blade.php]"]
  node_pdf["PDF export view<br/>[pdf.blade.php]"]
end

subgraph group_accounts["Accounts"]
  node_auth["Authentication handlers"]
  node_profile["Profile management"]
  node_account_views["Account views<br/>[login.blade.php]"]
  node_profile_view["Profile view<br/>[edit.blade.php]"]
end

node_user(("Tracker user"))
node_pdf_service["DomPDF renderer"]

node_user -->|"sends request"| node_front
node_front -->|"hands off"| node_routing
node_routing -->|"dispatches tracking"| node_bp
node_routing -->|"dispatches account"| node_auth
node_routing -->|"dispatches profile"| node_profile
node_bp -->|"queries and updates"| node_reading
node_reading -->|"persists records"| node_db
node_bp -->|"renders forms and list"| node_reading_views
node_bp -->|"serves dashboard"| node_dashboard
node_bp -->|"renders trend data"| node_chart
node_bp -->|"renders summaries"| node_stats
node_bp -->|"renders guide"| node_guide
node_bp -->|"loads export view"| node_pdf
node_bp -.->|"renders PDF"| node_pdf_service
node_bp -->|"streams CSV records"| node_db
node_auth -->|"renders authentication"| node_account_views
node_auth -->|"creates account"| node_db
node_profile -->|"renders profile"| node_profile_view
node_profile -->|"updates account"| node_db

click node_front "https://github.com/estif34/bp-tracker/blob/main/public/index.php"
click node_routing "https://github.com/estif34/bp-tracker/blob/main/routes/web.php"
click node_bp "https://github.com/estif34/bp-tracker/blob/main/app/Http/Controllers/BloodPressureController.php"
click node_reading "https://github.com/estif34/bp-tracker/blob/main/app/Models/BloodPressureReading.php"
click node_reading_views "https://github.com/estif34/bp-tracker/blob/main/resources/views/blood-pressure/index.blade.php"
click node_dashboard "https://github.com/estif34/bp-tracker/blob/main/resources/views/dashboard.blade.php"
click node_chart "https://github.com/estif34/bp-tracker/blob/main/resources/views/blood-pressure/chart.blade.php"
click node_stats "https://github.com/estif34/bp-tracker/blob/main/resources/views/blood-pressure/statistics.blade.php"
click node_guide "https://github.com/estif34/bp-tracker/blob/main/resources/views/blood-pressure/guide.blade.php"
click node_pdf "https://github.com/estif34/bp-tracker/blob/main/resources/views/blood-pressure/pdf.blade.php"
click node_auth "https://github.com/estif34/bp-tracker/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php"
click node_profile "https://github.com/estif34/bp-tracker/blob/main/app/Http/Controllers/ProfileController.php"
click node_account_views "https://github.com/estif34/bp-tracker/blob/main/resources/views/auth/login.blade.php"
click node_profile_view "https://github.com/estif34/bp-tracker/blob/main/resources/views/profile/edit.blade.php"

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_front,node_routing,node_user toneBlue
class node_bp,node_reading,node_db,node_reading_views,node_dashboard toneAmber
class node_chart,node_stats,node_guide,node_pdf toneMint
class node_auth,node_profile,node_account_views,node_profile_view toneRose
class node_pdf_service toneIndigo
```

## Components

### Web entry

- [Laravel request entry](https://github.com/estif34/bp-tracker/blob/main/public/index.php): `public/index.php`
- [Web routing](https://github.com/estif34/bp-tracker/blob/main/routes/web.php): `routes/web.php`

### Reading tracking

- [Reading controller](https://github.com/estif34/bp-tracker/blob/main/app/Http/Controllers/BloodPressureController.php): `app/Http/Controllers/BloodPressureController.php`
- [Reading model](https://github.com/estif34/bp-tracker/blob/main/app/Models/BloodPressureReading.php): `app/Models/BloodPressureReading.php`
- **Configured database**
- [Reading forms and list](https://github.com/estif34/bp-tracker/blob/main/resources/views/blood-pressure/index.blade.php): `resources/views/blood-pressure/index.blade.php`
- [Dashboard](https://github.com/estif34/bp-tracker/blob/main/resources/views/dashboard.blade.php): `resources/views/dashboard.blade.php`

### Insights and export

- [Trend chart](https://github.com/estif34/bp-tracker/blob/main/resources/views/blood-pressure/chart.blade.php): `resources/views/blood-pressure/chart.blade.php`
- [Reading statistics](https://github.com/estif34/bp-tracker/blob/main/resources/views/blood-pressure/statistics.blade.php): `resources/views/blood-pressure/statistics.blade.php`
- [Blood pressure guide](https://github.com/estif34/bp-tracker/blob/main/resources/views/blood-pressure/guide.blade.php): `resources/views/blood-pressure/guide.blade.php`
- [PDF export view](https://github.com/estif34/bp-tracker/blob/main/resources/views/blood-pressure/pdf.blade.php): `resources/views/blood-pressure/pdf.blade.php`

### Accounts

- [Authentication handlers](https://github.com/estif34/bp-tracker/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php): `app/Http/Controllers/Auth/RegisteredUserController.php`
- [Profile management](https://github.com/estif34/bp-tracker/blob/main/app/Http/Controllers/ProfileController.php): `app/Http/Controllers/ProfileController.php`
- [Account views](https://github.com/estif34/bp-tracker/blob/main/resources/views/auth/login.blade.php): `resources/views/auth/login.blade.php`
- [Profile view](https://github.com/estif34/bp-tracker/blob/main/resources/views/profile/edit.blade.php): `resources/views/profile/edit.blade.php`

### Other components

- **Tracker user**
- **DomPDF renderer**

## Connections

- Tracker user → Laravel request entry: sends request
- Laravel request entry → Web routing: hands off
- Web routing → Reading controller: dispatches tracking
- Web routing → Authentication handlers: dispatches account
- Web routing → Profile management: dispatches profile
- Reading controller → Reading model: queries and updates
- Reading model → Configured database: persists records
- Reading controller → Reading forms and list: renders forms and list
- Reading controller → Dashboard: serves dashboard
- Reading controller → Trend chart: renders trend data
- Reading controller → Reading statistics: renders summaries
- Reading controller → Blood pressure guide: renders guide
- Reading controller → PDF export view: loads export view
- Reading controller → DomPDF renderer: renders PDF
- Reading controller → Configured database: streams CSV records
- Authentication handlers → Account views: renders authentication
- Authentication handlers → Configured database: creates account
- Profile management → Profile view: renders profile
- Profile management → Configured database: updates account
