Skip to content

mostafasharaby/SchoolManagementSystem

Repository files navigation

πŸ“š School Management System - Backend (ASP.NET Core)

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.


πŸš€ Features

βœ… 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


πŸ—οΈ Architecture Overview

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

πŸ› οΈ Technologies Used

  • .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

πŸ”₯ Getting Started

πŸ“Œ Prerequisites

  • .NET 8
  • SQL Server
  • Visual Studio / VS Code

πŸš€ Setup Instructions

1️⃣ Clone the repository

git clone https://github.com/YourUsername/SchoolManagementSystem.git
cd SchoolManagementSystem

About

School Management System in ASP Using Clean Architecture

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages