Skip to content

ruhmany/CoursesAPI

Repository files navigation

RahmanyCourses

RahmanyCourses API is a robust and scalable web service built with a focus on clean architecture and design patterns, providing a comprehensive solution for managing a dynamic online courses platform. Leveraging the principles of 4-layer clean architecture, repository pattern, unit of work, CQRS, and MediatR, this API is designed for flexibility, maintainability, and extensibility.

Key Features

  • Clean Architecture: The project follows a 4-layer clean architecture, separating concerns to enhance modularity and maintainability.
  • Repository Pattern: Utilizing the repository pattern ensures a clear separation between data access logic and business logic, promoting a scalable and testable codebase.
  • Unit of Work: The unit of work pattern facilitates the management of transactions, providing a cohesive mechanism for coordinating multiple data operations.
  • CQRS (Command Query Responsibility Segregation): Adopting CQRS enables a clear distinction between command (write) and query (read) operations, optimizing the system for specific use cases.
  • MediatR Design Patterns: The MediatR library is employed to implement the mediator pattern, simplifying the communication between different components of the application.
  • AutoMapper: AutoMapper is utilized for seamless object-to-object mapping, streamlining data transformations and reducing boilerplate code.
  • Custom Authentication: The API incorporates a custom authentication mechanism, ensuring secure user authentication. Passwords are securely hashed and stored with their respective salts in the database. Token creation is seamlessly managed, providing a secure and efficient authentication process.

Usage

RahmanyCourses API empowers both instructors and students to seamlessly interact with the platform. Instructors can create accounts and courses, while students can enroll in these courses, fostering a collaborative and engaging learning environment.

Getting Started

  1. Clone the repository.
  2. Configure the database connection in the appsettings.json file.
  3. Run the database migrations.
  4. Launch the API.
  5. Detailed documentation regarding API endpoints, request/response formats, and authentication can be found in the full documentation.

Contributing

Contributions to RahmanyCourses API are welcome! Follow these steps to contribute:

  1. Fork the repository.
  2. Create a new branch.
  3. Make your changes.
  4. Submit a pull request.
  5. For further assistance or inquiries, feel free to contact us at [elngareng12345@example.com].

License

  • This project is licensed under NinjaLicense.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages