The project follows the Onion Architecture pattern, which promotes a clear separation of concerns and adheres to the dependency inversion principle. It consists of the following layers:
Core Layer: Contains core data entities for repositories. Infrastructure Layer: Handles data access, including the database context and advanced features like caching and logging. Application Layer: Focuses on application-specific business logic, services, and ViewModels for the user interface. Services Layer: Contains middleware, session management, and mapping services. Web Layer: Serves as the entry point, managing HTTP requests and responses through controllers.