This document describes the high-level architecture of our Government Vehicle Management System.
It explains how the application layers are organized and how data flows between them.
The system follows a layered (Clean) architecture:
-
API Layer
- ASP.NET Core controllers and SignalR hubs.
- Swagger/OpenAPI for documenting endpoints.
- Global exception handling middleware.
-
Application Layer
- Services, DTOs, and validators.
- Hangfire background jobs.
- Interfaces for Infrastructure implementations.
-
Domain Layer
- Core business entities (e.g.,
Car
,Driver
,CheckPoint
) and logic. - Domain services or rules that enforce invariants.
- Core business entities (e.g.,
-
Infrastructure Layer
- EF Core DbContext, migrations, identity configuration.
- Integrations (e.g., email, SMS).
- Serilog setup or other cross-cutting concerns.
Below is a simple flowchart in Mermaid notation depicting how these layers communicate: