Challenge Overview
In this challenge series we’ll be building a platform for Topcoder notifications that will be integrated into many products - challenge pages, Topcoder Connect, etc. The overall architecture is based on a message bus (Kafka). Each of the Topcoder services (ex project & challenge services, message service,..) will post events to the message bus (ex a challenge has been posted, challenge received a submission, user has joined a project, etc). We have built a simple REST service that will serve as a proxy to Kafka. Each of the client apps (community pages, Topcoder Connect, etc) will then have a separate notification server that will subscribe to Kafka topics, filter messages, store the notifications for each user and track notifications as new or seen (also implemented in a previous challenge).
Scope of this challenge is updating tc-notifications server and Topcoder Connect to add support for new events and notification types.
In the forums you cas download the notifications matrix - explains which types of users will receive which notifications. You should use that matrix to update Topcoder Connect Notifications Server. Pay attention to specific user roles and don't create duplicate notifications for a user (for example if a user is admin and a manager, don't create two notifications). New events that will contain the data for the notifications are being implemented in a parallel challenge (see the challenge spec for exact fields available in each event body). you can use Postman to post new events to the Bus API for testing purposes.
Second requirement in this challenge is updating Topcoder Connect app to handle the new notifications properly. Please refactor the notification rendering logic in the app to use template based messages. All "[Who]" placeholders in the notifications matrix should be replaced with appropriate fields from the notification content (json body). Template mechanism should support replacing more placeholders - for example it should be easy to add a [Project Name] placeholder. Clicking a notification should lead the user to proper destination marked in "onClick go to" column in the matrix.
Please ignore the System events in the matrix as those aren't implemented yet.
Base code for connect app is in notifications branch
Base code for notifications server is in dev branch
Base code for Bus API is in dev branch and bus api is deployed to https://api.topcoder-dev.com/eventbus/
Final Submission Guidelines
Submit a git patch for notifications repo
Submit a git patch for connect-app repo
Submit updated Deployment guides
Submit a verification guide