Event Triangle is a project that leverages the power of event sourcing using .NET and Angular frameworks to manage and track currency transactions. This project employs a cutting-edge approach to data storage and retrieval, capturing each state-changing event in the system to create a comprehensive and reliable transaction history. With a focus on real-time updates and seamless integration between the backend and frontend, EventTriangleAPI offers realtime communication using SignalR.
- .NET SDK 8.0.301 or later: https://dotnet.microsoft.com/en-us/download
- NVM for windows: https://github.com/coreybutler/nvm-windows
- Angular CLI:
15.2.6 - NodeJS:
18.15.0 - NPM:
9.5.0 - Docker: https://docs.docker.com/get-docker/
- IDE: Visual Studio 2022 or JetBrains Rider
- Install NVM:
choco install nvm -y - Install NodeJS
18.15.0using NVM & PowerShell as Administrator:nvm install 18.15.0 - Use NodeJS
18.15.0using NVM via PowerShell as Administrator:nvm use 18.15.0 - Check NodeJS installed properly (should be
18.15.0):node -v - Check NPM installed properly (should be
9.5.0):npm -v - Go to the project folder:
cd src/authorization/EventTriangle.Client - Restore node modules:
npm ci - Install Angular CLI globally:
npm install -g @angular/cli@15.2.6 - Open PowerShell as Administrator and type:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned - Check that Angular CLI installed properly:
ng version - Build project for development using Angular CLI:
ng build - Run angular client:
ng serve
docker run --name "event-auth-pgsql-db" -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres:latestdocker run --name=rabbit1 -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest -d rabbitmq:3-management
Authorization serviceSender serviceConsumer service
- SDK:
.NET 8 - Frameworks:
ASP .NET Core,Angular 15 - Persistence:
- Database:
PostgreSQL 15 - ORM:
Entity Framework Core
- Database:
- Authorization:
Azure AD - Presentation:
- API Documentation:
OpenAPI (Swagger) - Realtime Communication:
SignalR - Frontend Development:
Angular 15 - Microservices communication:
RabbitMQ,GRPC
- API Documentation:
- Unit and Integration Testing:
XUnit,FluentAssertions - Containerization:
Docker,k8s - Continuous Integration:
Azure Pipelines,GitHub Actions - Continuous Deployment:
Azure Pipelines,GitHub Actions,Azure DevOps,Azure K8s Service - Programming languages:
C#,SQL,TypeScript - Tools & IDE:
Visual Studio,Rider,VS Code,WebStorm,SMSS,Postman
- Docker images: https://hub.docker.com/u/kaminome
- Azure DevOps project: https://dev.azure.com/EventTriangle/EventTriangleAPI
setx EVENT_TRIANGLE_AD_CLIENT_SECRET <YOUR_AD_SECRET>docker-compose up
export EVENT_TRIANGLE_AD_CLIENT_SECRET=<YOUR_AD_SECRET>docker compose up
From src folder run:
docker build --build-arg FRONT_API_URL="http://localhost:7000/" -t eventtriangle/auth:1.0 -f ./authorization/Dockerfile .docker build -t eventtriangle/consumer:1.0 -f ./consumer/Dockerfile .docker build -t eventtriangle/sender:1.0 -f ./sender/Dockerfile .








