A scalable, asynchronous RESTful Web API for a library management system. This project demonstrates backend development best practices using C# and .NET, structured around Clean Architecture principles.
The solution is strictly decoupled into functional layers to achieve clean separation of concerns (SoC):
- 🌐
Library.API— The entry point of the application. Contains REST controllers, routing configurations, middleware, and dependency injection setups. - 🛠️
Library.Infrastructure— Implements core infrastructure logic, external integrations, services, and cross-cutting concerns. - 📁
Library.DAL(Data Access Layer) — Handles data persistence. Includes the Entity Framework Core database context, entity configurations, and automated migrations. - 📁
Library.Common— The shared domain layer containing core data structures, models, transfer objects (DTOs), and global constants.
- Language & Runtime: C# | .NET 8.0 / 9.0
- API Style: RESTful Web API (JSON payloads)
- ORM: Entity Framework Core
- Design Patterns: Clean Architecture, Repository Pattern, Dependency Injection
- .NET SDK (matching your project version)
- An IDE supporting the
.slnxformat (Visual Studio 2022 v17.10+ / JetBrains Rider)
- Clone this repository:
git clone https://github.com
- Open the solution file:
Library.API.slnx - Apply database migrations via Terminal:
dotnet ef database update --project Library.DAL --startup-project Library.API
- Run the API project (
Library.API). Open the Swagger UI page in your browser (usually at/swagger/index.html) to test the endpoints.