Skip to content
Subscribe to one or more users(friends) for ranking changes; notification system for change in rank of particular user;
C# Dockerfile Shell PowerShell TSQL
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode
CreateNotification
FollowerManagementApi
ParseContestApi
SendNotification
UserManagementApi
.gitignore
ClearDatabases.sql
README.md
RebuildAllDockerImages.ps1
RebuildAllDockerImages.sh
RemoveUnusedImages.ps1
RemoveUnusedImages.sh
StartSolution.ps1
StartSolution.sh
StartSolutionWithLocalAPIs.ps1
StartSolutionWithLocalAPIs.sh
StopAndRemoveAllContainers.ps1
StopAndRemoveAllContainers.sh
ViewQuery.sql
codeforces-ranking-notification-system
docker-compose.local.yml
docker-compose.yml

README.md

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:

You can’t perform that action at this time.