# saha068-code/disaster-management-ml-project architecture

> Architecture diagram of the GitHub repository saha068-code/disaster-management-ml-project, 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/saha068-code/disaster-management-ml-project
- Repository: https://github.com/saha068-code/disaster-management-ml-project

## Overview

This repository combines a browser-based disaster damage assessment console with a Python inference server and an xBD model workflow. The principal path is an operator submitting pre- and post-disaster imagery in the console; the server preprocesses the pair, runs DamageUNet, extracts building damage regions, and returns results. The tree also includes operational console pages, event-feed endpoints, dataset acquisition, training, evaluation, and model export. Frontend behavior beyond the documented upload flow is not shown in the sampled source, so those page relationships are left unspecified.

Main entry points: [`ml/serve.py`](https://github.com/saha068-code/disaster-management-ml-project/blob/main/ml/serve.py) (HTTP server), [`ml/train.py`](https://github.com/saha068-code/disaster-management-ml-project/blob/main/ml/train.py) (Model training), [`ml/evaluate.py`](https://github.com/saha068-code/disaster-management-ml-project/blob/main/ml/evaluate.py) (Model evaluation), [`assets/app.js`](https://github.com/saha068-code/disaster-management-ml-project/blob/main/assets/app.js) (Browser console)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_console["Assessment console"]
  node_web["Browser console<br/>[app.js]"]
  node_app["Assessment page<br/>[app.html]"]
  node_ops["Operations page<br/>[ops.html]"]
  node_priority["Priorities page<br/>[priority.html]"]
  node_protocol["Protocol page<br/>[protocol.html]"]
  node_report["Report page<br/>[report.html]"]
  node_research["Research page<br/>[research.html]"]
  node_zones["Zones page<br/>[zones.html]"]
end

subgraph group_inference["Inference service"]
  node_server["HTTP server<br/>[serve.py]"]
  node_analysis["Pair analysis<br/>[serve.py]"]
end

subgraph group_ml["Model workflow"]
  node_damage_model["Damage U-Net<br/>[model.py]"]
  node_weights[("Model weights")]
  node_dataset["Dataset loader<br/>[dataset.py]"]
  node_training["Model training<br/>[train.py]"]
  node_evaluation["Model evaluation<br/>[evaluate.py]"]
  node_export["Model export<br/>[export.py]"]
end

subgraph group_data["Data sources"]
  node_xbd[("xBD dataset")]
  node_download["Dataset downloader<br/>[download.py]"]
end

node_operator(("Operator"))
node_hf[("Hugging Face xBD")]
node_usgs[("USGS events")]
node_gdacs[("GDACS events")]

node_operator -->|"uses"| node_web
node_web -->|"loads"| node_app
node_web -->|"submits image pair"| node_server
node_server -->|"returns analysis"| node_web
node_server -->|"dispatches"| node_analysis
node_analysis -->|"runs inference"| node_damage_model
node_analysis -->|"loads weights"| node_weights
node_server -.->|"fetches events"| node_usgs
node_server -.->|"fetches events"| node_gdacs
node_download -->|"streams images"| node_hf
node_download -->|"writes pairs"| node_xbd
node_training -->|"reads pairs"| node_xbd
node_training -->|"loads samples"| node_dataset
node_training -->|"trains"| node_damage_model
node_training -->|"writes checkpoints"| node_weights
node_evaluation -->|"reads pairs"| node_xbd
node_evaluation -->|"loads samples"| node_dataset
node_evaluation -->|"evaluates"| node_damage_model
node_evaluation -->|"loads weights"| node_weights
node_export -->|"loads architecture"| node_damage_model
node_export -->|"loads weights"| node_weights

click node_web "https://github.com/saha068-code/disaster-management-ml-project/blob/main/assets/app.js"
click node_app "https://github.com/saha068-code/disaster-management-ml-project/blob/main/app.html"
click node_ops "https://github.com/saha068-code/disaster-management-ml-project/blob/main/ops.html"
click node_priority "https://github.com/saha068-code/disaster-management-ml-project/blob/main/priority.html"
click node_protocol "https://github.com/saha068-code/disaster-management-ml-project/blob/main/protocol.html"
click node_report "https://github.com/saha068-code/disaster-management-ml-project/blob/main/report.html"
click node_research "https://github.com/saha068-code/disaster-management-ml-project/blob/main/research.html"
click node_zones "https://github.com/saha068-code/disaster-management-ml-project/blob/main/zones.html"
click node_server "https://github.com/saha068-code/disaster-management-ml-project/blob/main/ml/serve.py"
click node_analysis "https://github.com/saha068-code/disaster-management-ml-project/blob/main/ml/serve.py"
click node_damage_model "https://github.com/saha068-code/disaster-management-ml-project/blob/main/ml/model.py"
click node_weights "https://github.com/saha068-code/disaster-management-ml-project/tree/main/ml/outputs"
click node_xbd "https://github.com/saha068-code/disaster-management-ml-project/tree/main/ml/data/xbd"
click node_download "https://github.com/saha068-code/disaster-management-ml-project/blob/main/ml/download.py"
click node_dataset "https://github.com/saha068-code/disaster-management-ml-project/blob/main/ml/dataset.py"
click node_training "https://github.com/saha068-code/disaster-management-ml-project/blob/main/ml/train.py"
click node_evaluation "https://github.com/saha068-code/disaster-management-ml-project/blob/main/ml/evaluate.py"
click node_export "https://github.com/saha068-code/disaster-management-ml-project/blob/main/ml/export.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_web,node_app,node_ops,node_priority,node_protocol,node_report,node_research,node_zones toneBlue
class node_server,node_analysis,node_hf,node_usgs,node_gdacs toneAmber
class node_damage_model,node_weights,node_dataset,node_training,node_evaluation,node_export toneMint
class node_xbd,node_download toneRose
class node_operator toneIndigo
```

## Components

### Assessment console

- [Browser console](https://github.com/saha068-code/disaster-management-ml-project/blob/main/assets/app.js): `assets/app.js`
- [Assessment page](https://github.com/saha068-code/disaster-management-ml-project/blob/main/app.html): `app.html`
- [Operations page](https://github.com/saha068-code/disaster-management-ml-project/blob/main/ops.html): `ops.html`
- [Priorities page](https://github.com/saha068-code/disaster-management-ml-project/blob/main/priority.html): `priority.html`
- [Protocol page](https://github.com/saha068-code/disaster-management-ml-project/blob/main/protocol.html): `protocol.html`
- [Report page](https://github.com/saha068-code/disaster-management-ml-project/blob/main/report.html): `report.html`
- [Research page](https://github.com/saha068-code/disaster-management-ml-project/blob/main/research.html): `research.html`
- [Zones page](https://github.com/saha068-code/disaster-management-ml-project/blob/main/zones.html): `zones.html`

### Inference service

- [HTTP server](https://github.com/saha068-code/disaster-management-ml-project/blob/main/ml/serve.py): `ml/serve.py`
- [Pair analysis](https://github.com/saha068-code/disaster-management-ml-project/blob/main/ml/serve.py): `ml/serve.py`

### Model workflow

- [Damage U-Net](https://github.com/saha068-code/disaster-management-ml-project/blob/main/ml/model.py): `ml/model.py`
- [Model weights](https://github.com/saha068-code/disaster-management-ml-project/tree/main/ml/outputs): `ml/outputs`
- [Dataset loader](https://github.com/saha068-code/disaster-management-ml-project/blob/main/ml/dataset.py): `ml/dataset.py`
- [Model training](https://github.com/saha068-code/disaster-management-ml-project/blob/main/ml/train.py): `ml/train.py`
- [Model evaluation](https://github.com/saha068-code/disaster-management-ml-project/blob/main/ml/evaluate.py): `ml/evaluate.py`
- [Model export](https://github.com/saha068-code/disaster-management-ml-project/blob/main/ml/export.py): `ml/export.py`

### Data sources

- [xBD dataset](https://github.com/saha068-code/disaster-management-ml-project/tree/main/ml/data/xbd): `ml/data/xbd`
- [Dataset downloader](https://github.com/saha068-code/disaster-management-ml-project/blob/main/ml/download.py): `ml/download.py`

### Other components

- **Operator**
- **Hugging Face xBD**
- **USGS events**
- **GDACS events**

## Connections

- Operator → Browser console: uses
- Browser console → Assessment page: loads
- Browser console → HTTP server: submits image pair
- HTTP server → Browser console: returns analysis
- HTTP server → Pair analysis: dispatches
- Pair analysis → Damage U-Net: runs inference
- Pair analysis → Model weights: loads weights
- HTTP server → USGS events: fetches events
- HTTP server → GDACS events: fetches events
- Dataset downloader → Hugging Face xBD: streams images
- Dataset downloader → xBD dataset: writes pairs
- Model training → xBD dataset: reads pairs
- Model training → Dataset loader: loads samples
- Model training → Damage U-Net: trains
- Model training → Model weights: writes checkpoints
- Model evaluation → xBD dataset: reads pairs
- Model evaluation → Dataset loader: loads samples
- Model evaluation → Damage U-Net: evaluates
- Model evaluation → Model weights: loads weights
- Model export → Damage U-Net: loads architecture
- Model export → Model weights: loads weights
