Skip to content

Adelmuhammad-23/SchoolManagementSystem

Repository files navigation

SchoolProject In Clean Architecture

Overview

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.


Features

Core Architecture

  1. Clean Architecture: Ensures separation of concerns and maintainability.
  2. CQRS Design Pattern: Optimized for command-query separation for better performance and readability.
  3. Generic Repository Design Pattern: Simplifies database operations and promotes reusability.

API Enhancements

  1. Pagination: Efficient data fetching with customizable pagination.
  2. Localization: Support for multiple languages in data and responses.
  3. Validation: Input validations using FluentValidation and Data Annotations.
  4. Swagger Integration: API documentation with JWT token support for testing.

Security

  1. Identity Integration: User management and authentication.
  2. JWT Token Authentication: Secure API access using JSON Web Tokens.
  3. Role-Based Authorization: Granular access control using roles and claims.
  4. CORS Support: Enables cross-origin requests securely.

Database Operations

  1. Configurations: Leveraging Fluent API and Data Annotations for entity configurations.
  2. Database Procedures: Includes views, stored procedures, and functions accessible via endpoints.

Additional Services

  1. Email Service: Automated email notifications.
  2. Image Upload: Simplified image handling with storage integration.

Utilities

  1. Filters: For custom request/response handling.
  2. Logs: Comprehensive logging for debugging and monitoring.

Testing

  1. Unit Testing: Ensures reliability with XUnit.

Technologies Used

  • ASP.NET Core Web API
  • Entity Framework Core
  • JWT Authentication
  • Swagger UI
  • FluentValidation
  • XUnit

Setup Instructions

  1. Clone the repository:
    git clone https://github.com/AdelMuhammad-23/SchoolManagementSystem.git
    cd SchoolProject
  2. Set up the database connection in appsettings.json.
  3. Run database migrations:
    dotnet ef database update
  4. Start the application:
    dotnet run

Project Structure

- SchoolProject
  - API
  - Core
  - Infrastructure
  - Tests

Future Enhancements

  • Adding real-time notifications.
  • Integrating advanced analytics.
  • Supporting mobile platforms.

About

SchoolProject Using Asp.net Core Web Api Using Clean Architecture Based On Code First

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages