Challenge Overview
Project Background
We’re in the process of revamping our platform in order to improve the overall user experience.
In this series of challenges, we’re creating the required architecture to support our revamped platform.
Technology Stack
-
Node.js
-
InformixDB
-
Java 8
-
Maven 3
-
Docker and Docker Compose
-
DynamoDB
-
AWS
-
ElasticSearch
Code Access (for reference)
Repo: https://github.com/topcoder-platform/scorecard-processor
Branch: develop
Detailed requirement
You can find the flow diagram of how this processor should work attached to the challenge forum.
1. Handle scores
Here you basically have to update the existing implementation so it listens to the submission.notification.score topic instead of the or.notification.create and creates the Review by calling the V5 Submission API.
The idea is to be able to support a broad range of scorers instead of just OR reviews.
2. Handle submissions
The processor should listen for messages in the following topics:
-
submission.notification.create
-
submission.notification.update
and should do the following:
-
Get the challenge details by calling the submission API using the challengeId from the payload.
-
From the challenge details, you will need to extract the scorecardId and the current phase and use those to fetch the scorecard details from the API provided on the challenge forum.
-
For each score_system (object in the scorecardDetails array), you need to produce a new message to initiate the scoring process. For example, for an “AV Scan” score system, you need to produce a new message in the avscan.action.scan topic. The topic will be returned by the API provided on the forum.
3. Update Tests
-
Update the existing tests based on the changes above and cover the new code with strong positive and negative unit and e2e testing.
Example payloads will be found on the forum.
Feel free to ask on the challenge forum!
What to Submit
Submit:
-
A git patch for the latest commit in the develop branch.
-
Instructions on how to apply your patch and test your submission.