How itachi5747/microservices-based-fleet-safety-management-system works
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: src/index.js API gateway · videoController.js Video service · shared/index.js Shared adapters · App.tsx Dashboard app
Components 22
Web dashboard
- Dashboard app
frontend/src/App.tsx - Sign-in pages
frontend/src/pages/auth - Fleet pages
frontend/src/pages/fleet - Safety dashboard
frontend/src/pages/dashboard - Alerts page
frontend/src/pages/alerts/AlertsPage.tsx - API client
frontend/src/lib/api/client.ts
API access
- API gateway
fleet-platform/gateway/src/index.js
Fleet services
- Identity service
fleet-platform/services/auth/src - Fleet service
fleet-platform/services/fleet/src - Video service
fleet-platform/services/video/src/controllers/videoController.js - Video analysis worker
fleet-platform/services/video-worker/src
Safety insights
- Analytics service
fleet-platform/services/analytics/src - Alert service
fleet-platform/services/alert/src/controllers/alertController.js - Event search
fleet-platform/services/search/src/controllers/searchController.js - Realtime streaming
fleet-platform/services/realtime/src
Platform infrastructure
- Shared adapters
fleet-platform/shared/index.js - PostgreSQL
- MinIO object store
- RabbitMQ
- InfluxDB
Other components
- Fleet operator
- Web browser
Connections 38
- 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