# tejas-upadhyay/hurricaneheroes architecture

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

- Interactive diagram: https://gitdiagram.com/tejas-upadhyay/hurricaneheroes
- Repository: https://github.com/tejas-upadhyay/hurricaneheroes

## Overview

Hurricane Heroes is a Django community relief-coordination application: the public discovers shelter needs and submits donations, volunteer registrations, and help requests; area admins maintain local needs, while super admins oversee platform-wide records. The graph separates public discovery and submissions from the two administration workflows and shared persisted state. README documents map, search, weather alerts, and bilingual navigation; sampled view excerpts are incomplete, so uncertain endpoint-level wiring is not shown.

Main entry points: [`templates/public`](https://github.com/tejas-upadhyay/hurricaneheroes/tree/main/templates/public) (Public pages), [`relief_app/views.py`](https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/relief_app/views.py) (Request handlers), [`relief_app/urls.py`](https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/relief_app/urls.py) (URL routing), [`templates/public/map.html`](https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/templates/public/map.html) (Interactive map)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public coordination"]
  node_public_pages["Public pages"]
  node_shelter_discovery["Shelter discovery"]
  node_global_search["Global search<br/>[search.html]"]
  node_donation_flow["Donation logging<br/>[donate.html]"]
  node_volunteer_flow["Volunteer signup"]
  node_help_request["Help requests<br/>[need_request.html]"]
  node_shelter_map["Interactive map<br/>[map.html]"]
  node_weather_alerts["Weather alerts"]
end

subgraph group_area_admin["Area administration"]
  node_area_panel["Area admin panel"]
  node_area_needs["Local needs<br/>[needs.html]"]
end

subgraph group_super_admin["Platform administration"]
  node_super_panel["Super admin panel"]
  node_oversight["Admin oversight"]
end

subgraph group_core["Application core"]
  node_routing["URL routing<br/>[urls.py]"]
  node_login_page["Login page<br/>[login.html]"]
  node_views["Request handlers<br/>[views.py]"]
  node_domain_models["Relief records<br/>[models.py]"]
end

subgraph group_state["Persistent state"]
  node_relief_db[("Relief database<br/>[settings.py]")]
end

node_community(("Community user"))
node_area_staff(("Area admin"))
node_platform_staff(("Super admin"))
node_noaa{{"NOAA alerts"}}
node_openstreetmap{{"OpenStreetMap"}}

node_community -->|"requests pages"| node_routing
node_area_staff -->|"requests admin"| node_routing
node_platform_staff -->|"requests admin"| node_routing
node_routing -->|"dispatches"| node_views
node_views -->|"renders"| node_public_pages
node_views -->|"renders"| node_area_panel
node_views -->|"renders"| node_super_panel
node_views -->|"renders"| node_login_page
node_views -->|"queries and updates"| node_domain_models
node_domain_models -->|"persists records"| node_relief_db
node_public_pages -->|"presents"| node_shelter_discovery
node_public_pages -->|"presents"| node_global_search
node_public_pages -->|"presents"| node_donation_flow
node_public_pages -->|"presents"| node_volunteer_flow
node_public_pages -->|"presents"| node_help_request
node_public_pages -->|"presents"| node_shelter_map
node_public_pages -->|"presents"| node_weather_alerts
node_area_panel -->|"manages"| node_area_needs
node_super_panel -->|"manages"| node_oversight
node_shelter_map -.->|"map tiles"| node_openstreetmap
node_weather_alerts -.->|"fetches alerts"| node_noaa

click node_routing "https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/relief_app/urls.py"
click node_public_pages "https://github.com/tejas-upadhyay/hurricaneheroes/tree/main/templates/public"
click node_area_panel "https://github.com/tejas-upadhyay/hurricaneheroes/tree/main/templates/area_admin"
click node_super_panel "https://github.com/tejas-upadhyay/hurricaneheroes/tree/main/templates/super_admin"
click node_login_page "https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/templates/auth/login.html"
click node_views "https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/relief_app/views.py"
click node_domain_models "https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/relief_app/models.py"
click node_relief_db "https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/relief_system/settings.py"
click node_shelter_discovery "https://github.com/tejas-upadhyay/hurricaneheroes/tree/main/templates/public"
click node_global_search "https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/templates/public/search.html"
click node_donation_flow "https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/templates/public/donate.html"
click node_volunteer_flow "https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/templates/public/volunteer_signup.html"
click node_help_request "https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/templates/public/need_request.html"
click node_shelter_map "https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/templates/public/map.html"
click node_weather_alerts "https://github.com/tejas-upadhyay/hurricaneheroes/tree/main/templates/public"
click node_area_needs "https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/templates/area_admin/needs.html"
click node_oversight "https://github.com/tejas-upadhyay/hurricaneheroes/tree/main/templates/super_admin"

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_public_pages,node_shelter_discovery,node_global_search,node_donation_flow,node_volunteer_flow,node_help_request,node_shelter_map,node_weather_alerts,node_community toneBlue
class node_area_panel,node_area_needs toneAmber
class node_super_panel,node_oversight toneMint
class node_routing,node_login_page,node_views,node_domain_models toneRose
class node_relief_db,node_area_staff,node_platform_staff,node_noaa,node_openstreetmap toneIndigo
```

## Components

### Public coordination

- [Public pages](https://github.com/tejas-upadhyay/hurricaneheroes/tree/main/templates/public): `templates/public`
- [Shelter discovery](https://github.com/tejas-upadhyay/hurricaneheroes/tree/main/templates/public): `templates/public`
- [Global search](https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/templates/public/search.html): `templates/public/search.html`
- [Donation logging](https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/templates/public/donate.html): `templates/public/donate.html`
- [Volunteer signup](https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/templates/public/volunteer_signup.html): `templates/public/volunteer_signup.html`
- [Help requests](https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/templates/public/need_request.html): `templates/public/need_request.html`
- [Interactive map](https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/templates/public/map.html): `templates/public/map.html`
- [Weather alerts](https://github.com/tejas-upadhyay/hurricaneheroes/tree/main/templates/public): `templates/public`

### Area administration

- [Area admin panel](https://github.com/tejas-upadhyay/hurricaneheroes/tree/main/templates/area_admin): `templates/area_admin`
- [Local needs](https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/templates/area_admin/needs.html): `templates/area_admin/needs.html`

### Platform administration

- [Super admin panel](https://github.com/tejas-upadhyay/hurricaneheroes/tree/main/templates/super_admin): `templates/super_admin`
- [Admin oversight](https://github.com/tejas-upadhyay/hurricaneheroes/tree/main/templates/super_admin): `templates/super_admin`

### Application core

- [URL routing](https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/relief_app/urls.py): `relief_app/urls.py`
- [Login page](https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/templates/auth/login.html): `templates/auth/login.html`
- [Request handlers](https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/relief_app/views.py): `relief_app/views.py`
- [Relief records](https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/relief_app/models.py): `relief_app/models.py`

### Persistent state

- [Relief database](https://github.com/tejas-upadhyay/hurricaneheroes/blob/main/relief_system/settings.py): `relief_system/settings.py`

### Other components

- **Community user**
- **Area admin**
- **Super admin**
- **NOAA alerts**
- **OpenStreetMap**

## Connections

- Community user → URL routing: requests pages
- Area admin → URL routing: requests admin
- Super admin → URL routing: requests admin
- URL routing → Request handlers: dispatches
- Request handlers → Public pages: renders
- Request handlers → Area admin panel: renders
- Request handlers → Super admin panel: renders
- Request handlers → Login page: renders
- Request handlers → Relief records: queries and updates
- Relief records → Relief database: persists records
- Public pages → Shelter discovery: presents
- Public pages → Global search: presents
- Public pages → Donation logging: presents
- Public pages → Volunteer signup: presents
- Public pages → Help requests: presents
- Public pages → Interactive map: presents
- Public pages → Weather alerts: presents
- Area admin panel → Local needs: manages
- Super admin panel → Admin oversight: manages
- Interactive map → OpenStreetMap: map tiles
- Weather alerts → NOAA alerts: fetches alerts
