# eloxbdeveloper/muevetecb-prueba architecture

> Architecture diagram of the GitHub repository eloxbdeveloper/muevetecb-prueba, 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/eloxbdeveloper/muevetecb-prueba
- Repository: https://github.com/eloxbdeveloper/muevetecb-prueba

## Overview

Muévete CB is an offline-first simulated mobility planner for Ciudad Bolívar. A traveler enters a destination, available time, and profile; the web app plans around transit routes and active community reports, then presents a recommendation and map. Travelers can submit or confirm reports, which affect later plans. A parallel simulated WhatsApp chat offers route search and reporting through the same planning and recommendation service. Data and source excerpts support these principal flows; unsampled feature wiring is omitted. Live LLM and online map tiles are optional integrations.

Main entry points: [`src/engine/router.ts`](https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/engine/router.ts) (Route planner), [`src/App.tsx`](https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/App.tsx) (Web app), [`src/context/ReportsContext.tsx`](https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/context/ReportsContext.tsx) (Report state), [`src/components/WhatsAppChat.tsx`](https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/components/WhatsAppChat.tsx) (WhatsApp chat)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Traveler experience"]
  node_app["Web app<br/>[App.tsx]"]
  node_chat["WhatsApp chat<br/>[WhatsAppChat.tsx]"]
  node_map["Route map<br/>[MapView.tsx]"]
end

subgraph group_planning["Route planning"]
  node_planner["Route planner<br/>[router.ts]"]
  node_networkdata["Transit datasets"]
  node_scenario["Demo scenario<br/>[scenario.json]"]
  node_validator["Data validation<br/>[validate.ts]"]
end

subgraph group_reports["Community reports"]
  node_reportscontext["Report state<br/>[ReportsContext.tsx]"]
  node_seedreports["Seed reports<br/>[reports.json]"]
  node_browserstore[("Browser storage")]
end

subgraph group_recommendations["Recommendations"]
  node_adviser["Shared advice<br/>[advise.ts]"]
  node_agent["Recommendation agent<br/>[agent.ts]"]
end

node_traveler(("Traveler"))
node_llmproxy["Optional LLM proxy"]
node_osm["OpenStreetMap tiles"]

node_traveler -->|"sets trip"| node_app
node_traveler -->|"sends choices"| node_chat
node_app -->|"reads and updates"| node_reportscontext
node_app -->|"plans trip"| node_planner
node_app -->|"requests advice"| node_agent
node_app -->|"shows route"| node_map
node_app -->|"loads defaults"| node_scenario
node_app -->|"checks data"| node_validator
node_chat -->|"adds report"| node_reportscontext
node_chat -->|"requests advice"| node_adviser
node_chat -->|"loads demo"| node_scenario
node_adviser -->|"plans trip"| node_planner
node_adviser -->|"gets recommendation"| node_agent
node_planner -->|"reads network"| node_networkdata
node_planner -->|"uses active reports"| node_reportscontext
node_planner -->|"uses trip context"| node_scenario
node_reportscontext -->|"loads defaults"| node_seedreports
node_reportscontext -->|"persists reports"| node_browserstore
node_agent -->|"uses route helpers"| node_planner
node_agent -.->|"requests generation"| node_llmproxy
node_map -->|"reads route data"| node_planner
node_map -.->|"loads tiles"| node_osm
node_validator -->|"checks references"| node_planner
node_validator -->|"checks reports"| node_seedreports

click node_app "https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/App.tsx"
click node_chat "https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/components/WhatsAppChat.tsx"
click node_map "https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/components/MapView.tsx"
click node_planner "https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/engine/router.ts"
click node_networkdata "https://github.com/eloxbdeveloper/muevetecb-prueba/tree/main/src/data"
click node_scenario "https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/data/scenario.json"
click node_reportscontext "https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/context/ReportsContext.tsx"
click node_seedreports "https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/data/reports.json"
click node_validator "https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/data/validate.ts"
click node_adviser "https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/advise.ts"
click node_agent "https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/agent/agent.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_app,node_chat,node_map toneBlue
class node_planner,node_networkdata,node_scenario,node_validator toneAmber
class node_reportscontext,node_seedreports,node_browserstore toneMint
class node_adviser,node_agent toneRose
class node_traveler,node_llmproxy,node_osm toneIndigo
```

## Components

### Traveler experience

- [Web app](https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/App.tsx): `src/App.tsx`
- [WhatsApp chat](https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/components/WhatsAppChat.tsx): `src/components/WhatsAppChat.tsx`
- [Route map](https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/components/MapView.tsx): `src/components/MapView.tsx`

### Route planning

- [Route planner](https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/engine/router.ts): `src/engine/router.ts`
- [Transit datasets](https://github.com/eloxbdeveloper/muevetecb-prueba/tree/main/src/data): `src/data`
- [Demo scenario](https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/data/scenario.json): `src/data/scenario.json`
- [Data validation](https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/data/validate.ts): `src/data/validate.ts`

### Community reports

- [Report state](https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/context/ReportsContext.tsx): `src/context/ReportsContext.tsx`
- [Seed reports](https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/data/reports.json): `src/data/reports.json`
- **Browser storage**

### Recommendations

- [Shared advice](https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/advise.ts): `src/advise.ts`
- [Recommendation agent](https://github.com/eloxbdeveloper/muevetecb-prueba/blob/main/src/agent/agent.ts): `src/agent/agent.ts`

### Other components

- **Traveler**
- **Optional LLM proxy**
- **OpenStreetMap tiles**

## Connections

- Traveler → Web app: sets trip
- Traveler → WhatsApp chat: sends choices
- Web app → Report state: reads and updates
- Web app → Route planner: plans trip
- Web app → Recommendation agent: requests advice
- Web app → Route map: shows route
- Web app → Demo scenario: loads defaults
- Web app → Data validation: checks data
- WhatsApp chat → Report state: adds report
- WhatsApp chat → Shared advice: requests advice
- WhatsApp chat → Demo scenario: loads demo
- Shared advice → Route planner: plans trip
- Shared advice → Recommendation agent: gets recommendation
- Route planner → Transit datasets: reads network
- Route planner → Report state: uses active reports
- Route planner → Demo scenario: uses trip context
- Report state → Seed reports: loads defaults
- Report state → Browser storage: persists reports
- Recommendation agent → Route planner: uses route helpers
- Recommendation agent → Optional LLM proxy: requests generation
- Route map → Route planner: reads route data
- Route map → OpenStreetMap tiles: loads tiles
- Data validation → Route planner: checks references
- Data validation → Seed reports: checks reports
