https://github.com/iamarifdev/course-management
Course Management System - A clean, modular application built with CQRS, following SOLID principles and Clean Architecture. Features robust testing (unit, integration, functional) and architecture validation. Designed for maintainability, testability, and scalability.
https://github.com/iamarifdev/course-management
architecure-test clean-architecture cqrs design-patterns functional-test integration-test solid-principles unit-test
Last synced: 5 months ago
JSON representation
Course Management System - A clean, modular application built with CQRS, following SOLID principles and Clean Architecture. Features robust testing (unit, integration, functional) and architecture validation. Designed for maintainability, testability, and scalability.
- Host: GitHub
- URL: https://github.com/iamarifdev/course-management
- Owner: iamarifdev
- Created: 2025-03-13T13:51:46.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-19T12:14:35.000Z (about 1 year ago)
- Last Synced: 2025-04-19T13:36:44.752Z (about 1 year ago)
- Topics: architecure-test, clean-architecture, cqrs, design-patterns, functional-test, integration-test, solid-principles, unit-test
- Language: C#
- Homepage:
- Size: 1.08 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## To add a migration
#### Change the directory to the infrastructure project
```bash
cd src/CourseManagement.Infrastructure
```
#### Add a migration
```bash
dotnet ef migrations add --startup-project ../CourseManagement.API -o ./Database/Migrations/ --context ApplicationDbContext
```
#### Update the database
```bash
dotnet ef database update --startup-project ../CourseManagement.API --context ApplicationDbContext
```
## To run the project using Docker compose
### To start the services with overrides
- Change the directory to the root of the project
- Run the following command
```bash
docker compose -f docker-compose.yml -f docker-compose.override.yml up -d
```
### To stop the services
- Run the following command
```bash
docker compose -f docker-compose.yml -f docker-compose.override.yml down
```
## To see the structure logs and traces of the services
Visit the following link address in your browser
http://localhost:8082
## To run the tests
- ### Change the directory to root directory
```bash
dotnet test
```
**Important:** For functional tests **Docker** must be **installed and running**.
It uses TestContainers to run the tests which requires Docker to be running.
Ref: https://testcontainers.com/
## To check the Swagger API documentation
Visit the following link address in your browser
http://localhost:8080/swagger