This repository contains a prototype matchmaking system built with ASP.NET Core, Redis, and RabbitMQ, designed to explore event-driven architecture. It serves as a hands-on environment for learning how to build scalable, reactive, and real-time services.


Ensure you have the following installed:
- .NET 8.0 SDK
- Docker Desktop
- NodeJS
Follow these steps to get the project up and running:
-
Clone the Repository:
git clone https://github.com/abdullahoday710/FancyMatchMaker cd FancyMatchMaker
-
Start Docker Services: Start the necessary Kafka and Zookeeper and postgres containers:
docker-compose up -d
The
-d
flag runs the containers in detached mode, so they run in the background.TIP : to see all your running detached docker instances you can use the command
docker container ls
-
populate the databases
Now we need to create the tables for our database, Simply run these commands
update-database -Project AuthService -StartupProject AuthService
update-database -Project MatchMakingService -StartupProject MatchMakingService
-
Run a Microservice:
-
Using Visual Studio: Open the
RankedRockPaperScissors.sln
file in Visual Studio. You can then select and run any of the individual microservices within the solution. -
Using the .NET CLI: From the root directory, you can run the default
AuthService
microservice directly:dotnet run --project AuthService/AuthService.csproj
-
- Go into the frontend directory
cd frontend
- install dependencies from npm
npm install
- run the local dev server
npm run dev
- Add a migration to a specific microservice :
add-migration {Migration name} -Project {Microservice name} -StartupProject {Microservice name}
- Update the database for a specific microservice :
update-database -Project {Microservice name} -StartupProject {Microservice name}