The School Management System is a backend service built with ASP.NET Core to manage students, teachers, classrooms, library books, and borrowing operations. It follows Clean Architecture principles, utilizing CQRS, MediatR, Entity Framework Core, and JWT Authentication.
β
Clean Architecture (Domain, Application, Infrastructure, Presentation)
β
CQRS with MediatR for better separation of commands & queries
β
Repository & Unit of Work Pattern for efficient data handling
β
Entity Framework Core with SQL Server
β
AutoMapper for seamless object mapping
β
FluentValidation for input validation
β
JWT Authentication & Role-based Authorization
β
Swagger UI for API documentation
β
Global Exception Handling & Logging
β
Generic Caching Service to handle multiple entities dynamically for optimized performance
The project follows Clean Architecture, dividing concerns into multiple layers:
- Core - Contains domain models, DTOs, and core business logic
- Application - Includes CQRS handlers, validators, and application services
- Infrastructure - Handles database persistence, external services, and repositories
- API - Defines controllers, endpoints, and middleware
- .NET 8
- ASP.NET Core Web API
- Entity Framework Core (Code-First Migrations)
- MediatR for CQRS pattern
- FluentValidation for request validation
- AutoMapper for object mapping
- Serilog for structured logging
- JWT Authentication with role-based access control
- SQL Server as the primary database
- Swagger (NSwag/Swashbuckle) for API documentation
- .NET 8
- SQL Server
- Visual Studio / VS Code
1οΈβ£ Clone the repository
git clone https://github.com/YourUsername/SchoolManagementSystem.git
cd SchoolManagementSystem