This project is a simple phone book application consisting of five microservices and a message queue.
In addition, it includes a console application for simple testing of the entire system.
Microservices are of the type of ASP.NET Core Web Application. PostgreSQL is used as database and RabbitMQ is used for message queue.
The whole system is Dockerized except for the console application.
Run following commands in application root directory where this file (README.MD) is located via PowerShell or Bash Shell.
cd ./Net5Microservice
docker-compose up -d rabbitmq
docker-compose up -d postgresql
cd Directory
dotnet ef database drop -f
dotnet ef database update
cd ../Feeder/
dotnet ef database drop -f
dotnet ef database update
cd ..
docker-compose up -d
cd ..At this point all application is runing and ready for client requests.
Your can use the console application to test the entire system (includes creating bulk test data).
Run following commands in application root directory where this file (README.MD) is located via PowerShell or Bash Shell.
cd .\Net5Microservice\
cd .\ClientApp\
dotnet publish -c Debug
dotnet run ./bin/Debug/net5.0/ClientApp.dllClick following links to view services home pages while application running.
- Directory
- Takes user actions add/remove contact and communication, creates report request.
- Feeder
- Feeds all actions of Directory into Report database via RabbitMQ.
- Publisher
- Sends Directory messages to RabbitMQ
- Consumer
- Reads messages of RabbitMQ and sends to Feeder and Report.
- Report
- Process report request and generates report.
- RabbitMQ ( user: guest, pass: quest )
- PostgreSQL ( user: docker, pass: docker )
- Crate a contact
- Remove a contact
- Add a communication info to an existing contact
- Remove a communication info from an existing contact
- List all contacts
- View contact details including communication info
- Create a request of statistics report, based on contacts location
- View list of reports generated by the system
- View report details
Licenced with Apache 2.0