The repository contains the code for .NET Mentoring Program D2+ Practice (Ticketing) program. This program was designed to get practical experience in building scalable and performant REST API solutions. The course covers technical diagrams creation, data access, and REST API layers implementation and testing. It also tackle practical cases of asynchronous and multithreaded development topics.
Note
All tasks and diagrams for this project are in the docs folder.
- ASP NET Core
- PostgreSQL
- Redis
- Docker for running things locally and for unit/integration tests with TestContainers
- K6 for load testing
- Terraform for infrastructure as code
- Azure resources:
- Service bus
- Functions to read messages from the service bus and send emails
- Email Communication Service
- Logic Apps for periodic tasks
- Install necessary tools:
- Run
az login
to authenticate with Azure
Warning
(Windows only) Change this line that puts deployment files to a zip archive
to something like
Compress-Archive -Path .\Ticketing\bin\Release\net8.0\publish\* -DestinationPath ticketing.zip -Force
(I never tested it on Windows)
-
Run
terraform init
to initialize the Terraform configuration -
Run
terraform plan
to see what resources will be created -
Run
terraform apply -auto-approve
to deploy the infrastructure with default PostgreSQL username and password
Tip
Default username and password for PostgreSQL are Adm1n157r470r
5AE9
and 4-v3ry-53cr37-p455w0rd
respectively.
If you want to use your own username and password, use the command
terraform apply -auto-approve -var="login=your_username" -var="password=your_password"