# cardosojse/fsph-fleet-management architecture

> Architecture diagram of the GitHub repository cardosojse/fsph-fleet-management, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/cardosojse/fsph-fleet-management
- Repository: https://github.com/cardosojse/fsph-fleet-management

## Overview

fsph-fleet-management is a Spring Boot fleet-management backend. Users submit and manage trip requests; the system checks vehicle and driver availability, supports approval and scheduling, and exposes fleet-calendar information. Separate operational areas cover maintenance and preventive schedules, fueling, drivers, vehicles, SVO team coverage, user access, notifications, and audit history. The sampled code confirms the trip-request and maintenance API-to-service paths and selected persistence calls; other branches are shown as product areas, but their internal wiring was not sampled.

Main entry points: [`src/main/java/br/com/gestaofrota/application/services/AuthService.java`](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/AuthService.java) (Authentication), [`src/main/java/br/com/gestaofrota/application/services/TripRequestService.java`](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/TripRequestService.java) (Request availability), [`src/main/java/br/com/gestaofrota/application/services/MaintenanceService.java`](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/MaintenanceService.java) (Maintenance schedules), [`src/main/java/br/com/gestaofrota/api/v1/controllers/SvoDutyShiftController.java`](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/api/v1/controllers/SvoDutyShiftController.java) (SVO shift API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API and access"]
  node_trip_api["Trip request API"]
  node_trip_api_main["Trip API"]
  node_driver_api["Driver API"]
  node_vehicle_api["Vehicle API"]
  node_maintenance_api["Maintenance API"]
  node_fueling_api["Fueling API"]
  node_auth_api["Authentication API"]
  node_auth_service["Authentication<br/>[AuthService.java]"]
  node_jwt["JWT service<br/>[JwtService.java]"]
  node_user_auth["User loading"]
  node_svo_api["SVO shift API"]
  node_notification_api["Notifications API"]
  node_audit_api["Audit API"]
end

subgraph group_trips["Trip operations"]
  node_trip_service["Request availability"]
  node_trip_requests[("Trip requests")]
  node_trip_request_model["Request lifecycle<br/>[TripRequest.java]"]
  node_trip_service_main["Trip operations<br/>[TripService.java]"]
end

subgraph group_fleet["Fleet operations"]
  node_driver_service["Driver management<br/>[DriverService.java]"]
  node_vehicle_service["Vehicle management"]
  node_vehicle_repository[("Vehicle records")]
  node_maintenance_service["Maintenance schedules"]
  node_maintenance_records[("Maintenance records")]
  node_fueling_service["Fueling records"]
end

subgraph group_oversight["Administration and oversight"]
  node_svo_service["SVO coverage"]
  node_svo_repository[("Shift records")]
  node_team_service["SVO teams"]
  node_notification_service["Notifications"]
  node_email_sender["Email delivery"]
  node_audit_service["Audit history"]
  node_audit_repository[("Audit records")]
  node_user_admin["User administration<br/>[UserService.java]"]
  node_role_permissions["Role permissions"]
end

node_user(("Fleet user"))

node_user -.->|"submits requests"| node_trip_api
node_trip_api -->|"delegates to"| node_trip_service
node_trip_service -->|"queries"| node_trip_requests
node_trip_service -->|"updates lifecycle"| node_trip_request_model
node_trip_api_main -.->|"delegates to"| node_trip_service_main
node_driver_api -.->|"delegates to"| node_driver_service
node_vehicle_api -.->|"delegates to"| node_vehicle_service
node_vehicle_service -.->|"persists vehicles"| node_vehicle_repository
node_maintenance_api -->|"delegates to"| node_maintenance_service
node_maintenance_service -->|"reads and writes"| node_maintenance_records
node_maintenance_service -->|"locks vehicles"| node_vehicle_repository
node_fueling_api -.->|"delegates to"| node_fueling_service
node_auth_api -.->|"delegates to"| node_auth_service
node_auth_service -->|"issues tokens"| node_jwt
node_auth_service -.->|"loads identity"| node_user_auth
node_svo_api -.->|"delegates to"| node_svo_service
node_svo_service -.->|"reads and writes"| node_svo_repository
node_svo_api -.->|"manages teams"| node_team_service
node_notification_api -.->|"delegates to"| node_notification_service
node_notification_service -.->|"sends email"| node_email_sender
node_audit_api -.->|"delegates to"| node_audit_service
node_audit_service -->|"stores records"| node_audit_repository
node_user_admin -.->|"uses permissions"| node_role_permissions

click node_trip_api "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/api/v1/controllers/TripRequestController.java"
click node_trip_service "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/TripRequestService.java"
click node_trip_requests "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/infra/repositories/TripRequestRepository.java"
click node_trip_request_model "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/domain/models/TripRequest.java"
click node_trip_api_main "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/api/v1/controllers/TripController.java"
click node_trip_service_main "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/TripService.java"
click node_driver_api "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/api/v1/controllers/DriverController.java"
click node_driver_service "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/DriverService.java"
click node_vehicle_api "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/api/v1/controllers/VehicleController.java"
click node_vehicle_service "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/VehicleService.java"
click node_vehicle_repository "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/infra/repositories/VehicleRepository.java"
click node_maintenance_api "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/api/v1/controllers/MaintenanceController.java"
click node_maintenance_service "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/MaintenanceService.java"
click node_maintenance_records "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/infra/repositories/VehicleMaintenanceRepository.java"
click node_fueling_api "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/api/v1/controllers/FuelingController.java"
click node_fueling_service "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/FuelingService.java"
click node_auth_api "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/api/v1/controllers/AuthController.java"
click node_auth_service "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/AuthService.java"
click node_jwt "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/infra/security/jwt/JwtService.java"
click node_user_auth "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/infra/security/services/CustomUserDetailsService.java"
click node_svo_api "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/api/v1/controllers/SvoDutyShiftController.java"
click node_svo_service "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/SvoDutyShiftService.java"
click node_svo_repository "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/infra/repositories/SvoDutyShiftRepository.java"
click node_team_service "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/SvoTeamService.java"
click node_notification_api "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/api/v1/controllers/NotificationController.java"
click node_notification_service "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/NotificationService.java"
click node_email_sender "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/NotificationEmailSender.java"
click node_audit_api "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/api/v1/controllers/AuditLogController.java"
click node_audit_service "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/AuditLogService.java"
click node_audit_repository "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/infra/repositories/AuditLogRepository.java"
click node_user_admin "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/UserService.java"
click node_role_permissions "https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/RolePermissionService.java"

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_trip_api,node_trip_api_main,node_driver_api,node_vehicle_api,node_maintenance_api,node_fueling_api,node_auth_api,node_auth_service,node_jwt,node_user_auth,node_svo_api,node_notification_api,node_audit_api,node_user toneBlue
class node_trip_service,node_trip_requests,node_trip_request_model,node_trip_service_main toneAmber
class node_driver_service,node_vehicle_service,node_vehicle_repository,node_maintenance_service,node_maintenance_records,node_fueling_service toneMint
class node_svo_service,node_svo_repository,node_team_service,node_notification_service,node_email_sender,node_audit_service,node_audit_repository,node_user_admin,node_role_permissions toneRose
```

## Components

### API and access

- [Trip request API](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/api/v1/controllers/TripRequestController.java): `src/main/java/br/com/gestaofrota/api/v1/controllers/TripRequestController.java`
- [Trip API](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/api/v1/controllers/TripController.java): `src/main/java/br/com/gestaofrota/api/v1/controllers/TripController.java`
- [Driver API](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/api/v1/controllers/DriverController.java): `src/main/java/br/com/gestaofrota/api/v1/controllers/DriverController.java`
- [Vehicle API](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/api/v1/controllers/VehicleController.java): `src/main/java/br/com/gestaofrota/api/v1/controllers/VehicleController.java`
- [Maintenance API](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/api/v1/controllers/MaintenanceController.java): `src/main/java/br/com/gestaofrota/api/v1/controllers/MaintenanceController.java`
- [Fueling API](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/api/v1/controllers/FuelingController.java): `src/main/java/br/com/gestaofrota/api/v1/controllers/FuelingController.java`
- [Authentication API](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/api/v1/controllers/AuthController.java): `src/main/java/br/com/gestaofrota/api/v1/controllers/AuthController.java`
- [Authentication](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/AuthService.java): `src/main/java/br/com/gestaofrota/application/services/AuthService.java`
- [JWT service](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/infra/security/jwt/JwtService.java): `src/main/java/br/com/gestaofrota/infra/security/jwt/JwtService.java`
- [User loading](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/infra/security/services/CustomUserDetailsService.java): `src/main/java/br/com/gestaofrota/infra/security/services/CustomUserDetailsService.java`
- [SVO shift API](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/api/v1/controllers/SvoDutyShiftController.java): `src/main/java/br/com/gestaofrota/api/v1/controllers/SvoDutyShiftController.java`
- [Notifications API](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/api/v1/controllers/NotificationController.java): `src/main/java/br/com/gestaofrota/api/v1/controllers/NotificationController.java`
- [Audit API](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/api/v1/controllers/AuditLogController.java): `src/main/java/br/com/gestaofrota/api/v1/controllers/AuditLogController.java`

### Trip operations

- [Request availability](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/TripRequestService.java): `src/main/java/br/com/gestaofrota/application/services/TripRequestService.java`
- [Trip requests](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/infra/repositories/TripRequestRepository.java): `src/main/java/br/com/gestaofrota/infra/repositories/TripRequestRepository.java`
- [Request lifecycle](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/domain/models/TripRequest.java): `src/main/java/br/com/gestaofrota/domain/models/TripRequest.java`
- [Trip operations](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/TripService.java): `src/main/java/br/com/gestaofrota/application/services/TripService.java`

### Fleet operations

- [Driver management](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/DriverService.java): `src/main/java/br/com/gestaofrota/application/services/DriverService.java`
- [Vehicle management](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/VehicleService.java): `src/main/java/br/com/gestaofrota/application/services/VehicleService.java`
- [Vehicle records](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/infra/repositories/VehicleRepository.java): `src/main/java/br/com/gestaofrota/infra/repositories/VehicleRepository.java`
- [Maintenance schedules](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/MaintenanceService.java): `src/main/java/br/com/gestaofrota/application/services/MaintenanceService.java`
- [Maintenance records](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/infra/repositories/VehicleMaintenanceRepository.java): `src/main/java/br/com/gestaofrota/infra/repositories/VehicleMaintenanceRepository.java`
- [Fueling records](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/FuelingService.java): `src/main/java/br/com/gestaofrota/application/services/FuelingService.java`

### Administration and oversight

- [SVO coverage](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/SvoDutyShiftService.java): `src/main/java/br/com/gestaofrota/application/services/SvoDutyShiftService.java`
- [Shift records](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/infra/repositories/SvoDutyShiftRepository.java): `src/main/java/br/com/gestaofrota/infra/repositories/SvoDutyShiftRepository.java`
- [SVO teams](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/SvoTeamService.java): `src/main/java/br/com/gestaofrota/application/services/SvoTeamService.java`
- [Notifications](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/NotificationService.java): `src/main/java/br/com/gestaofrota/application/services/NotificationService.java`
- [Email delivery](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/NotificationEmailSender.java): `src/main/java/br/com/gestaofrota/application/services/NotificationEmailSender.java`
- [Audit history](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/AuditLogService.java): `src/main/java/br/com/gestaofrota/application/services/AuditLogService.java`
- [Audit records](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/infra/repositories/AuditLogRepository.java): `src/main/java/br/com/gestaofrota/infra/repositories/AuditLogRepository.java`
- [User administration](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/UserService.java): `src/main/java/br/com/gestaofrota/application/services/UserService.java`
- [Role permissions](https://github.com/cardosojse/fsph-fleet-management/blob/main/src/main/java/br/com/gestaofrota/application/services/RolePermissionService.java): `src/main/java/br/com/gestaofrota/application/services/RolePermissionService.java`

### Other components

- **Fleet user**

## Connections

- Fleet user → Trip request API: submits requests
- Trip request API → Request availability: delegates to (evidence: `src/main/java/br/com/gestaofrota/api/v1/controllers/TripRequestController.java`)
- Request availability → Trip requests: queries (evidence: `src/main/java/br/com/gestaofrota/application/services/TripRequestService.java`)
- Request availability → Request lifecycle: updates lifecycle (evidence: `src/main/java/br/com/gestaofrota/application/services/TripRequestService.java`)
- Trip API → Trip operations: delegates to
- Driver API → Driver management: delegates to
- Vehicle API → Vehicle management: delegates to (evidence: `src/main/java/br/com/gestaofrota/api/v1/controllers/VehicleController.java`)
- Vehicle management → Vehicle records: persists vehicles
- Maintenance API → Maintenance schedules: delegates to (evidence: `src/main/java/br/com/gestaofrota/api/v1/controllers/MaintenanceController.java`)
- Maintenance schedules → Maintenance records: reads and writes (evidence: `src/main/java/br/com/gestaofrota/application/services/MaintenanceService.java`)
- Maintenance schedules → Vehicle records: locks vehicles (evidence: `src/main/java/br/com/gestaofrota/application/services/MaintenanceService.java`)
- Fueling API → Fueling records: delegates to
- Authentication API → Authentication: delegates to
- Authentication → JWT service: issues tokens (evidence: `src/main/java/br/com/gestaofrota/application/services/AuthService.java`)
- Authentication → User loading: loads identity
- SVO shift API → SVO coverage: delegates to (evidence: `src/main/java/br/com/gestaofrota/api/v1/controllers/SvoDutyShiftController.java`)
- SVO coverage → Shift records: reads and writes (evidence: `src/main/java/br/com/gestaofrota/application/services/SvoDutyShiftService.java`)
- SVO shift API → SVO teams: manages teams
- Notifications API → Notifications: delegates to
- Notifications → Email delivery: sends email (evidence: `src/main/java/br/com/gestaofrota/application/services/NotificationService.java`)
- Audit API → Audit history: delegates to
- Audit history → Audit records: stores records (evidence: `src/main/java/br/com/gestaofrota/application/services/AuditLogService.java`)
- User administration → Role permissions: uses permissions
