Challenge Overview
Competition Task Overview
We need to provide succinct, timely, and relevant information about what's happening on projects in Connect, according to role and user preference. Connect users should be notified when specific events occur on their projects. The following changes are required to our existing platform to support these notifications. We are also switching our Async queueing system from Kafka to RabbitMQ.
In this challenge, you'll need to create a new consumer based on our almost-empty tc-connect-notifications repo, at a high level, the process works like this:
1. This new consumer will be responisble for consuming various project related events from RabbitMQ (you can use RabbitMQ to fire test events via command line or GUI for local testing), process them and generate 1 or more notification events that would be consumed by ap-notification-service.
2. The notifications will contain notification type and notification related data parameters, ap-notification-service will determine what notification templates should be used and which users should be notified via email.
This challenge is only responsible for implementing the code that consumes project related events from RabbitMQ and generate notifications (also sent to some configurable RabbitMQ).
Please make sure you use bunyan + logentries for logging. All logs messages should include correlationId from event message for log tracing.
We'll post some additional documents including sample JSON payload to the forum to help you better understand this.
Testing
Unit tests should have at least 80% code coverage, biz logic needs code coverage. (Mocha, chai, sinon, etc)
Technology Overview
NodeJS
jackrabbit (rabbitmq)
bunyan + logentries (logging)
Final Submission Guidelines
Submission Deliverables
Below is an overview of the deliverables:
1. Full code that covers all requirements (based on our repo structure)
2. A detailed readme in markdown format covering how to configure, run and verify your submission.
Final Submission
For each member, the final submission should be uploaded via the challenge detail page on topcoder.com.]