# akporh/rick-command-center architecture

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

- Interactive diagram: https://gitdiagram.com/akporh/rick-command-center
- Repository: https://github.com/akporh/rick-command-center
- Video tour (about a minute): https://gitdiagram.com/akporh/rick-command-center/video

## Overview

RICK is a field-service dispatch simulation and control-tower UI. Users navigate the tower and specialist views, monitor simulated engineers, jobs, risks and recommendations, and control simulation speed and operating mode. The sampled store seeds and advances simulation state; the engineer panel reads that state and lets users select an engineer. The README is empty, and several feature implementations were not sampled, so their internal data wiring is omitted.

Main entry points: [`src/components/layout/AppShell.tsx`](https://github.com/akporh/rick-command-center/blob/main/src/components/layout/AppShell.tsx) (App shell), [`src/routes/index.tsx`](https://github.com/akporh/rick-command-center/blob/main/src/routes/index.tsx) (Control tower), [`src/components/tower/EngineerPanel.tsx`](https://github.com/akporh/rick-command-center/blob/main/src/components/tower/EngineerPanel.tsx) (Engineer panel), [`src/routes/engineers.tsx`](https://github.com/akporh/rick-command-center/blob/main/src/routes/engineers.tsx) (Engineer view)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Application experience"]
  node_shell["App shell<br/>[AppShell.tsx]"]
  node_tower["Control tower<br/>[index.tsx]"]
  node_engineers_route["Engineer view<br/>[engineers.tsx]"]
  node_jobs_route["Jobs view<br/>[jobs.tsx]"]
  node_map_route["Map view<br/>[map.tsx]"]
  node_optimiser_route["Optimiser view<br/>[optimiser.tsx]"]
  node_insights_route["Insights view<br/>[insights.tsx]"]
  node_simulation_route["Simulation view<br/>[simulation.tsx]"]
end

subgraph group_operations["Dispatch operations"]
  node_live_map["Live map<br/>[LiveMap.tsx]"]
  node_global_actions["Global actions<br/>[GlobalActions.tsx]"]
  node_optimiser_panel["Optimiser panel<br/>[OptimiserPanel.tsx]"]
  node_risk_panel["Job risk panel<br/>[JobRiskPanel.tsx]"]
  node_engineer_panel["Engineer panel<br/>[EngineerPanel.tsx]"]
  node_detail_drawer["Detail drawer<br/>[DetailDrawer.tsx]"]
  node_event_ticker["Event ticker<br/>[EventTicker.tsx]"]
end

subgraph group_simulation["Simulation state"]
  node_sim_store[("Simulation store<br/>[store.ts]")]
  node_seed["Seed data<br/>[seed.ts]"]
  node_sim_types["Simulation types<br/>[types.ts]"]
  node_sim_format["Display formatting<br/>[format.ts]"]
end

node_user(("Operator"))

node_user -->|"uses"| node_shell
node_shell -->|"navigates"| node_tower
node_shell -->|"navigates"| node_engineers_route
node_shell -->|"navigates"| node_jobs_route
node_shell -->|"navigates"| node_map_route
node_shell -->|"navigates"| node_optimiser_route
node_shell -->|"navigates"| node_insights_route
node_shell -->|"navigates"| node_simulation_route
node_tower -->|"renders"| node_live_map
node_tower -->|"renders"| node_global_actions
node_tower -->|"renders"| node_optimiser_panel
node_tower -->|"renders"| node_risk_panel
node_tower -->|"renders"| node_engineer_panel
node_tower -->|"renders"| node_detail_drawer
node_tower -->|"renders"| node_event_ticker
node_engineers_route -->|"renders"| node_engineer_panel
node_engineers_route -->|"renders"| node_detail_drawer
node_shell -->|"reads and controls"| node_sim_store
node_engineer_panel -->|"reads and updates selection"| node_sim_store
node_engineer_panel -->|"formats statuses"| node_sim_format
node_sim_store -->|"seeds state"| node_seed

click node_shell "https://github.com/akporh/rick-command-center/blob/main/src/components/layout/AppShell.tsx"
click node_tower "https://github.com/akporh/rick-command-center/blob/main/src/routes/index.tsx"
click node_engineers_route "https://github.com/akporh/rick-command-center/blob/main/src/routes/engineers.tsx"
click node_jobs_route "https://github.com/akporh/rick-command-center/blob/main/src/routes/jobs.tsx"
click node_map_route "https://github.com/akporh/rick-command-center/blob/main/src/routes/map.tsx"
click node_optimiser_route "https://github.com/akporh/rick-command-center/blob/main/src/routes/optimiser.tsx"
click node_insights_route "https://github.com/akporh/rick-command-center/blob/main/src/routes/insights.tsx"
click node_simulation_route "https://github.com/akporh/rick-command-center/blob/main/src/routes/simulation.tsx"
click node_live_map "https://github.com/akporh/rick-command-center/blob/main/src/components/tower/LiveMap.tsx"
click node_global_actions "https://github.com/akporh/rick-command-center/blob/main/src/components/tower/GlobalActions.tsx"
click node_optimiser_panel "https://github.com/akporh/rick-command-center/blob/main/src/components/tower/OptimiserPanel.tsx"
click node_risk_panel "https://github.com/akporh/rick-command-center/blob/main/src/components/tower/JobRiskPanel.tsx"
click node_engineer_panel "https://github.com/akporh/rick-command-center/blob/main/src/components/tower/EngineerPanel.tsx"
click node_detail_drawer "https://github.com/akporh/rick-command-center/blob/main/src/components/tower/DetailDrawer.tsx"
click node_event_ticker "https://github.com/akporh/rick-command-center/blob/main/src/components/tower/EventTicker.tsx"
click node_sim_store "https://github.com/akporh/rick-command-center/blob/main/src/lib/simulation/store.ts"
click node_seed "https://github.com/akporh/rick-command-center/blob/main/src/lib/simulation/seed.ts"
click node_sim_types "https://github.com/akporh/rick-command-center/blob/main/src/lib/simulation/types.ts"
click node_sim_format "https://github.com/akporh/rick-command-center/blob/main/src/lib/simulation/format.ts"

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_shell,node_tower,node_engineers_route,node_jobs_route,node_map_route,node_optimiser_route,node_insights_route,node_simulation_route toneBlue
class node_live_map,node_global_actions,node_optimiser_panel,node_risk_panel,node_engineer_panel,node_detail_drawer,node_event_ticker toneAmber
class node_sim_store,node_seed,node_sim_types,node_sim_format toneMint
class node_user toneIndigo
```

## Components

### Application experience

- [App shell](https://github.com/akporh/rick-command-center/blob/main/src/components/layout/AppShell.tsx): `src/components/layout/AppShell.tsx`
- [Control tower](https://github.com/akporh/rick-command-center/blob/main/src/routes/index.tsx): `src/routes/index.tsx`
- [Engineer view](https://github.com/akporh/rick-command-center/blob/main/src/routes/engineers.tsx): `src/routes/engineers.tsx`
- [Jobs view](https://github.com/akporh/rick-command-center/blob/main/src/routes/jobs.tsx): `src/routes/jobs.tsx`
- [Map view](https://github.com/akporh/rick-command-center/blob/main/src/routes/map.tsx): `src/routes/map.tsx`
- [Optimiser view](https://github.com/akporh/rick-command-center/blob/main/src/routes/optimiser.tsx): `src/routes/optimiser.tsx`
- [Insights view](https://github.com/akporh/rick-command-center/blob/main/src/routes/insights.tsx): `src/routes/insights.tsx`
- [Simulation view](https://github.com/akporh/rick-command-center/blob/main/src/routes/simulation.tsx): `src/routes/simulation.tsx`

### Dispatch operations

- [Live map](https://github.com/akporh/rick-command-center/blob/main/src/components/tower/LiveMap.tsx): `src/components/tower/LiveMap.tsx`
- [Global actions](https://github.com/akporh/rick-command-center/blob/main/src/components/tower/GlobalActions.tsx): `src/components/tower/GlobalActions.tsx`
- [Optimiser panel](https://github.com/akporh/rick-command-center/blob/main/src/components/tower/OptimiserPanel.tsx): `src/components/tower/OptimiserPanel.tsx`
- [Job risk panel](https://github.com/akporh/rick-command-center/blob/main/src/components/tower/JobRiskPanel.tsx): `src/components/tower/JobRiskPanel.tsx`
- [Engineer panel](https://github.com/akporh/rick-command-center/blob/main/src/components/tower/EngineerPanel.tsx): `src/components/tower/EngineerPanel.tsx`
- [Detail drawer](https://github.com/akporh/rick-command-center/blob/main/src/components/tower/DetailDrawer.tsx): `src/components/tower/DetailDrawer.tsx`
- [Event ticker](https://github.com/akporh/rick-command-center/blob/main/src/components/tower/EventTicker.tsx): `src/components/tower/EventTicker.tsx`

### Simulation state

- [Simulation store](https://github.com/akporh/rick-command-center/blob/main/src/lib/simulation/store.ts): `src/lib/simulation/store.ts`
- [Seed data](https://github.com/akporh/rick-command-center/blob/main/src/lib/simulation/seed.ts): `src/lib/simulation/seed.ts`
- [Simulation types](https://github.com/akporh/rick-command-center/blob/main/src/lib/simulation/types.ts): `src/lib/simulation/types.ts`
- [Display formatting](https://github.com/akporh/rick-command-center/blob/main/src/lib/simulation/format.ts): `src/lib/simulation/format.ts`

### Other components

- **Operator**

## Connections

- Operator → App shell: uses
- App shell → Control tower: navigates
- App shell → Engineer view: navigates
- App shell → Jobs view: navigates
- App shell → Map view: navigates
- App shell → Optimiser view: navigates
- App shell → Insights view: navigates
- App shell → Simulation view: navigates
- Control tower → Live map: renders
- Control tower → Global actions: renders
- Control tower → Optimiser panel: renders
- Control tower → Job risk panel: renders
- Control tower → Engineer panel: renders
- Control tower → Detail drawer: renders
- Control tower → Event ticker: renders
- Engineer view → Engineer panel: renders
- Engineer view → Detail drawer: renders
- App shell → Simulation store: reads and controls
- Engineer panel → Simulation store: reads and updates selection
- Engineer panel → Display formatting: formats statuses
- Simulation store → Seed data: seeds state
