A robust and scalable e-commerce API built with .NET 9, implementing modern software architecture principles and best practices.
This project follows a clean, maintainable, and scalable N-Layer Architecture:
BookStore.API (Presentation Layer)
↓
BookStore.Business (Business Layer)
↓
BookStore.Data (Data Access Layer)
- Clean Architecture principles
- Domain-Driven Design (DDD) approach
- Repository Pattern for data access abstraction
- SOLID Principles implementation
- Dependency Injection for loose coupling
- .NET 9
- Entity Framework Core 9.0
- SQL Server
- AutoMapper for object mapping
- JWT Authentication
- Identity Framework for user management
- Swagger/OpenAPI for API documentation
- CORS configuration for cross-origin requests
- RESTful API endpoints
- JWT authentication
- Swagger documentation
- CORS configuration
- Business logic implementation
- DTOs (Data Transfer Objects)
- AutoMapper profiles
- Service implementations
- Business rules and validations
- Entity Framework Core configurations
- Entity models
- Repository implementations
- Database context
- Migrations
- User authentication and authorization
- Book and Category management
- Shopping cart functionality
- Order processing
- Role-based access control
- Clean Code principles
- SOLID principles
- DRY (Don't Repeat Yourself)
- Interface Segregation
- Dependency Inversion
- Repository Pattern
- DTO Pattern
POST /api/auth/register- RegisterPOST /api/auth/login- Login
GET /api/book/list- List booksGET /api/book/get/{id}- Get specific bookPOST /api/book/create- Add new book (Admin)PUT /api/book/update/{id}- Update book (Admin)DELETE /api/book/delete/{id}- Delete book (Admin)
GET /api/category/list- List categoriesGET /api/category/get/{id}- Get specific categoryPOST /api/category/create- Add new categoy (Admin)PUT /api/category/update/{id}- Update category (Admin)DELETE /api/category/delete/{id}- Delete category (Admin)
GET /api/cart- Get user's cartPOST /api/cart/add- Add item to cartPUT /api/cart/items/{id}- Update item in cartDELETE /api/cart/items/{id}- Delete item from cartDELETE /api/cart- Clear cart
POST /api/order- Add new orderGET /api/order/my-orders- Get user's ordersGET /api/order/{id}- Get order detailsPUT /api/order/{id}/status- Update order's statusPUT /api/order/{id}/payment- Update order's payment statusPOST /api/order/{id}/cancel- Cancel order