# saicharantejapudi/disaster-response-system-dsa architecture

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

- Interactive diagram: https://gitdiagram.com/saicharantejapudi/disaster-response-system-dsa
- Repository: https://github.com/saicharantejapudi/disaster-response-system-dsa

## Overview

This is a disaster-response route-planning web application with a command-line engine: users choose locations and routing options, receive a route that accounts for road hazards and blockages, and inspect nearby emergency resources on a map. The workflow spans dashboard interaction, API dispatch, graph construction and route search, then route/resource visualization. Separate capabilities include graph traversal, algorithm comparison, disaster statistics, and adding resources. The README documents these features; some server and frontend implementation details are only partially sampled, so uncertain internal wiring is omitted.

Main entry points: [`server.js`](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/server.js) (Express API server), [`dsaEngine.js`](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/dsaEngine.js) (JavaScript fallback engine), [`backend/src/data.cpp`](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/backend/src/data.cpp) (CSV data manager), [`backend/src/main.cpp`](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/backend/src/main.cpp) (C++ command engine)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Web interface"]
  node_dashboard["Dashboard UI<br/>[index.html]"]
  node_map["Route and map controller<br/>[route.js]"]
  node_dashboardjs["Dashboard controller<br/>[dashboard.js]"]
end

subgraph group_api["API services"]
  node_server["Express API server<br/>[server.js]"]
  node_resources["Emergency resource portal<br/>[server.js]"]
  node_comparison["Algorithm comparison<br/>[server.js]"]
  node_analytics["Disaster statistics API<br/>[server.js]"]
end

subgraph group_engine["Routing engine"]
  node_native["C++ command engine<br/>[main.cpp]"]
  node_fallback["JavaScript fallback engine<br/>[dsaEngine.js]"]
  node_data_manager["CSV data manager<br/>[data.cpp]"]
  node_graph["Road graph<br/>[graph.cpp]"]
  node_algorithms["Path and traversal algorithms<br/>[algorithms.cpp]"]
end

subgraph group_datasets["Operational data"]
  node_roads["Road network<br/>[roads.csv]"]
  node_coordinates["Location coordinates<br/>[coordinates.csv]"]
  node_hospitals["Hospital records<br/>[hospitals.csv]"]
  node_shelters["Shelter records<br/>[shelters.csv]"]
  node_teams["Rescue team records<br/>[teams.csv]"]
  node_disaster_stats["Disaster statistics<br/>[disasterData.json]"]
end

node_operator(("Response operator"))
node_tiles["OpenStreetMap tiles"]

node_operator -->|"uses"| node_dashboard
node_dashboard -->|"loads controller"| node_map
node_map -->|"requests routes and resources"| node_server
node_dashboardjs -->|"requests statistics"| node_server
node_map -.->|"renders map tiles"| node_tiles
node_server -->|"dispatches engine commands"| node_native
node_server -.->|"uses fallback engine"| node_fallback
node_native -->|"loads datasets"| node_data_manager
node_native -->|"builds road graph"| node_graph
node_native -->|"runs routes and traversals"| node_algorithms
node_data_manager -->|"reads"| node_roads
node_data_manager -->|"reads"| node_coordinates
node_data_manager -->|"reads"| node_hospitals
node_data_manager -->|"reads"| node_shelters
node_data_manager -->|"reads"| node_teams
node_fallback -.->|"reads"| node_roads
node_fallback -.->|"reads"| node_coordinates
node_fallback -.->|"reads"| node_hospitals
node_fallback -.->|"reads"| node_shelters
node_fallback -.->|"reads"| node_teams
node_server -->|"handles resource requests"| node_resources
node_resources -->|"updates records"| node_hospitals
node_resources -->|"updates records"| node_shelters
node_resources -->|"updates records"| node_teams
node_server -->|"runs four algorithms"| node_comparison
node_comparison -->|"dispatches route commands"| node_native
node_server -->|"serves statistics"| node_analytics
node_analytics -->|"reads"| node_disaster_stats
node_algorithms -->|"searches graph"| node_graph
node_map -->|"requests graph and traversal"| node_server

click node_dashboard "https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/frontend/index.html"
click node_map "https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/frontend/route.js"
click node_dashboardjs "https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/frontend/dashboard.js"
click node_server "https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/server.js"
click node_native "https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/backend/src/main.cpp"
click node_fallback "https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/dsaEngine.js"
click node_data_manager "https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/backend/src/data.cpp"
click node_graph "https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/backend/src/graph.cpp"
click node_algorithms "https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/backend/src/algorithms.cpp"
click node_roads "https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/data/roads.csv"
click node_coordinates "https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/data/coordinates.csv"
click node_hospitals "https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/data/hospitals.csv"
click node_shelters "https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/data/shelters.csv"
click node_teams "https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/data/teams.csv"
click node_disaster_stats "https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/data/disasterData.json"
click node_resources "https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/server.js"
click node_comparison "https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/server.js"
click node_analytics "https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/server.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_dashboard,node_map,node_dashboardjs toneBlue
class node_server,node_resources,node_comparison,node_analytics toneAmber
class node_native,node_fallback,node_data_manager,node_graph,node_algorithms toneMint
class node_roads,node_coordinates,node_hospitals,node_shelters,node_teams,node_disaster_stats toneRose
class node_operator,node_tiles toneIndigo
```

## Components

### Web interface

- [Dashboard UI](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/frontend/index.html): `frontend/index.html`
- [Route and map controller](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/frontend/route.js): `frontend/route.js`
- [Dashboard controller](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/frontend/dashboard.js): `frontend/dashboard.js`

### API services

- [Express API server](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/server.js): `server.js`
- [Emergency resource portal](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/server.js): `server.js`
- [Algorithm comparison](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/server.js): `server.js`
- [Disaster statistics API](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/server.js): `server.js`

### Routing engine

- [C++ command engine](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/backend/src/main.cpp): `backend/src/main.cpp`
- [JavaScript fallback engine](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/dsaEngine.js): `dsaEngine.js`
- [CSV data manager](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/backend/src/data.cpp): `backend/src/data.cpp`
- [Road graph](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/backend/src/graph.cpp): `backend/src/graph.cpp`
- [Path and traversal algorithms](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/backend/src/algorithms.cpp): `backend/src/algorithms.cpp`

### Operational data

- [Road network](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/data/roads.csv): `data/roads.csv`
- [Location coordinates](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/data/coordinates.csv): `data/coordinates.csv`
- [Hospital records](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/data/hospitals.csv): `data/hospitals.csv`
- [Shelter records](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/data/shelters.csv): `data/shelters.csv`
- [Rescue team records](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/data/teams.csv): `data/teams.csv`
- [Disaster statistics](https://github.com/saicharantejapudi/disaster-response-system-dsa/blob/main/data/disasterData.json): `data/disasterData.json`

### Other components

- **Response operator**
- **OpenStreetMap tiles**

## Connections

- Response operator → Dashboard UI: uses
- Dashboard UI → Route and map controller: loads controller
- Route and map controller → Express API server: requests routes and resources
- Dashboard controller → Express API server: requests statistics
- Route and map controller → OpenStreetMap tiles: renders map tiles
- Express API server → C++ command engine: dispatches engine commands
- Express API server → JavaScript fallback engine: uses fallback engine
- C++ command engine → CSV data manager: loads datasets
- C++ command engine → Road graph: builds road graph
- C++ command engine → Path and traversal algorithms: runs routes and traversals
- CSV data manager → Road network: reads
- CSV data manager → Location coordinates: reads
- CSV data manager → Hospital records: reads
- CSV data manager → Shelter records: reads
- CSV data manager → Rescue team records: reads
- JavaScript fallback engine → Road network: reads
- JavaScript fallback engine → Location coordinates: reads
- JavaScript fallback engine → Hospital records: reads
- JavaScript fallback engine → Shelter records: reads
- JavaScript fallback engine → Rescue team records: reads
- Express API server → Emergency resource portal: handles resource requests
- Emergency resource portal → Hospital records: updates records
- Emergency resource portal → Shelter records: updates records
- Emergency resource portal → Rescue team records: updates records
- Express API server → Algorithm comparison: runs four algorithms
- Algorithm comparison → C++ command engine: dispatches route commands
- Express API server → Disaster statistics API: serves statistics
- Disaster statistics API → Disaster statistics: reads
- Path and traversal algorithms → Road graph: searches graph
- Route and map controller → Express API server: requests graph and traversal
