# deiahri/hh-cstb architecture

> Architecture diagram of the GitHub repository deiahri/hh-cstb, 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/deiahri/hh-cstb
- Repository: https://github.com/deiahri/hh-cstb

## Overview

Closed-School Walk Check is a static, bilingual family tool and staff planning prototype. Its main workflow turns a family’s address into school-walk hazards and crossing options, then presents guidance and printable/shareable requests. Separate staff views cover shuttle pickups, corridors, and draft school-zone applications. The graph reflects documented capabilities and sampled wiring; several page implementations and data-generation details were not sampled, so uncertain calls are omitted.

Main entry points: [`src/App.tsx`](https://github.com/deiahri/hh-cstb/blob/master/src/App.tsx) (App router), [`src/pages/Packet.tsx`](https://github.com/deiahri/hh-cstb/blob/master/src/pages/Packet.tsx) (Family packet), [`src/lib/data.ts`](https://github.com/deiahri/hh-cstb/blob/master/src/lib/data.ts) (Snapshot loader), [`src/lib/analyze.ts`](https://github.com/deiahri/hh-cstb/blob/master/src/lib/analyze.ts) (Walk analysis)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_family["Family Walk Check"]
  node_home["Address start<br/>[Home.tsx]"]
  node_prek_walk["Pre-K and walk<br/>[Walk.tsx]"]
  node_ask["Help and requests<br/>[Ask.tsx]"]
  node_packet["Family packet<br/>[Packet.tsx]"]
  node_walk_plan["Print walk plan<br/>[Plan.tsx]"]
  node_crossing_view["Crossing guidance<br/>[CrossingPlan.tsx]"]
  node_walkcheck_ui["Walk and share UI<br/>[WalkCheck.tsx]"]
end

subgraph group_planning["Staff Planning"]
  node_overview["Pickup overview<br/>[Overview.tsx]"]
  node_corridors["Corridor rankings<br/>[Corridors.tsx]"]
  node_april15["Zone applications<br/>[April15.tsx]"]
end

subgraph group_runtime["Shared Runtime"]
  node_app["App router<br/>[App.tsx]"]
  node_geocode["Address geocoding<br/>[geocode.ts]"]
  node_analysis["Walk analysis<br/>[analyze.ts]"]
  node_crossings["Crossing lookup<br/>[crossings.ts]"]
  node_walk_logic["Walk utilities<br/>[walk.ts]"]
  node_pickup_logic["Pickup utilities<br/>[pickups.ts]"]
  node_data_loader["Snapshot loader<br/>[data.ts]"]
  node_translations["English / Spanish<br/>[i18n.ts]"]
end

subgraph group_snapshot["Public Data"]
  node_snapshot["Precomputed layers"]
end

node_family_user(("Family"))
node_staff_user(("HISD / City staff"))
node_geocoding_service["Geocoding service"]

node_family_user -->|"enters address"| node_home
node_app -->|"routes"| node_home
node_app -->|"routes"| node_prek_walk
node_app -->|"routes"| node_ask
node_app -->|"routes"| node_packet
node_app -->|"routes"| node_walk_plan
node_app -->|"routes"| node_overview
node_app -->|"routes"| node_corridors
node_app -->|"routes"| node_april15
node_app -->|"loads data"| node_data_loader
node_app -->|"sets language"| node_translations
node_home -->|"resolves address"| node_geocode
node_geocode -.->|"geocodes"| node_geocoding_service
node_prek_walk -->|"analyzes address"| node_analysis
node_analysis -->|"plans crossings"| node_crossings
node_crossing_view -->|"uses crossing plan"| node_crossings
node_packet -->|"analyzes address"| node_analysis
node_packet -->|"reverse geocodes"| node_geocode
node_packet -->|"builds shuttle walk"| node_walk_logic
node_packet -->|"presents crossings"| node_crossing_view
node_walk_plan -->|"builds walk plan"| node_analysis
node_prek_walk -->|"renders screens"| node_walkcheck_ui
node_overview -->|"uses pickup data"| node_pickup_logic
node_staff_user -->|"reviews pickups"| node_overview
node_staff_user -->|"reviews corridors"| node_corridors
node_staff_user -->|"reviews applications"| node_april15
node_data_loader -->|"fetches snapshot"| node_snapshot
node_data_loader -->|"builds dataset"| node_analysis
node_april15 -->|"reads zone requests"| node_data_loader
node_corridors -->|"reads corridor data"| node_data_loader
node_packet -->|"reads app data"| node_data_loader
node_ask -->|"uses copy"| node_translations
node_walkcheck_ui -->|"uses copy"| node_translations

click node_app "https://github.com/deiahri/hh-cstb/blob/master/src/App.tsx"
click node_home "https://github.com/deiahri/hh-cstb/blob/master/src/pages/Home.tsx"
click node_prek_walk "https://github.com/deiahri/hh-cstb/blob/master/src/pages/Walk.tsx"
click node_ask "https://github.com/deiahri/hh-cstb/blob/master/src/pages/Ask.tsx"
click node_packet "https://github.com/deiahri/hh-cstb/blob/master/src/pages/Packet.tsx"
click node_walk_plan "https://github.com/deiahri/hh-cstb/blob/master/src/pages/Plan.tsx"
click node_crossing_view "https://github.com/deiahri/hh-cstb/blob/master/src/components/CrossingPlan.tsx"
click node_walkcheck_ui "https://github.com/deiahri/hh-cstb/blob/master/src/components/WalkCheck.tsx"
click node_overview "https://github.com/deiahri/hh-cstb/blob/master/src/pages/Overview.tsx"
click node_corridors "https://github.com/deiahri/hh-cstb/blob/master/src/pages/Corridors.tsx"
click node_april15 "https://github.com/deiahri/hh-cstb/blob/master/src/pages/April15.tsx"
click node_geocode "https://github.com/deiahri/hh-cstb/blob/master/src/lib/geocode.ts"
click node_analysis "https://github.com/deiahri/hh-cstb/blob/master/src/lib/analyze.ts"
click node_crossings "https://github.com/deiahri/hh-cstb/blob/master/src/lib/crossings.ts"
click node_walk_logic "https://github.com/deiahri/hh-cstb/blob/master/src/lib/walk.ts"
click node_pickup_logic "https://github.com/deiahri/hh-cstb/blob/master/src/lib/pickups.ts"
click node_data_loader "https://github.com/deiahri/hh-cstb/blob/master/src/lib/data.ts"
click node_translations "https://github.com/deiahri/hh-cstb/blob/master/src/lib/i18n.ts"
click node_snapshot "https://github.com/deiahri/hh-cstb/tree/master/public/data"

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_home,node_prek_walk,node_ask,node_packet,node_walk_plan,node_crossing_view,node_walkcheck_ui toneBlue
class node_overview,node_corridors,node_april15 toneAmber
class node_app,node_geocode,node_analysis,node_crossings,node_walk_logic,node_pickup_logic,node_data_loader,node_translations toneMint
class node_snapshot toneRose
class node_family_user,node_staff_user,node_geocoding_service toneIndigo
```

## Components

### Family Walk Check

- [Address start](https://github.com/deiahri/hh-cstb/blob/master/src/pages/Home.tsx): `src/pages/Home.tsx`
- [Pre-K and walk](https://github.com/deiahri/hh-cstb/blob/master/src/pages/Walk.tsx): `src/pages/Walk.tsx`
- [Help and requests](https://github.com/deiahri/hh-cstb/blob/master/src/pages/Ask.tsx): `src/pages/Ask.tsx`
- [Family packet](https://github.com/deiahri/hh-cstb/blob/master/src/pages/Packet.tsx): `src/pages/Packet.tsx`
- [Print walk plan](https://github.com/deiahri/hh-cstb/blob/master/src/pages/Plan.tsx): `src/pages/Plan.tsx`
- [Crossing guidance](https://github.com/deiahri/hh-cstb/blob/master/src/components/CrossingPlan.tsx): `src/components/CrossingPlan.tsx`
- [Walk and share UI](https://github.com/deiahri/hh-cstb/blob/master/src/components/WalkCheck.tsx): `src/components/WalkCheck.tsx`

### Staff Planning

- [Pickup overview](https://github.com/deiahri/hh-cstb/blob/master/src/pages/Overview.tsx): `src/pages/Overview.tsx`
- [Corridor rankings](https://github.com/deiahri/hh-cstb/blob/master/src/pages/Corridors.tsx): `src/pages/Corridors.tsx`
- [Zone applications](https://github.com/deiahri/hh-cstb/blob/master/src/pages/April15.tsx): `src/pages/April15.tsx`

### Shared Runtime

- [App router](https://github.com/deiahri/hh-cstb/blob/master/src/App.tsx): `src/App.tsx`
- [Address geocoding](https://github.com/deiahri/hh-cstb/blob/master/src/lib/geocode.ts): `src/lib/geocode.ts`
- [Walk analysis](https://github.com/deiahri/hh-cstb/blob/master/src/lib/analyze.ts): `src/lib/analyze.ts`
- [Crossing lookup](https://github.com/deiahri/hh-cstb/blob/master/src/lib/crossings.ts): `src/lib/crossings.ts`
- [Walk utilities](https://github.com/deiahri/hh-cstb/blob/master/src/lib/walk.ts): `src/lib/walk.ts`
- [Pickup utilities](https://github.com/deiahri/hh-cstb/blob/master/src/lib/pickups.ts): `src/lib/pickups.ts`
- [Snapshot loader](https://github.com/deiahri/hh-cstb/blob/master/src/lib/data.ts): `src/lib/data.ts`
- [English / Spanish](https://github.com/deiahri/hh-cstb/blob/master/src/lib/i18n.ts): `src/lib/i18n.ts`

### Public Data

- [Precomputed layers](https://github.com/deiahri/hh-cstb/tree/master/public/data): `public/data`

### Other components

- **Family**
- **HISD / City staff**
- **Geocoding service**

## Connections

- Family → Address start: enters address
- App router → Address start: routes
- App router → Pre-K and walk: routes
- App router → Help and requests: routes
- App router → Family packet: routes
- App router → Print walk plan: routes
- App router → Pickup overview: routes
- App router → Corridor rankings: routes
- App router → Zone applications: routes
- App router → Snapshot loader: loads data
- App router → English / Spanish: sets language
- Address start → Address geocoding: resolves address
- Address geocoding → Geocoding service: geocodes
- Pre-K and walk → Walk analysis: analyzes address
- Walk analysis → Crossing lookup: plans crossings
- Crossing guidance → Crossing lookup: uses crossing plan
- Family packet → Walk analysis: analyzes address
- Family packet → Address geocoding: reverse geocodes
- Family packet → Walk utilities: builds shuttle walk
- Family packet → Crossing guidance: presents crossings
- Print walk plan → Walk analysis: builds walk plan
- Pre-K and walk → Walk and share UI: renders screens
- Pickup overview → Pickup utilities: uses pickup data
- HISD / City staff → Pickup overview: reviews pickups
- HISD / City staff → Corridor rankings: reviews corridors
- HISD / City staff → Zone applications: reviews applications
- Snapshot loader → Precomputed layers: fetches snapshot
- Snapshot loader → Walk analysis: builds dataset
- Zone applications → Snapshot loader: reads zone requests
- Corridor rankings → Snapshot loader: reads corridor data
- Family packet → Snapshot loader: reads app data
- Help and requests → English / Spanish: uses copy
- Walk and share UI → English / Spanish: uses copy
