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