# prince29chouhan/optigo architecture

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

## Overview

OptiGo is a fleet-planning platform: planners enter orders, stops, vehicles, and objectives; the API produces costed routes for review, resequencing, and saving. Separate operational areas cover fleet and depot records, reporting, emissions, tracking, and settings. Route costs combine a pickup-and-delivery optimizer with optional GNN road-cost estimates. The README documents these capabilities; sampled source confirms app registration, frontend API calls, and GNN serving behavior, but not every backend endpoint’s internal wiring.

Main entry points: [`Frontend/route-optimizer/src/lib/api.js`](https://github.com/prince29chouhan/optigo/blob/main/Frontend/route-optimizer/src/lib/api.js) (API client), [`Flask_API/app.py`](https://github.com/prince29chouhan/optigo/blob/main/Flask_API/app.py) (Flask app), [`Flask_API/api_planning.py`](https://github.com/prince29chouhan/optigo/blob/main/Flask_API/api_planning.py) (Planning API), [`Frontend/route-optimizer/src/components/PlanBuilder.jsx`](https://github.com/prince29chouhan/optigo/blob/main/Frontend/route-optimizer/src/components/PlanBuilder.jsx) (Planner interface)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Web application"]
  node_planner["Planner interface<br/>[PlanBuilder.jsx]"]
  node_planner_page["Planning results<br/>[RoutePlanner.jsx]"]
  node_operations_ui["Operations pages"]
  node_auth_ui["Authentication state<br/>[AuthContext.jsx]"]
  node_settings_ui["Settings state"]
  node_api_client["API client<br/>[api.js]"]
end

subgraph group_api["API and operations"]
  node_app["Flask app<br/>[app.py]"]
  node_auth_api["Accounts API<br/>[api_auth.py]"]
  node_planning_api["Planning API<br/>[api_planning.py]"]
  node_orders_api["Orders API<br/>[api_orders.py]"]
  node_fleet_api["Fleet and locations<br/>[api_vehicles.py]"]
  node_reports_api["Reports API<br/>[api_reports.py]"]
  node_settings_api["Settings API<br/>[api_settings.py]"]
end

subgraph group_routing["Routing and ML"]
  node_vrp["Route optimizer<br/>[vrp.py]"]
  node_geo["Cost and geometry<br/>[geo.py]"]
  node_catalog["Location catalog<br/>[catalog.py]"]
  node_gnn_service["GNN inference<br/>[service.py]"]
  node_gnn_dataset["Graph dataset<br/>[dataset.py]"]
  node_gnn_model["Graph model<br/>[model.py]"]
end

subgraph group_platform["Platform services"]
  node_database[("Mongo access<br/>[db.py]")]
  node_security["Auth and keys<br/>[security.py]"]
end

node_planner_user(("Planner"))
node_mongodb[("MongoDB")]

node_planner_user -->|"enters plan"| node_planner
node_planner -->|"requests plan"| node_api_client
node_api_client -->|"HTTP requests"| node_app
node_app -->|"dispatches"| node_planning_api
node_app -->|"dispatches"| node_auth_api
node_app -->|"dispatches"| node_orders_api
node_app -->|"dispatches"| node_fleet_api
node_app -->|"dispatches"| node_reports_api
node_app -->|"dispatches"| node_settings_api
node_planning_api -->|"plans routes"| node_vrp
node_vrp -->|"costs legs"| node_geo
node_planning_api -.->|"requests alternatives"| node_gnn_service
node_gnn_dataset -->|"provides graph data"| node_gnn_model
node_gnn_service -->|"infers costs"| node_gnn_model
node_app -->|"creates indexes"| node_database
node_database -->|"connects"| node_mongodb
node_api_client -->|"auth requests"| node_auth_api
node_api_client -->|"order requests"| node_orders_api
node_api_client -->|"fleet requests"| node_fleet_api
node_api_client -->|"report requests"| node_reports_api
node_api_client -->|"settings requests"| node_settings_api
node_auth_api -->|"uses credentials"| node_security
node_planner_page -->|"hosts planner"| node_planner
node_planner_page -->|"resequence and save"| node_api_client
node_operations_ui -->|"loads operations data"| node_api_client
node_auth_ui -->|"handles unauthorized"| node_api_client
node_settings_ui -->|"loads and saves"| node_api_client

click node_planner "https://github.com/prince29chouhan/optigo/blob/main/Frontend/route-optimizer/src/components/PlanBuilder.jsx"
click node_planner_page "https://github.com/prince29chouhan/optigo/blob/main/Frontend/route-optimizer/src/pages/RoutePlanner.jsx"
click node_operations_ui "https://github.com/prince29chouhan/optigo/tree/main/Frontend/route-optimizer/src/pages"
click node_auth_ui "https://github.com/prince29chouhan/optigo/blob/main/Frontend/route-optimizer/src/context/AuthContext.jsx"
click node_settings_ui "https://github.com/prince29chouhan/optigo/blob/main/Frontend/route-optimizer/src/context/SettingsContext.jsx"
click node_api_client "https://github.com/prince29chouhan/optigo/blob/main/Frontend/route-optimizer/src/lib/api.js"
click node_app "https://github.com/prince29chouhan/optigo/blob/main/Flask_API/app.py"
click node_auth_api "https://github.com/prince29chouhan/optigo/blob/main/Flask_API/api_auth.py"
click node_planning_api "https://github.com/prince29chouhan/optigo/blob/main/Flask_API/api_planning.py"
click node_orders_api "https://github.com/prince29chouhan/optigo/blob/main/Flask_API/api_orders.py"
click node_fleet_api "https://github.com/prince29chouhan/optigo/blob/main/Flask_API/api_vehicles.py"
click node_reports_api "https://github.com/prince29chouhan/optigo/blob/main/Flask_API/api_reports.py"
click node_settings_api "https://github.com/prince29chouhan/optigo/blob/main/Flask_API/api_settings.py"
click node_vrp "https://github.com/prince29chouhan/optigo/blob/main/Flask_API/vrp.py"
click node_geo "https://github.com/prince29chouhan/optigo/blob/main/Flask_API/geo.py"
click node_catalog "https://github.com/prince29chouhan/optigo/blob/main/Flask_API/catalog.py"
click node_gnn_service "https://github.com/prince29chouhan/optigo/blob/main/Flask_API/gnn/service.py"
click node_gnn_dataset "https://github.com/prince29chouhan/optigo/blob/main/Flask_API/gnn/dataset.py"
click node_gnn_model "https://github.com/prince29chouhan/optigo/blob/main/Flask_API/gnn/model.py"
click node_database "https://github.com/prince29chouhan/optigo/blob/main/Flask_API/db.py"
click node_security "https://github.com/prince29chouhan/optigo/blob/main/Flask_API/security.py"

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_planner,node_planner_page,node_operations_ui,node_auth_ui,node_settings_ui,node_api_client toneBlue
class node_app,node_auth_api,node_planning_api,node_orders_api,node_fleet_api,node_reports_api,node_settings_api,node_mongodb toneAmber
class node_vrp,node_geo,node_catalog,node_gnn_service,node_gnn_dataset,node_gnn_model toneMint
class node_database,node_security toneRose
class node_planner_user toneIndigo
```

## Components

### Web application

- [Planner interface](https://github.com/prince29chouhan/optigo/blob/main/Frontend/route-optimizer/src/components/PlanBuilder.jsx): `Frontend/route-optimizer/src/components/PlanBuilder.jsx`
- [Planning results](https://github.com/prince29chouhan/optigo/blob/main/Frontend/route-optimizer/src/pages/RoutePlanner.jsx): `Frontend/route-optimizer/src/pages/RoutePlanner.jsx`
- [Operations pages](https://github.com/prince29chouhan/optigo/tree/main/Frontend/route-optimizer/src/pages): `Frontend/route-optimizer/src/pages`
- [Authentication state](https://github.com/prince29chouhan/optigo/blob/main/Frontend/route-optimizer/src/context/AuthContext.jsx): `Frontend/route-optimizer/src/context/AuthContext.jsx`
- [Settings state](https://github.com/prince29chouhan/optigo/blob/main/Frontend/route-optimizer/src/context/SettingsContext.jsx): `Frontend/route-optimizer/src/context/SettingsContext.jsx`
- [API client](https://github.com/prince29chouhan/optigo/blob/main/Frontend/route-optimizer/src/lib/api.js): `Frontend/route-optimizer/src/lib/api.js`

### API and operations

- [Flask app](https://github.com/prince29chouhan/optigo/blob/main/Flask_API/app.py): `Flask_API/app.py`
- [Accounts API](https://github.com/prince29chouhan/optigo/blob/main/Flask_API/api_auth.py): `Flask_API/api_auth.py`
- [Planning API](https://github.com/prince29chouhan/optigo/blob/main/Flask_API/api_planning.py): `Flask_API/api_planning.py`
- [Orders API](https://github.com/prince29chouhan/optigo/blob/main/Flask_API/api_orders.py): `Flask_API/api_orders.py`
- [Fleet and locations](https://github.com/prince29chouhan/optigo/blob/main/Flask_API/api_vehicles.py): `Flask_API/api_vehicles.py`
- [Reports API](https://github.com/prince29chouhan/optigo/blob/main/Flask_API/api_reports.py): `Flask_API/api_reports.py`
- [Settings API](https://github.com/prince29chouhan/optigo/blob/main/Flask_API/api_settings.py): `Flask_API/api_settings.py`

### Routing and ML

- [Route optimizer](https://github.com/prince29chouhan/optigo/blob/main/Flask_API/vrp.py): `Flask_API/vrp.py`
- [Cost and geometry](https://github.com/prince29chouhan/optigo/blob/main/Flask_API/geo.py): `Flask_API/geo.py`
- [Location catalog](https://github.com/prince29chouhan/optigo/blob/main/Flask_API/catalog.py): `Flask_API/catalog.py`
- [GNN inference](https://github.com/prince29chouhan/optigo/blob/main/Flask_API/gnn/service.py): `Flask_API/gnn/service.py`
- [Graph dataset](https://github.com/prince29chouhan/optigo/blob/main/Flask_API/gnn/dataset.py): `Flask_API/gnn/dataset.py`
- [Graph model](https://github.com/prince29chouhan/optigo/blob/main/Flask_API/gnn/model.py): `Flask_API/gnn/model.py`

### Platform services

- [Mongo access](https://github.com/prince29chouhan/optigo/blob/main/Flask_API/db.py): `Flask_API/db.py`
- [Auth and keys](https://github.com/prince29chouhan/optigo/blob/main/Flask_API/security.py): `Flask_API/security.py`

### Other components

- **Planner**
- **MongoDB**

## Connections

- Planner → Planner interface: enters plan
- Planner interface → API client: requests plan
- API client → Flask app: HTTP requests
- Flask app → Planning API: dispatches
- Flask app → Accounts API: dispatches
- Flask app → Orders API: dispatches
- Flask app → Fleet and locations: dispatches
- Flask app → Reports API: dispatches
- Flask app → Settings API: dispatches
- Planning API → Route optimizer: plans routes
- Route optimizer → Cost and geometry: costs legs
- Planning API → GNN inference: requests alternatives
- Graph dataset → Graph model: provides graph data
- GNN inference → Graph model: infers costs
- Flask app → Mongo access: creates indexes
- Mongo access → MongoDB: connects
- API client → Accounts API: auth requests
- API client → Orders API: order requests
- API client → Fleet and locations: fleet requests
- API client → Reports API: report requests
- API client → Settings API: settings requests
- Accounts API → Auth and keys: uses credentials
- Planning results → Planner interface: hosts planner
- Planning results → API client: resequence and save
- Operations pages → API client: loads operations data
- Authentication state → API client: handles unauthorized
- Settings state → API client: loads and saves
