prakashn27 / codeforces-ranking-notification-system

Subscribe to one or more users(friends) for ranking changes; notification system for change in rank of particular user;

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

codeforces-ranking-notification-system

  • Subscribe to one or more users(friends) for ranking changes
  • Notify if there is a change in rank of our friends
  • Out of scope: Authentication, UI

Architecture Diagram

Architecture Diagram

Overview of Architecture:

  • Data resides in sql server instance of docker
  • Message broker used is Rabbitmq instance of docker
  • SMTP server is used to check the delivery of messages
  • UserManagementApi and FollowerManagementApi are dotnet webapi projects used to add data to our DB.
  • ParseContestApi is also a dotnet core webapi project which parses the ranking changes of a contest
  • All the ranking changes are updated in queue Rank
  • CreateNotification gets the each user in rank queue and creates a notification for all of its followers and updates it to Notification queue.
  • SendNotification fetches the data from Notification queue and sends mail for each notification.

Run

./StartSolution.sh starts all the projects currently from docker compose.

Debug

  1. To debug individual project, stop that particular project using docker-compose stop {projectname}.
  2. Run the project in development mode, using visual studio code.

QuickLinks after starting the project:

Following links are enabled after starting the project.

Docker Images (available in docker hub):

Videos worth watching:

About

Subscribe to one or more users(friends) for ranking changes; notification system for change in rank of particular user;


Languages

Language:C# 92.3%Language:Dockerfile 2.5%Language:Shell 2.1%Language:PowerShell 2.0%Language:TSQL 1.1%