Skip to content

D-Luan/academic-management-system

Repository files navigation

Academic Management System

license C# ASP.NET Core Status

About

Academic Management System is an Enterprise-level RESTful API designed to manage academic processes. Built with .NET 9, this project demonstrates the application of modern software engineering practices, focusing on scalability, maintainability, and code quality.

The architecture follows the Clean Architecture principles, ensuring strict separation of concerns between the Domain (Core), Infrastructure, and Presentation layers. It also applies DDD (Domain-Driven Design) tactical patterns and TDD (Test-Driven Development) to guarantee robust business rules.

Topics

Features

Domain & Architecture:

  • Clean Architecture implementation (Core, Infrastructure, Web).

  • DDD Patterns: Rich Domain Models, Value Objects (Address), Repository Pattern, and Domain Services.

  • Validations: Domain-level validation (Entities) and Input validation (FluentValidation).

Security & Identity:

  • Full Authentication & Authorization system using ASP.NET Core Identity.

  • Secure endpoints for Registration, Login, and Token management.

Infrastructure & Quality:

  • Containerized environment using Docker and Docker Compose.

  • Automated Testing: Unit Tests (xUnit + Moq) and Functional Tests (WebApplicationFactory + InMemory DB).

  • Observability: Structured Logging with Serilog.

  • Global Error Handling: Custom Middleware for standardized API responses (RFC 7807).

  • API Documentation: Modern UI with Scalar (OpenAPI).

Prerequisites

Installation

  1. Clone the repository:

     git clone https://github.com/D-Luan/academic-management-system.git
     cd academic-management-system
    
  2. Setup Infrastructure (Database):

    Use Docker Compose to spin up the PostgreSQL database container:

     docker-compose up -d
    
  3. Configure Environment Variables:

     cd src/AcademicSystem.Web
     dotnet user-secrets init
     dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Host=localhost;Port=5434;Database=AcademicSystemDb;Username=postgres;Password=YourDockerPassword!;"
    
  4. Run the Application:

     dotnet run
    
  5. Access the API Documentation:

     http://localhost:5257/scalar/v1
    

License

Distributed under the MIT License. See the LICENSE for more information.

About

Enterprise-grade API focused on scalability and security. Implements Clean Architecture, DDD, TDD (xUnit), and CI/CD pipelines on Azure.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors