# asbaz7/srd-project-manager architecture

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

- Interactive diagram: https://gitdiagram.com/asbaz7/srd-project-manager
- Repository: https://github.com/asbaz7/srd-project-manager

## Overview

South Regional Department Dashboard is a read-only view of atolls, islands, gensets, and projects. Users start at the overview, drill into an atoll’s islands, then open an island to inspect its gensets and projects. The data layer combines Supabase records (including genset model and capacity) with Google Sheet status, project, and optional fuel-capacity data, then calculates summary metrics for the pages. The README documents these capabilities; relationships shown below are supported by the sampled page and data code or explicit README statements.

Main entry points: [`branch-monitor/lib/data.js`](https://github.com/asbaz7/srd-project-manager/blob/main/branch-monitor/lib/data.js) (Data queries and summaries), [`branch-monitor/app/page.js`](https://github.com/asbaz7/srd-project-manager/blob/main/branch-monitor/app/page.js) (Overview), [`branch-monitor/app/atolls/[code]/page.js`](https://github.com/asbaz7/srd-project-manager/blob/main/branch-monitor/app/atolls/%5Bcode%5D/page.js) (Atoll detail), [`branch-monitor/components/ui.js`](https://github.com/asbaz7/srd-project-manager/blob/main/branch-monitor/components/ui.js) (Dashboard UI components)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_views["Dashboard views"]
  node_overview["Overview<br/>[page.js]"]
  node_atoll_view["Atoll detail<br/>[page.js]"]
  node_island_view["Island detail<br/>[page.js]"]
end

subgraph group_data["Data assembly"]
  node_data_layer["Data queries and summaries<br/>[data.js]"]
  node_sheet_reader["Sheet ingestion<br/>[sheet.js]"]
end

subgraph group_presentation["Presentation"]
  node_ui["Dashboard UI components<br/>[ui.js]"]
  node_layout["Shared page layout<br/>[layout.js]"]
end

node_user(("Department user"))
node_supabase[("Supabase records")]
node_google_sheet[("Shared Google Sheet")]

node_user -->|"opens dashboard"| node_overview
node_overview -->|"links to atoll"| node_atoll_view
node_atoll_view -->|"links to island"| node_island_view
node_overview -->|"requests overview data"| node_data_layer
node_atoll_view -->|"requests atoll data"| node_data_layer
node_island_view -->|"requests island data"| node_data_layer
node_data_layer -->|"queries records"| node_supabase
node_data_layer -->|"loads sheet data"| node_sheet_reader
node_sheet_reader -->|"reads CSV tabs"| node_google_sheet
node_overview -->|"renders components"| node_ui
node_atoll_view -->|"renders components"| node_ui
node_island_view -->|"renders components"| node_ui
node_ui -->|"formats capacity"| node_data_layer
node_layout -.->|"frames pages"| node_user

click node_overview "https://github.com/asbaz7/srd-project-manager/blob/main/branch-monitor/app/page.js"
click node_atoll_view "https://github.com/asbaz7/srd-project-manager/blob/main/branch-monitor/app/atolls/%5Bcode%5D/page.js"
click node_island_view "https://github.com/asbaz7/srd-project-manager/blob/main/branch-monitor/app/islands/%5Bid%5D/page.js"
click node_data_layer "https://github.com/asbaz7/srd-project-manager/blob/main/branch-monitor/lib/data.js"
click node_sheet_reader "https://github.com/asbaz7/srd-project-manager/blob/main/branch-monitor/lib/sheet.js"
click node_ui "https://github.com/asbaz7/srd-project-manager/blob/main/branch-monitor/components/ui.js"
click node_layout "https://github.com/asbaz7/srd-project-manager/blob/main/branch-monitor/app/layout.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_overview,node_atoll_view,node_island_view,node_user toneBlue
class node_data_layer,node_sheet_reader,node_supabase,node_google_sheet toneAmber
class node_ui,node_layout toneMint
```

## Components

### Dashboard views

- [Overview](https://github.com/asbaz7/srd-project-manager/blob/main/branch-monitor/app/page.js): `branch-monitor/app/page.js`
- [Atoll detail](https://github.com/asbaz7/srd-project-manager/blob/main/branch-monitor/app/atolls/%5Bcode%5D/page.js): `branch-monitor/app/atolls/[code]/page.js`
- [Island detail](https://github.com/asbaz7/srd-project-manager/blob/main/branch-monitor/app/islands/%5Bid%5D/page.js): `branch-monitor/app/islands/[id]/page.js`

### Data assembly

- [Data queries and summaries](https://github.com/asbaz7/srd-project-manager/blob/main/branch-monitor/lib/data.js): `branch-monitor/lib/data.js`
- [Sheet ingestion](https://github.com/asbaz7/srd-project-manager/blob/main/branch-monitor/lib/sheet.js): `branch-monitor/lib/sheet.js`

### Presentation

- [Dashboard UI components](https://github.com/asbaz7/srd-project-manager/blob/main/branch-monitor/components/ui.js): `branch-monitor/components/ui.js`
- [Shared page layout](https://github.com/asbaz7/srd-project-manager/blob/main/branch-monitor/app/layout.js): `branch-monitor/app/layout.js`

### Other components

- **Department user**
- **Supabase records**
- **Shared Google Sheet**

## Connections

- Department user → Overview: opens dashboard (evidence: `README.md`)
- Overview → Atoll detail: links to atoll (evidence: `branch-monitor/app/page.js`)
- Atoll detail → Island detail: links to island (evidence: `branch-monitor/app/atolls/[code]/page.js`)
- Overview → Data queries and summaries: requests overview data (evidence: `branch-monitor/app/page.js`)
- Atoll detail → Data queries and summaries: requests atoll data (evidence: `branch-monitor/app/atolls/[code]/page.js`)
- Island detail → Data queries and summaries: requests island data (evidence: `branch-monitor/app/islands/[id]/page.js`)
- Data queries and summaries → Supabase records: queries records (evidence: `branch-monitor/lib/data.js`)
- Data queries and summaries → Sheet ingestion: loads sheet data (evidence: `branch-monitor/lib/data.js`)
- Sheet ingestion → Shared Google Sheet: reads CSV tabs (evidence: `branch-monitor/lib/sheet.js`)
- Overview → Dashboard UI components: renders components (evidence: `branch-monitor/app/page.js`)
- Atoll detail → Dashboard UI components: renders components (evidence: `branch-monitor/app/atolls/[code]/page.js`)
- Island detail → Dashboard UI components: renders components (evidence: `branch-monitor/app/islands/[id]/page.js`)
- Dashboard UI components → Data queries and summaries: formats capacity (evidence: `branch-monitor/components/ui.js`)
- Shared page layout → Department user: frames pages
