Skip to content

akinci41/Net5Microservice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Simple Messaging Queue

Description

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.

Installation

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 Console Application

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.dll

Services

Click 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 )

User Stories

  • 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

License

Licenced with Apache 2.0

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published