Challenge Overview
In this challenge we are aiming to update the Online Review code to allow events to be posted to Topcoder's Kafka server.
In previous challenge (http://www.topcoder.com/challenge-details/30066397/?type=develop&noncache=true) we have added the support for review submission. We are extending to other submission types.
The following types should be supported:
This should be done using the EventBus end point defined here - https://api.topcoder-dev.com/v5/bus/events.
The online review post to event bus must follow V5 standards and kafka-message structure. See below:
Online Review repository: https://github.com/topcoder-platform/tc-online-review
Please use the event_bus branch with commit hash f062a83edbf24ee372caf7a57116358a24225b7a.
Local Setup
Please follow https://github.com/appirio-tech/tc-common-tutorials/tree/master/docker/online_review to build and run the online review locally. Make sure to use the correct Online Review branch - see above.
If needed you can deploy direct app. This is useful to create new projects and challenges. Follow theses steps:
Download direct-app code base: https://github.com/appirio-tech/direct-app.git. Branch: dev.
To build/setup direct-app with docker please consult https://github.com/appirio-tech/tc-common-tutorials/tree/master/docker/direct-app#build-and-run-with-docker-compose.
Enter in /etc/hosts files the following entry:
In previous challenge (http://www.topcoder.com/challenge-details/30066397/?type=develop&noncache=true) we have added the support for review submission. We are extending to other submission types.
The following types should be supported:
- should create event when member enters a submission (code/f2f/assembly submission, checkpoint submission, appeals)
- should create event when member creates a late deliverable and when manager/copilot creates a late deliverable response
- should create event when copilot/member modifies the project (prize, timeline, add/remove users, etc)
This should be done using the EventBus end point defined here - https://api.topcoder-dev.com/v5/bus/events.
The online review post to event bus must follow V5 standards and kafka-message structure. See below:
{ "topic": "notifications.or.submissions.events", "originator": "tc-online-review", "timestamp": "ISO 8601 timestamp", "mime-type": "application/json", "payload": object - see below for examples }
The payload when a submission is created will be:
{ "challengeId": 1234, "userId": 4321, "submissionTypeId": 1, // should be changed according to one of the type (code/f2f/assembly submission, checkpoint submission, appeals) "isFileSubmission": true, "filename": "c1234-u4321-1.zip", "fileURL": "<FILE URL GENERATED BY OR>", "submissionId": 7777 }
The payload when a late deliverable is updated by user will be:
{ "challengeId": 1234, "userId": 4321, "submissionTypeId": 8, "isFileSubmission": false, "data": { "lateDeliverableTypeId": 1, "explanation": "text", "deadline": "ISO 8601 timestamp", "userId": 4321 }, "lateDeliverableId": 7777 }
The payload when a late deliverable is updated by copilot/PM will be:
{ "challengeId": 1234, "userId": 333, "submissionTypeId": 8, "isFileSubmission": false, "data": { "lateDeliverableTypeId": 2, "explanation": "string", "deadline": "ISO 8601 timestamp", "justified": true/false, "response": "string", "userId": 4321 }, "lateDeliverableId": 7777 }
The payload when a project is updated by copilot/PM will be:
{ "challengeId": 1234, "userId": 333, "submissionTypeId": 9, "data": { ..project data with properties (project object in EditProjectAction.java).. [ ..project phase data (phases array in EditProjectAction.java).. ] } }
Submission types:
- code submission -> 1
- F2F submission -> 2
- assembly submission -> 3
- checkpoint submission -> 4
- appeals -> 5
- late deliverable -> 6
- project update -> 7
For checking that the event was sent to the Kafka bus, please use the following site https://lauscher-dev.herokuapp.com/
Repository
Online Review repository: https://github.com/topcoder-platform/tc-online-review
Please use the event_bus branch with commit hash f062a83edbf24ee372caf7a57116358a24225b7a.
Local Setup
Please follow https://github.com/appirio-tech/tc-common-tutorials/tree/master/docker/online_review to build and run the online review locally. Make sure to use the correct Online Review branch - see above.
If needed you can deploy direct app. This is useful to create new projects and challenges. Follow theses steps:
Download direct-app code base: https://github.com/appirio-tech/direct-app.git. Branch: dev.
To build/setup direct-app with docker please consult https://github.com/appirio-tech/tc-common-tutorials/tree/master/docker/direct-app#build-and-run-with-docker-compose.
Enter in /etc/hosts files the following entry:
127.0.0.1 cockpit.cloud.topcoder.com tc-api.cloud.topcoder.com Open direct-app https://cockpit.cloud.topcoder.com/direct/ and login with 'hefan/password' to create project and challenges. Wait autopilot to run and open Online Review http://cockpit.cloud.topcoder.com/review.
Final Submission Guidelines
- Patch to the Online Review event_bus branch. Please make sure to use commit hash f062a83edbf24ee372caf7a57116358a24225b7a.
- Verification Guide