SchoolProject is a web API developed using ASP.NET Core and Clean Architecture principles. It is built to manage school-related operations with high efficiency, scalability, and maintainability. The project adopts modern design patterns and follows best practices in software development.
- Clean Architecture: Ensures separation of concerns and maintainability.
- CQRS Design Pattern: Optimized for command-query separation for better performance and readability.
- Generic Repository Design Pattern: Simplifies database operations and promotes reusability.
- Pagination: Efficient data fetching with customizable pagination.
- Localization: Support for multiple languages in data and responses.
- Validation: Input validations using FluentValidation and Data Annotations.
- Swagger Integration: API documentation with JWT token support for testing.
- Identity Integration: User management and authentication.
- JWT Token Authentication: Secure API access using JSON Web Tokens.
- Role-Based Authorization: Granular access control using roles and claims.
- CORS Support: Enables cross-origin requests securely.
- Configurations: Leveraging Fluent API and Data Annotations for entity configurations.
- Database Procedures: Includes views, stored procedures, and functions accessible via endpoints.
- Email Service: Automated email notifications.
- Image Upload: Simplified image handling with storage integration.
- Filters: For custom request/response handling.
- Logs: Comprehensive logging for debugging and monitoring.
- Unit Testing: Ensures reliability with XUnit.
- ASP.NET Core Web API
- Entity Framework Core
- JWT Authentication
- Swagger UI
- FluentValidation
- XUnit
- Clone the repository:
git clone https://github.com/AdelMuhammad-23/SchoolManagementSystem.git cd SchoolProject
- Set up the database connection in
appsettings.json
. - Run database migrations:
dotnet ef database update
- Start the application:
dotnet run
- SchoolProject
- API
- Core
- Infrastructure
- Tests
- Adding real-time notifications.
- Integrating advanced analytics.
- Supporting mobile platforms.