# diyap235/transitops-fleet-management architecture

> Architecture diagram of the GitHub repository diyap235/transitops-fleet-management, 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/diyap235/transitops-fleet-management
- Repository: https://github.com/diyap235/transitops-fleet-management

## Overview

TransitOps is a role-based fleet operations platform. Users sign in, then use the React app to manage vehicles, drivers, trips, maintenance, fuel logs and expenses; finance/reporting views expose operational costs and fuel statistics. The API authenticates protected routes and persists domain records in MongoDB. The README documents role-specific access and these major capabilities. Some frontend API wiring and several controllers were not sampled, so uncertain links are omitted; the trip and maintenance status effects shown are supported by sampled controllers.

Main entry points: [`backend/server.js`](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/server.js) (Express API server), [`frontend/src/App.jsx`](https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/App.jsx) (App routes), [`backend/controllers/expense.controller.js`](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/controllers/expense.controller.js) (Expense and fuel handlers), [`backend/middleware/auth.middleware.js`](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/middleware/auth.middleware.js) (JWT access control)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["React application"]
  node_app["App routes<br/>[App.jsx]"]
  node_auth_ui["Auth context<br/>[AuthContext.jsx]"]
  node_fleet_pages["Fleet pages<br/>[Vehicles.jsx]"]
  node_trip_page["Trip page<br/>[Trips.jsx]"]
  node_maint_page["Maintenance page<br/>[Maintenance.jsx]"]
  node_finance_pages["Finance pages<br/>[FuelExpenses.jsx]"]
  node_reports_page["Reports page<br/>[Reports.jsx]"]
  node_auth_api["Auth API client<br/>[auth.api.js]"]
  node_fleet_api["Fleet API clients<br/>[vehicles.api.js]"]
  node_trip_api["Trip API client<br/>[trips.api.js]"]
  node_maint_api["Maintenance API client<br/>[maintenance.api.js]"]
  node_finance_api["Finance API clients"]
  node_reports_api["Reports API client<br/>[reports.api.js]"]
end

subgraph group_api["API and access"]
  node_server["Express API server<br/>[server.js]"]
  node_auth_routes["Auth routes<br/>[auth.routes.js]"]
  node_auth_controller["Auth handlers<br/>[auth.controller.js]"]
  node_auth_middleware["JWT access control<br/>[auth.middleware.js]"]
end

subgraph group_operations["Fleet operations"]
  node_fleet_routes["Fleet routes<br/>[vehicle.routes.js]"]
  node_fleet_handlers["Vehicle and driver handlers"]
  node_trip_routes["Trip routes<br/>[trip.routes.js]"]
  node_trip_handler["Trip handler<br/>[trip.controller.js]"]
  node_maintenance_routes["Maintenance routes"]
  node_maintenance_handler["Maintenance handler"]
end

subgraph group_finance["Finance and reporting"]
  node_finance_routes["Finance routes<br/>[expense.routes.js]"]
  node_finance_handlers["Expense and fuel handlers"]
  node_fuel_handler["Fuel-log handler"]
end

subgraph group_storage["Persistence"]
  node_vehicle_model[("Vehicle records<br/>[Vehicle.js]")]
  node_driver_model[("Driver records<br/>[Driver.js]")]
  node_trip_model[("Trip records<br/>[Trip.js]")]
  node_maintenance_model[("Maintenance records<br/>[Maintenance.js]")]
  node_expense_model[("Expense records<br/>[Expense.js]")]
  node_fuel_model[("Fuel-log records<br/>[FuelLog.js]")]
  node_user_model[("User records<br/>[User.js]")]
end

node_user(("Fleet user"))

