# itachi5747/microservices-based-fleet-safety-management-system architecture

> Architecture diagram of the GitHub repository itachi5747/microservices-based-fleet-safety-management-system, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/itachi5747/microservices-based-fleet-safety-management-system
- Repository: https://github.com/itachi5747/microservices-based-fleet-safety-management-system

## Overview

Fleet Safety Platform combines a role-based web dashboard with backend microservices for fleet operations, safety analytics, alerts, video processing, search, and live updates. The main workflow is an operator signing in, then using the dashboard to manage fleet records and review safety data through the gateway. Video uploads are queued for asynchronous analysis; search and real-time updates are separate capabilities. Edges reflect sampled controller behavior and README-documented service boundaries; several service internals and cross-service integrations were not sampled.

Main entry points: [`fleet-platform/gateway/src/index.js`](https://github.com/itachi5747/microservices-based-fleet-safety-management-system/blob/main/fleet-platform/gateway/src/index.js) (API gateway), [`fleet-platform/services/video/src/controllers/videoController.js`](https://github.com/itachi5747/microservices-based-fleet-safety-management-system/blob/main/fleet-platform/services/video/src/controllers/videoController.js) (Video service), [`fleet-platform/shared/index.js`](https://github.com/itachi5747/microservices-based-fleet-safety-management-system/blob/main/fleet-platform/shared/index.js) (Shared adapters), [`frontend/src/App.tsx`](https://github.com/itachi5747/microservices-based-fleet-safety-management-system/blob/main/frontend/src/App.tsx) (Dashboard app)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web dashboard"]
  node_frontend["Dashboard app<br/>[App.tsx]"]
  node_authui["Sign-in pages"]
  node_fleetui["Fleet pages"]
  node_dashui["Safety dashboard"]
  node_alertsui["Alerts page<br/>[AlertsPage.tsx]"]
  node_apiclient["API client<br/>[client.ts]"]
end

subgraph group_edge["API access"]
  node_gateway["API gateway<br/>[index.js]"]
end

subgraph group_fleet["Fleet services"]
  node_authsvc["Identity service"]
  node_fleetsvc["Fleet service"]
  node_videosvc["Video service<br/>[videoController.js]"]
  node_worker["Video analysis worker"]
end

subgraph group_safety["Safety insights"]
  node_analytics["Analytics service"]
  node_alertsvc["Alert service<br/>[alertController.js]"]
  node_searchsvc["Event search"]
  node_realtime["Realtime streaming"]
end

subgraph group_platform["Platform infrastructure"]
  node_shared["Shared adapters<br/>[index.js]"]
  node_postgres[("PostgreSQL")]
  node_objectstore[("MinIO object store")]
  node_queue["RabbitMQ"]
  node_timeseries[("InfluxDB")]
end

node_operator(("Fleet operator"))
node_browser(("Web browser"))

node_operator -->|"uses"| node_browser
node_browser -->|"loads"| node_frontend
node_frontend -->|"routes"| node_authui
node_frontend -->|"routes"| node_fleetui
node_frontend -->|"routes"| node_dashui
node_frontend -->|"routes"| node_alertsui
node_authui -->|"requests"| node_apiclient
node_fleetui -->|"requests"| node_apiclient
node_dashui -->|"requests"| node_apiclient
node_alertsui -->|"requests"| node_apiclient
node_apiclient -->|"HTTP requests"| node_gateway
node_gateway -->|"proxies"| node_authsvc
node_gateway -->|"proxies"| node_fleetsvc
node_gateway -->|"proxies"| node_videosvc
node_gateway -->|"proxies"| node_analytics
node_gateway -->|"proxies"| node_alertsvc
node_gateway -->|"proxies"| node_searchsvc
node_gateway -.->|"proxies"| node_realtime
node_authsvc -->|"uses"| node_shared
node_fleetsvc -->|"uses"| node_shared
node_videosvc -->|"uses"| node_shared
node_alertsvc -->|"uses"| node_shared
node_searchsvc -->|"uses"| node_shared
node_analytics -->|"uses"| node_shared
node_authsvc -->|"reads/writes"| node_postgres
node_fleetsvc -->|"reads/writes"| node_postgres
node_videosvc -->|"reads/writes"| node_postgres
node_alertsvc -->|"reads/writes"| node_postgres
node_searchsvc -->|"queries"| node_postgres
node_analytics -.->|"reads"| node_timeseries
node_videosvc -->|"stores media"| node_objectstore
node_videosvc -->|"publishes jobs"| node_queue
node_worker -->|"consumes jobs"| node_queue
node_worker -.->|"processes media"| node_objectstore
node_searchsvc -->|"signs clip URLs"| node_objectstore
node_videosvc -->|"signs media URLs"| node_objectstore
node_analytics -.->|"generates reports"| node_alertsvc
node_realtime -.->|"streams updates"| node_browser

click node_frontend "https://github.com/itachi5747/microservices-based-fleet-safety-management-system/blob/main/frontend/src/App.tsx"
click node_authui "https://github.com/itachi5747/microservices-based-fleet-safety-management-system/tree/main/frontend/src/pages/auth"
click node_fleetui "https://github.com/itachi5747/microservices-based-fleet-safety-management-system/tree/main/frontend/src/pages/fleet"
click node_dashui "https://github.com/itachi5747/microservices-based-fleet-safety-management-system/tree/main/frontend/src/pages/dashboard"
click node_alertsui "https://github.com/itachi5747/microservices-based-fleet-safety-management-system/blob/main/frontend/src/pages/alerts/AlertsPage.tsx"
click node_apiclient "https://github.com/itachi5747/microservices-based-fleet-safety-management-system/blob/main/frontend/src/lib/api/client.ts"
click node_gateway "https://github.com/itachi5747/microservices-based-fleet-safety-management-system/blob/main/fleet-platform/gateway/src/index.js"
click node_authsvc "https://github.com/itachi5747/microservices-based-fleet-safety-management-system/tree/main/fleet-platform/services/auth/src"
click node_fleetsvc "https://github.com/itachi5747/microservices-based-fleet-safety-management-system/tree/main/fleet-platform/services/fleet/src"
click node_videosvc "https://github.com/itachi5747/microservices-based-fleet-safety-management-system/blob/main/fleet-platform/services/video/src/controllers/videoController.js"
click node_worker "https://github.com/itachi5747/microservices-based-fleet-safety-management-system/tree/main/fleet-platform/services/video-worker/src"
click node_analytics "https://github.com/itachi5747/microservices-based-fleet-safety-management-system/tree/main/fleet-platform/services/analytics/src"
click node_alertsvc "https://github.com/itachi5747/microservices-based-fleet-safety-management-system/blob/main/fleet-platform/services/alert/src/controllers/alertController.js"
click node_searchsvc "https://github.com/itachi5747/microservices-based-fleet-safety-management-system/blob/main/fleet-platform/services/search/src/controllers/searchController.js"
click node_realtime "https://github.com/itachi5747/microservices-based-fleet-safety-management-system/tree/main/fleet-platform/services/realtime/src"
click node_shared "https://github.com/itachi5747/microservices-based-fleet-safety-management-system/blob/main/fleet-platform/shared/index.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_frontend,node_authui,node_fleetui,node_dashui,node_alertsui,node_apiclient,node_browser toneBlue
class node_gateway toneAmber
class node_authsvc,node_fleetsvc,node_videosvc,node_worker toneMint
class node_analytics,node_alertsvc,node_searchsvc,node_realtime toneRose
class node_shared,node_postgres,node_objectstore,node_queue,node_timeseries,node_operator toneIndigo
```

## Components

### Web dashboard

- [Dashboard app](https://github.com/itachi5747/microservices-based-fleet-safety-management-system/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [Sign-in pages](https://github.com/itachi5747/microservices-based-fleet-safety-management-system/tree/main/frontend/src/pages/auth): `frontend/src/pages/auth`
- [Fleet pages](https://github.com/itachi5747/microservices-based-fleet-safety-management-system/tree/main/frontend/src/pages/fleet): `frontend/src/pages/fleet`
- [Safety dashboard](https://github.com/itachi5747/microservices-based-fleet-safety-management-system/tree/main/frontend/src/pages/dashboard): `frontend/src/pages/dashboard`
- [Alerts page](https://github.com/itachi5747/microservices-based-fleet-safety-management-system/blob/main/frontend/src/pages/alerts/AlertsPage.tsx): `frontend/src/pages/alerts/AlertsPage.tsx`
- [API client](https://github.com/itachi5747/microservices-based-fleet-safety-management-system/blob/main/frontend/src/lib/api/client.ts): `frontend/src/lib/api/client.ts`

### API access

- [API gateway](https://github.com/itachi5747/microservices-based-fleet-safety-management-system/blob/main/fleet-platform/gateway/src/index.js): `fleet-platform/gateway/src/index.js`

### Fleet services

- [Identity service](https://github.com/itachi5747/microservices-based-fleet-safety-management-system/tree/main/fleet-platform/services/auth/src): `fleet-platform/services/auth/src`
- [Fleet service](https://github.com/itachi5747/microservices-based-fleet-safety-management-system/tree/main/fleet-platform/services/fleet/src): `fleet-platform/services/fleet/src`
- [Video service](https://github.com/itachi5747/microservices-based-fleet-safety-management-system/blob/main/fleet-platform/services/video/src/controllers/videoController.js): `fleet-platform/services/video/src/controllers/videoController.js`
- [Video analysis worker](https://github.com/itachi5747/microservices-based-fleet-safety-management-system/tree/main/fleet-platform/services/video-worker/src): `fleet-platform/services/video-worker/src`

### Safety insights

- [Analytics service](https://github.com/itachi5747/microservices-based-fleet-safety-management-system/tree/main/fleet-platform/services/analytics/src): `fleet-platform/services/analytics/src`
- [Alert service](https://github.com/itachi5747/microservices-based-fleet-safety-management-system/blob/main/fleet-platform/services/alert/src/controllers/alertController.js): `fleet-platform/services/alert/src/controllers/alertController.js`
- [Event search](https://github.com/itachi5747/microservices-based-fleet-safety-management-system/blob/main/fleet-platform/services/search/src/controllers/searchController.js): `fleet-platform/services/search/src/controllers/searchController.js`
- [Realtime streaming](https://github.com/itachi5747/microservices-based-fleet-safety-management-system/tree/main/fleet-platform/services/realtime/src): `fleet-platform/services/realtime/src`

### Platform infrastructure

- [Shared adapters](https://github.com/itachi5747/microservices-based-fleet-safety-management-system/blob/main/fleet-platform/shared/index.js): `fleet-platform/shared/index.js`
- **PostgreSQL**
- **MinIO object store**
- **RabbitMQ**
- **InfluxDB**

### Other components

- **Fleet operator**
- **Web browser**

## Connections

- Fleet operator → Web browser: uses
- Web browser → Dashboard app: loads
- Dashboard app → Sign-in pages: routes
- Dashboard app → Fleet pages: routes
- Dashboard app → Safety dashboard: routes
- Dashboard app → Alerts page: routes
- Sign-in pages → API client: requests
- Fleet pages → API client: requests
- Safety dashboard → API client: requests
- Alerts page → API client: requests
- API client → API gateway: HTTP requests
- API gateway → Identity service: proxies
- API gateway → Fleet service: proxies
- API gateway → Video service: proxies
- API gateway → Analytics service: proxies
- API gateway → Alert service: proxies
- API gateway → Event search: proxies
- API gateway → Realtime streaming: proxies
- Identity service → Shared adapters: uses
- Fleet service → Shared adapters: uses
- Video service → Shared adapters: uses
- Alert service → Shared adapters: uses
- Event search → Shared adapters: uses
- Analytics service → Shared adapters: uses
- Identity service → PostgreSQL: reads/writes
- Fleet service → PostgreSQL: reads/writes
- Video service → PostgreSQL: reads/writes
- Alert service → PostgreSQL: reads/writes
- Event search → PostgreSQL: queries
- Analytics service → InfluxDB: reads
- Video service → MinIO object store: stores media
- Video service → RabbitMQ: publishes jobs
- Video analysis worker → RabbitMQ: consumes jobs
- Video analysis worker → MinIO object store: processes media
- Event search → MinIO object store: signs clip URLs
- Video service → MinIO object store: signs media URLs
- Analytics service → Alert service: generates reports
- Realtime streaming → Web browser: streams updates
