# lovish-creator/sih-heat-risk architecture

> Architecture diagram of the GitHub repository lovish-creator/sih-heat-risk, 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/lovish-creator/sih-heat-risk
- Repository: https://github.com/lovish-creator/sih-heat-risk

## Overview

Taapamigo turns weather telemetry into ward-level heat-health prioritization and persona-specific public-health guidance. The principal path is weather acquisition, thermal-stress calculation, demographic vulnerability attribution, risk scoring, then presentation through the interactive dashboard and advisory/alert features. The README documents these product capabilities; sampled code confirms key GIS-to-vulnerability/risk calls and the browser’s API-fetch workflow. Endpoint wiring and some integrations are not shown in the excerpts, so those relationships are represented only where documented, and unsampled internals are grouped by supported directories.

Main entry points: [`backend/app/api/endpoints.py`](https://github.com/lovish-creator/sih-heat-risk/blob/main/backend/app/api/endpoints.py) (API endpoints), [`public/js/app.js`](https://github.com/lovish-creator/sih-heat-risk/blob/main/public/js/app.js) (Dashboard controller), [`backend/app/gis/engine.py`](https://github.com/lovish-creator/sih-heat-risk/blob/main/backend/app/gis/engine.py) (Ward risk attribution), [`backend/app/thermal`](https://github.com/lovish-creator/sih-heat-risk/tree/main/backend/app/thermal) (Thermal indices)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_inputs["Data Inputs"]
  node_weather["Weather adapters"]
end

subgraph group_analysis["Risk Analysis"]
  node_thermal["Thermal indices"]
  node_vulnerability["Demographic vulnerability"]
  node_gis["Ward risk attribution<br/>[engine.py]"]
  node_risk["Heat risk scoring<br/>[engine.py]"]
  node_advisory["Health advisories<br/>[engine.py]"]
  node_alerts["Alert dispatch<br/>[engine.py]"]
end

subgraph group_service["API Services"]
  node_api["API endpoints<br/>[endpoints.py]"]
  node_server["FastAPI application<br/>[main.py]"]
end

subgraph group_experience["Decision Support"]
  node_app["Dashboard controller<br/>[app.js]"]
  node_client["API client<br/>[api.js]"]
  node_map["Ward map<br/>[map.js]"]
  node_charts["Forecast charts<br/>[charts.js]"]
end

node_municipal(("Municipal users"))
node_meteo(("Weather APIs"))
node_solar(("NASA POWER"))
node_boundaries(("Ward boundaries"))
node_census(("Census PCA"))

node_municipal -->|"selects location"| node_app
node_meteo -->|"provides forecasts"| node_weather
node_solar -->|"provides irradiance"| node_weather
node_boundaries -->|"provides polygons"| node_gis
node_census -->|"provides demographics"| node_vulnerability
node_weather -->|"supplies conditions"| node_thermal
node_thermal -->|"supplies hazard"| node_gis
node_gis -->|"processes ward data"| node_vulnerability
node_gis -->|"calculates ward risk"| node_risk
node_thermal -->|"supplies hazard"| node_risk
node_api -->|"serves ward risk"| node_gis
node_api -->|"serves guidance"| node_advisory
node_api -->|"serves alerts"| node_alerts
node_server -->|"mounts router"| node_api
node_app -->|"requests data"| node_client
node_client -->|"calls endpoints"| node_api
node_api -->|"returns results"| node_app
node_app -->|"renders map"| node_map
node_app -->|"renders forecasts"| node_charts

click node_weather "https://github.com/lovish-creator/sih-heat-risk/tree/main/backend/app/data_sources"
click node_thermal "https://github.com/lovish-creator/sih-heat-risk/tree/main/backend/app/thermal"
click node_vulnerability "https://github.com/lovish-creator/sih-heat-risk/tree/main/backend/app/vulnerability"
click node_gis "https://github.com/lovish-creator/sih-heat-risk/blob/main/backend/app/gis/engine.py"
click node_risk "https://github.com/lovish-creator/sih-heat-risk/blob/main/backend/app/risk/engine.py"
click node_advisory "https://github.com/lovish-creator/sih-heat-risk/blob/main/backend/app/advisory/engine.py"
click node_alerts "https://github.com/lovish-creator/sih-heat-risk/blob/main/backend/app/alerts/engine.py"
click node_api "https://github.com/lovish-creator/sih-heat-risk/blob/main/backend/app/api/endpoints.py"
click node_app "https://github.com/lovish-creator/sih-heat-risk/blob/main/public/js/app.js"
click node_client "https://github.com/lovish-creator/sih-heat-risk/blob/main/public/js/api.js"
click node_map "https://github.com/lovish-creator/sih-heat-risk/blob/main/public/js/map.js"
click node_charts "https://github.com/lovish-creator/sih-heat-risk/blob/main/public/js/charts.js"
click node_server "https://github.com/lovish-creator/sih-heat-risk/blob/main/backend/app/main.py"

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_weather,node_municipal toneBlue
class node_thermal,node_vulnerability,node_gis,node_risk,node_advisory,node_alerts toneAmber
class node_api,node_server,node_meteo toneMint
class node_app,node_client,node_map,node_charts toneRose
class node_solar,node_boundaries,node_census toneIndigo
```

## Components

### Data Inputs

- [Weather adapters](https://github.com/lovish-creator/sih-heat-risk/tree/main/backend/app/data_sources): `backend/app/data_sources`

### Risk Analysis

- [Thermal indices](https://github.com/lovish-creator/sih-heat-risk/tree/main/backend/app/thermal): `backend/app/thermal`
- [Demographic vulnerability](https://github.com/lovish-creator/sih-heat-risk/tree/main/backend/app/vulnerability): `backend/app/vulnerability`
- [Ward risk attribution](https://github.com/lovish-creator/sih-heat-risk/blob/main/backend/app/gis/engine.py): `backend/app/gis/engine.py`
- [Heat risk scoring](https://github.com/lovish-creator/sih-heat-risk/blob/main/backend/app/risk/engine.py): `backend/app/risk/engine.py`
- [Health advisories](https://github.com/lovish-creator/sih-heat-risk/blob/main/backend/app/advisory/engine.py): `backend/app/advisory/engine.py`
- [Alert dispatch](https://github.com/lovish-creator/sih-heat-risk/blob/main/backend/app/alerts/engine.py): `backend/app/alerts/engine.py`

### API Services

- [API endpoints](https://github.com/lovish-creator/sih-heat-risk/blob/main/backend/app/api/endpoints.py): `backend/app/api/endpoints.py`
- [FastAPI application](https://github.com/lovish-creator/sih-heat-risk/blob/main/backend/app/main.py): `backend/app/main.py`

### Decision Support

- [Dashboard controller](https://github.com/lovish-creator/sih-heat-risk/blob/main/public/js/app.js): `public/js/app.js`
- [API client](https://github.com/lovish-creator/sih-heat-risk/blob/main/public/js/api.js): `public/js/api.js`
- [Ward map](https://github.com/lovish-creator/sih-heat-risk/blob/main/public/js/map.js): `public/js/map.js`
- [Forecast charts](https://github.com/lovish-creator/sih-heat-risk/blob/main/public/js/charts.js): `public/js/charts.js`

### Other components

- **Municipal users**
- **Weather APIs**
- **NASA POWER**
- **Ward boundaries**
- **Census PCA**

## Connections

- Municipal users → Dashboard controller: selects location
- Weather APIs → Weather adapters: provides forecasts
- NASA POWER → Weather adapters: provides irradiance
- Ward boundaries → Ward risk attribution: provides polygons
- Census PCA → Demographic vulnerability: provides demographics
- Weather adapters → Thermal indices: supplies conditions
- Thermal indices → Ward risk attribution: supplies hazard
- Ward risk attribution → Demographic vulnerability: processes ward data
- Ward risk attribution → Heat risk scoring: calculates ward risk
- Thermal indices → Heat risk scoring: supplies hazard
- API endpoints → Ward risk attribution: serves ward risk
- API endpoints → Health advisories: serves guidance
- API endpoints → Alert dispatch: serves alerts
- FastAPI application → API endpoints: mounts router
- Dashboard controller → API client: requests data
- API client → API endpoints: calls endpoints
- API endpoints → Dashboard controller: returns results
- Dashboard controller → Ward map: renders map
- Dashboard controller → Forecast charts: renders forecasts
