- Architecture: The solution adopts principles from Clean Architecture and Domain-Driven Design (DDD)
- Target Framework: .NET Core 8
- EF Core 8 with PostgreSQL
- Validation through FluentValidation
- For security, JWT Bearer authentication is configured
- Testing is implemented using xUnit with Testcontainers for PostgreSQL
For local development we need a developer certificate which can be setup with dotnet dev-certs https --trust.
-
Create
.envfile by duplicating.env_templatelocated in project root -
Start infrastructure (database etc)
docker compose up -d -
Start the application
- Option 1 - CLI:
dotnet run --project TaskSync - Option 2 - VSCode: Hit F5
- Option 1 - CLI:
-
Open the application
- Swagger-UI: https://localhost:7190/swagger/index.html
- Database-Explorer: Use a tool like pgAdmin - username=postgres, pw=example, db=TaskSync
docker compose up -d docker build -t tasksync -f Dockerfile_Local . docker run -it -p 7190:7190 --name tasksync-container-local tasksyncThis scripts allows to update the initial migration script.
sh _reset_db.shdotnet build TaskSync.slnGenerate token:
curl --request POST \ --url 'https://dev-ng4mbx4gds2o61r1.eu.auth0.com/oauth/token' \ --header 'content-type: application/x-www-form-urlencoded' \ --data grant_type=client_credentials \ --data client_id=<CLIENT_ID> \ --data client_secret=<CLIENT_SECRET> \ --data audience=https://tasksync.api.de/api \ --data scope=openidCopy the token and authorize in Swagger UI.
The application exposes a basic health check endpoint used for monitoring and readiness probes: GET /api/health