node_user -->|"uses"| node_app
node_app -->|"checks session"| node_auth_ui
node_app -->|"routes"| node_fleet_pages
node_app -->|"routes"| node_trip_page
node_app -->|"routes"| node_maint_page
node_app -->|"routes"| node_finance_pages
node_app -->|"routes"| node_reports_page
node_auth_ui -->|"requests auth"| node_auth_api
node_fleet_pages -->|"requests fleet"| node_fleet_api
node_trip_page -->|"requests trips"| node_trip_api
node_maint_page -->|"requests records"| node_maint_api
node_finance_pages -->|"requests finance"| node_finance_api
node_reports_page -->|"requests reports"| node_reports_api
node_auth_api -->|"sends requests"| node_server
node_fleet_api -->|"sends requests"| node_server
node_trip_api -->|"sends requests"| node_server
node_maint_api -->|"sends requests"| node_server
node_finance_api -->|"sends requests"| node_server
node_reports_api -->|"sends requests"| node_server
node_server -->|"mounts routes"| node_auth_routes
node_server -->|"mounts routes"| node_fleet_routes
node_server -->|"mounts routes"| node_trip_routes
node_server -->|"mounts routes"| node_maintenance_routes
node_server -->|"mounts routes"| node_finance_routes
node_auth_routes -->|"dispatches"| node_auth_controller
node_fleet_routes -->|"dispatches"| node_fleet_handlers
node_trip_routes -->|"dispatches"| node_trip_handler
node_maintenance_routes -->|"dispatches"| node_maintenance_handler
node_finance_routes -->|"dispatches"| node_finance_handlers
node_finance_routes -->|"dispatches"| node_fuel_handler
node_auth_routes -->|"protects routes"| node_auth_middleware
node_fleet_routes -->|"protects routes"| node_auth_middleware
node_trip_routes -->|"protects routes"| node_auth_middleware
node_maintenance_routes -->|"protects routes"| node_auth_middleware
node_finance_routes -->|"protects routes"| node_auth_middleware
node_auth_controller -->|"reads/writes users"| node_user_model
node_fleet_handlers -->|"reads/writes vehicles"| node_vehicle_model
node_fleet_handlers -.->|"manages drivers"| node_driver_model
node_trip_handler -->|"reads/writes trips"| node_trip_model
node_trip_handler -->|"checks/updates status"| node_vehicle_model
node_trip_handler -->|"checks/updates status"| node_driver_model
node_maintenance_handler -->|"reads/writes records"| node_maintenance_model
node_maintenance_handler -->|"updates status"| node_vehicle_model
node_finance_handlers -->|"reads/writes expenses"| node_expense_model
node_finance_handlers -->|"aggregates fuel costs"| node_fuel_model
node_finance_handlers -->|"aggregates costs"| node_maintenance_model
node_finance_handlers -->|"checks vehicle"| node_vehicle_model
node_fuel_handler -->|"reads/writes fuel logs"| node_fuel_model

click node_app "https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/App.jsx"
click node_auth_ui "https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/context/AuthContext.jsx"
click node_fleet_pages "https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/pages/Vehicles.jsx"
click node_trip_page "https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/pages/Trips.jsx"
click node_maint_page "https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/pages/Maintenance.jsx"
click node_finance_pages "https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/pages/FuelExpenses.jsx"
click node_reports_page "https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/pages/Reports.jsx"
click node_auth_api "https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/api/auth.api.js"
click node_fleet_api "https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/api/vehicles.api.js"
click node_trip_api "https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/api/trips.api.js"
click node_maint_api "https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/api/maintenance.api.js"
click node_finance_api "https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/api/fuelExpenses.api.js"
click node_reports_api "https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/api/reports.api.js"
click node_server "https://github.com/diyap235/transitops-fleet-management/blob/main/backend/server.js"
click node_auth_routes "https://github.com/diyap235/transitops-fleet-management/blob/main/backend/routes/auth.routes.js"
click node_auth_controller "https://github.com/diyap235/transitops-fleet-management/blob/main/backend/controllers/auth.controller.js"
click node_auth_middleware "https://github.com/diyap235/transitops-fleet-management/blob/main/backend/middleware/auth.middleware.js"
click node_fleet_routes "https://github.com/diyap235/transitops-fleet-management/blob/main/backend/routes/vehicle.routes.js"
click node_fleet_handlers "https://github.com/diyap235/transitops-fleet-management/blob/main/backend/controllers/vehicle.controller.js"
click node_trip_routes "https://github.com/diyap235/transitops-fleet-management/blob/main/backend/routes/trip.routes.js"
click node_trip_handler "https://github.com/diyap235/transitops-fleet-management/blob/main/backend/controllers/trip.controller.js"
click node_maintenance_routes "https://github.com/diyap235/transitops-fleet-management/blob/main/backend/routes/maintenance.routes.js"
click node_maintenance_handler "https://github.com/diyap235/transitops-fleet-management/blob/main/backend/controllers/maintenance.controller.js"
click node_finance_routes "https://github.com/diyap235/transitops-fleet-management/blob/main/backend/routes/expense.routes.js"
click node_finance_handlers "https://github.com/diyap235/transitops-fleet-management/blob/main/backend/controllers/expense.controller.js"
click node_fuel_handler "https://github.com/diyap235/transitops-fleet-management/blob/main/backend/controllers/fuelLog.controller.js"
click node_vehicle_model "https://github.com/diyap235/transitops-fleet-management/blob/main/backend/models/Vehicle.js"
click node_driver_model "https://github.com/diyap235/transitops-fleet-management/blob/main/backend/models/Driver.js"
click node_trip_model "https://github.com/diyap235/transitops-fleet-management/blob/main/backend/models/Trip.js"
click node_maintenance_model "https://github.com/diyap235/transitops-fleet-management/blob/main/backend/models/Maintenance.js"
click node_expense_model "https://github.com/diyap235/transitops-fleet-management/blob/main/backend/models/Expense.js"
click node_fuel_model "https://github.com/diyap235/transitops-fleet-management/blob/main/backend/models/FuelLog.js"
click node_user_model "https://github.com/diyap235/transitops-fleet-management/blob/main/backend/models/User.js"

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_auth_ui,node_fleet_pages,node_trip_page,node_maint_page,node_finance_pages,node_reports_page,node_auth_api,node_fleet_api,node_trip_api,node_maint_api,node_finance_api,node_reports_api,node_user toneBlue
class node_server,node_auth_routes,node_auth_controller,node_auth_middleware toneAmber
class node_fleet_routes,node_fleet_handlers,node_trip_routes,node_trip_handler,node_maintenance_routes,node_maintenance_handler toneMint
class node_finance_routes,node_finance_handlers,node_fuel_handler toneRose
class node_vehicle_model,node_driver_model,node_trip_model,node_maintenance_model,node_expense_model,node_fuel_model,node_user_model toneIndigo
```

## Components

### React application

- [App routes](https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Auth context](https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/context/AuthContext.jsx): `frontend/src/context/AuthContext.jsx`
- [Fleet pages](https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/pages/Vehicles.jsx): `frontend/src/pages/Vehicles.jsx`
- [Trip page](https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/pages/Trips.jsx): `frontend/src/pages/Trips.jsx`
- [Maintenance page](https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/pages/Maintenance.jsx): `frontend/src/pages/Maintenance.jsx`
- [Finance pages](https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/pages/FuelExpenses.jsx): `frontend/src/pages/FuelExpenses.jsx`
- [Reports page](https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/pages/Reports.jsx): `frontend/src/pages/Reports.jsx`
- [Auth API client](https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/api/auth.api.js): `frontend/src/api/auth.api.js`
- [Fleet API clients](https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/api/vehicles.api.js): `frontend/src/api/vehicles.api.js`
- [Trip API client](https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/api/trips.api.js): `frontend/src/api/trips.api.js`
- [Maintenance API client](https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/api/maintenance.api.js): `frontend/src/api/maintenance.api.js`
- [Finance API clients](https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/api/fuelExpenses.api.js): `frontend/src/api/fuelExpenses.api.js`
- [Reports API client](https://github.com/diyap235/transitops-fleet-management/blob/main/frontend/src/api/reports.api.js): `frontend/src/api/reports.api.js`

### API and access

- [Express API server](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/server.js): `backend/server.js`
- [Auth routes](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/routes/auth.routes.js): `backend/routes/auth.routes.js`
- [Auth handlers](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/controllers/auth.controller.js): `backend/controllers/auth.controller.js`
- [JWT access control](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/middleware/auth.middleware.js): `backend/middleware/auth.middleware.js`

### Fleet operations

- [Fleet routes](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/routes/vehicle.routes.js): `backend/routes/vehicle.routes.js`
- [Vehicle and driver handlers](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/controllers/vehicle.controller.js): `backend/controllers/vehicle.controller.js`
- [Trip routes](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/routes/trip.routes.js): `backend/routes/trip.routes.js`
- [Trip handler](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/controllers/trip.controller.js): `backend/controllers/trip.controller.js`
- [Maintenance routes](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/routes/maintenance.routes.js): `backend/routes/maintenance.routes.js`
- [Maintenance handler](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/controllers/maintenance.controller.js): `backend/controllers/maintenance.controller.js`

### Finance and reporting

- [Finance routes](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/routes/expense.routes.js): `backend/routes/expense.routes.js`
- [Expense and fuel handlers](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/controllers/expense.controller.js): `backend/controllers/expense.controller.js`
- [Fuel-log handler](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/controllers/fuelLog.controller.js): `backend/controllers/fuelLog.controller.js`

### Persistence

- [Vehicle records](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/models/Vehicle.js): `backend/models/Vehicle.js`
- [Driver records](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/models/Driver.js): `backend/models/Driver.js`
- [Trip records](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/models/Trip.js): `backend/models/Trip.js`
- [Maintenance records](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/models/Maintenance.js): `backend/models/Maintenance.js`
- [Expense records](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/models/Expense.js): `backend/models/Expense.js`
- [Fuel-log records](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/models/FuelLog.js): `backend/models/FuelLog.js`
- [User records](https://github.com/diyap235/transitops-fleet-management/blob/main/backend/models/User.js): `backend/models/User.js`

### Other components

- **Fleet user**

## Connections

- Fleet user → App routes: uses
- App routes → Auth context: checks session
- App routes → Fleet pages: routes
- App routes → Trip page: routes
- App routes → Maintenance page: routes
- App routes → Finance pages: routes
- App routes → Reports page: routes
- Auth context → Auth API client: requests auth
- Fleet pages → Fleet API clients: requests fleet
- Trip page → Trip API client: requests trips
- Maintenance page → Maintenance API client: requests records
- Finance pages → Finance API clients: requests finance
- Reports page → Reports API client: requests reports
- Auth API client → Express API server: sends requests
- Fleet API clients → Express API server: sends requests
- Trip API client → Express API server: sends requests
- Maintenance API client → Express API server: sends requests
- Finance API clients → Express API server: sends requests
- Reports API client → Express API server: sends requests
- Express API server → Auth routes: mounts routes
- Express API server → Fleet routes: mounts routes
- Express API server → Trip routes: mounts routes
- Express API server → Maintenance routes: mounts routes
- Express API server → Finance routes: mounts routes
- Auth routes → Auth handlers: dispatches
- Fleet routes → Vehicle and driver handlers: dispatches
- Trip routes → Trip handler: dispatches
- Maintenance routes → Maintenance handler: dispatches
- Finance routes → Expense and fuel handlers: dispatches
- Finance routes → Fuel-log handler: dispatches
- Auth routes → JWT access control: protects routes
- Fleet routes → JWT access control: protects routes
- Trip routes → JWT access control: protects routes
- Maintenance routes → JWT access control: protects routes
- Finance routes → JWT access control: protects routes
- Auth handlers → User records: reads/writes users
- Vehicle and driver handlers → Vehicle records: reads/writes vehicles
- Vehicle and driver handlers → Driver records: manages drivers
- Trip handler → Trip records: reads/writes trips
- Trip handler → Vehicle records: checks/updates status
- Trip handler → Driver records: checks/updates status
- Maintenance handler → Maintenance records: reads/writes records
- Maintenance handler → Vehicle records: updates status
- Expense and fuel handlers → Expense records: reads/writes expenses
- Expense and fuel handlers → Fuel-log records: aggregates fuel costs
- Expense and fuel handlers → Maintenance records: aggregates costs
- Expense and fuel handlers → Vehicle records: checks vehicle
- Fuel-log handler → Fuel-log records: reads/writes fuel logs
