# christopherharris13/spsops-dashboard architecture

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

- Interactive diagram: https://gitdiagram.com/christopherharris13/spsops-dashboard
- Repository: https://github.com/christopherharris13/spsops-dashboard

## Overview

This repository documents a Springfield Public Schools analytics workflow: DESE CSVs are manually loaded into Azure SQL staging, transformed into a dimensional model and reporting views, then imported into a Power BI report. The report covers operations, finance, and data quality. The graph follows documented SQL stages and capabilities; source excerpts were unavailable, so it does not assume undocumented table-level wiring or dashboard internals.

Main entry points: [`pbix/SPSOps.pbix`](https://github.com/christopherharris13/spsops-dashboard/blob/main/pbix/SPSOps.pbix) (Power BI report), [`sql/02_staging_ddl.sql`](https://github.com/christopherharris13/spsops-dashboard/blob/main/sql/02_staging_ddl.sql) (Raw staging tables), [`data-raw/District_Expenditures_by_Spending_Category_20260715.csv`](https://github.com/christopherharris13/spsops-dashboard/blob/main/data-raw/District_Expenditures_by_Spending_Category_20260715.csv) (Expenditure CSV), [`data-raw/Enrollment__Grade,_Race_Ethnicity,_Gender,_and_Selected_Populations_20260715.csv`](https://github.com/christopherharris13/spsops-dashboard/blob/main/data-raw/Enrollment__Grade%2C_Race_Ethnicity%2C_Gender%2C_and_Selected_Populations_20260715.csv) (Enrollment CSV)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_source["Source and loading"]
  node_expenditures_csv["Expenditure CSV"]
  node_enrollment_csv["Enrollment CSV"]
  node_staffing_csv["Staffing CSV"]
  node_attendance_csv["Attendance CSV"]
  node_loader["Manual CSV loader"]
end

subgraph group_warehouse["SQL warehouse"]
  node_schemas["Schema setup<br/>[01_schemas.sql]"]
  node_staging_ddl["Staging definitions<br/>[02_staging_ddl.sql]"]
  node_staging[("Raw staging tables<br/>[02_staging_ddl.sql]")]
  node_verify["Staging checks"]
  node_model["Dimensional model load<br/>[04_star_schema.sql]"]
  node_warehouse_db[("Azure SQL Database")]
  node_curated["Curated reporting views<br/>[05_views.sql]"]
  node_quality["Data-quality views"]
end

subgraph group_reporting["Power BI reporting"]
  node_powerbi["Power BI report<br/>[SPSOps.pbix]"]
  node_operations["Operations page<br/>[SPSOps.pbix]"]
  node_finance["Finance page<br/>[SPSOps.pbix]"]
  node_quality_page["Data Quality page<br/>[SPSOps.pbix]"]
end

node_dese(("Massachusetts DESE"))

node_dese -->|"publishes"| node_expenditures_csv
node_dese -->|"publishes"| node_enrollment_csv
node_dese -->|"publishes"| node_staffing_csv
node_dese -->|"publishes"| node_attendance_csv
node_expenditures_csv -->|"loaded from"| node_loader
node_enrollment_csv -->|"loaded from"| node_loader
node_staffing_csv -->|"loaded from"| node_loader
node_attendance_csv -->|"loaded from"| node_loader
node_loader -->|"imports into"| node_staging
node_schemas -->|"creates schemas"| node_warehouse_db
node_staging_ddl -->|"defines tables"| node_warehouse_db
node_staging -->|"checked by"| node_verify
node_staging -->|"transformed from"| node_model
node_model -->|"builds dimensions and facts"| node_warehouse_db
node_warehouse_db -->|"serves model data"| node_curated
node_warehouse_db -->|"serves validation data"| node_quality
node_curated -->|"imported by"| node_powerbi
node_quality -->|"imported by"| node_powerbi
node_powerbi -->|"presents"| node_operations
node_powerbi -->|"presents"| node_finance
node_powerbi -->|"presents"| node_quality_page

click node_expenditures_csv "https://github.com/christopherharris13/spsops-dashboard/blob/main/data-raw/District_Expenditures_by_Spending_Category_20260715.csv"
click node_enrollment_csv "https://github.com/christopherharris13/spsops-dashboard/blob/main/data-raw/Enrollment__Grade%2C_Race_Ethnicity%2C_Gender%2C_and_Selected_Populations_20260715.csv"
click node_staffing_csv "https://github.com/christopherharris13/spsops-dashboard/blob/main/data-raw/Staffing__Race_Ethnicity_and_Gender_20260715.csv"
click node_attendance_csv "https://github.com/christopherharris13/spsops-dashboard/blob/main/data-raw/Student_Attendance_20260715.csv"
click node_schemas "https://github.com/christopherharris13/spsops-dashboard/blob/main/sql/01_schemas.sql"
click node_staging_ddl "https://github.com/christopherharris13/spsops-dashboard/blob/main/sql/02_staging_ddl.sql"
click node_staging "https://github.com/christopherharris13/spsops-dashboard/blob/main/sql/02_staging_ddl.sql"
click node_verify "https://github.com/christopherharris13/spsops-dashboard/blob/main/sql/03_verify_staging.sql"
click node_model "https://github.com/christopherharris13/spsops-dashboard/blob/main/sql/04_star_schema.sql"
click node_curated "https://github.com/christopherharris13/spsops-dashboard/blob/main/sql/05_views.sql"
click node_quality "https://github.com/christopherharris13/spsops-dashboard/blob/main/sql/06_data_quality.sql"
click node_powerbi "https://github.com/christopherharris13/spsops-dashboard/blob/main/pbix/SPSOps.pbix"
click node_operations "https://github.com/christopherharris13/spsops-dashboard/blob/main/pbix/SPSOps.pbix"
click node_finance "https://github.com/christopherharris13/spsops-dashboard/blob/main/pbix/SPSOps.pbix"
click node_quality_page "https://github.com/christopherharris13/spsops-dashboard/blob/main/pbix/SPSOps.pbix"

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_expenditures_csv,node_enrollment_csv,node_staffing_csv,node_attendance_csv,node_loader toneBlue
class node_schemas,node_staging_ddl,node_staging,node_verify,node_model,node_warehouse_db,node_curated,node_quality toneAmber
class node_powerbi,node_operations,node_finance,node_quality_page toneMint
class node_dese toneIndigo
```

## Components

### Source and loading

- [Expenditure CSV](https://github.com/christopherharris13/spsops-dashboard/blob/main/data-raw/District_Expenditures_by_Spending_Category_20260715.csv): `data-raw/District_Expenditures_by_Spending_Category_20260715.csv`
- [Enrollment CSV](https://github.com/christopherharris13/spsops-dashboard/blob/main/data-raw/Enrollment__Grade%2C_Race_Ethnicity%2C_Gender%2C_and_Selected_Populations_20260715.csv): `data-raw/Enrollment__Grade,_Race_Ethnicity,_Gender,_and_Selected_Populations_20260715.csv`
- [Staffing CSV](https://github.com/christopherharris13/spsops-dashboard/blob/main/data-raw/Staffing__Race_Ethnicity_and_Gender_20260715.csv): `data-raw/Staffing__Race_Ethnicity_and_Gender_20260715.csv`
- [Attendance CSV](https://github.com/christopherharris13/spsops-dashboard/blob/main/data-raw/Student_Attendance_20260715.csv): `data-raw/Student_Attendance_20260715.csv`
- **Manual CSV loader**

### SQL warehouse

- [Schema setup](https://github.com/christopherharris13/spsops-dashboard/blob/main/sql/01_schemas.sql): `sql/01_schemas.sql`
- [Staging definitions](https://github.com/christopherharris13/spsops-dashboard/blob/main/sql/02_staging_ddl.sql): `sql/02_staging_ddl.sql`
- [Raw staging tables](https://github.com/christopherharris13/spsops-dashboard/blob/main/sql/02_staging_ddl.sql): `sql/02_staging_ddl.sql`
- [Staging checks](https://github.com/christopherharris13/spsops-dashboard/blob/main/sql/03_verify_staging.sql): `sql/03_verify_staging.sql`
- [Dimensional model load](https://github.com/christopherharris13/spsops-dashboard/blob/main/sql/04_star_schema.sql): `sql/04_star_schema.sql`
- **Azure SQL Database**
- [Curated reporting views](https://github.com/christopherharris13/spsops-dashboard/blob/main/sql/05_views.sql): `sql/05_views.sql`
- [Data-quality views](https://github.com/christopherharris13/spsops-dashboard/blob/main/sql/06_data_quality.sql): `sql/06_data_quality.sql`

### Power BI reporting

- [Power BI report](https://github.com/christopherharris13/spsops-dashboard/blob/main/pbix/SPSOps.pbix): `pbix/SPSOps.pbix`
- [Operations page](https://github.com/christopherharris13/spsops-dashboard/blob/main/pbix/SPSOps.pbix): `pbix/SPSOps.pbix`
- [Finance page](https://github.com/christopherharris13/spsops-dashboard/blob/main/pbix/SPSOps.pbix): `pbix/SPSOps.pbix`
- [Data Quality page](https://github.com/christopherharris13/spsops-dashboard/blob/main/pbix/SPSOps.pbix): `pbix/SPSOps.pbix`

### Other components

- **Massachusetts DESE**

## Connections

- Massachusetts DESE → Expenditure CSV: publishes
- Massachusetts DESE → Enrollment CSV: publishes
- Massachusetts DESE → Staffing CSV: publishes
- Massachusetts DESE → Attendance CSV: publishes
- Expenditure CSV → Manual CSV loader: loaded from
- Enrollment CSV → Manual CSV loader: loaded from
- Staffing CSV → Manual CSV loader: loaded from
- Attendance CSV → Manual CSV loader: loaded from
- Manual CSV loader → Raw staging tables: imports into
- Schema setup → Azure SQL Database: creates schemas
- Staging definitions → Azure SQL Database: defines tables
- Raw staging tables → Staging checks: checked by
- Raw staging tables → Dimensional model load: transformed from
- Dimensional model load → Azure SQL Database: builds dimensions and facts
- Azure SQL Database → Curated reporting views: serves model data
- Azure SQL Database → Data-quality views: serves validation data
- Curated reporting views → Power BI report: imported by
- Data-quality views → Power BI report: imported by
- Power BI report → Operations page: presents
- Power BI report → Finance page: presents
- Power BI report → Data Quality page: presents
