Challenge Overview
Welcome to Topcoder Submission Legacy Processor Online Review integration challenge.
Individual requirements
1. Integrate a Nodejs Informix library. Two options are acceptable:
3. Replace the existing mock service that generates legacySubmissionId to:
You must connect to Informix informixoltp_tcp server (INFORMIXSERVER) and database tcs_catalog.
This is the connection string for a JDBC driver to the TC informix db running locally in docker: jdbc:informix-sqli://localhost:2021/tcs_catalog:INFORMIXSERVER=informixoltp_tcp
The following tables will need to be updated by the Legacy Processor: upload, submission, resource_submission
Check https://github.com/topcoder-platform/tc-online-review/blob/16a461714aa27bb433e82b755b3fd0025d624722/src/java/main/com/cronos/onlinereview/actions/projectdetails/BaseProjectDetailsAction.java#L503 for the details on how the Java code in Online Review is saving to database.
No check needs to be done by Legacy Processor. All validations will be done by the submission api.
You will need to update the existing deployment guide (README.md) and validation document (Validation.md).
The Validation.md should show add all the steps necessary to verify the application:
Challenge Objectives
- For this contest, we are looking at updating the application named "Legacy Processor"
- The "Legacy Processor" challenge information can be found in https://www.topcoder.com/challenges/30067586/?type=develop&noncache=true
- We need to change the "Legacy Processor" application to write data into Online Review Informix database
Project Background
- Topcoder is updating its api and one of them being updated is the Submission API. One of the scenarios that we are taking care of here is that when an user uploads a submission to Topcoder for a contest
- An application (not relevant for this contest) creates a message that contains details about this submission and sends it to an Apache Kafka instance.
- This challenge is part of a series of challenge to support the new Submission API service.
- Submission API service documentation can be found in https://tc-submission-api-dev.herokuapp.com/docs/ - just for reference
Technology Stack
- The application being built is a Node.Js application. Latest 8.x version should be use
- The online review is a Java application and has as database IBM Informix
Individual requirements
1. Integrate a Nodejs Informix library. Two options are acceptable:1.1 Native driver - depends on informix Client SDK being installed
1.2 JDBC driver - depends on node java (JDK 1.7 should be used)
2. Add submissionPhaseId to the payload that should will sent in Kafka server and that will be processed by "Legacy Processor" app1.2 JDBC driver - depends on node java (JDK 1.7 should be used)
3. Replace the existing mock service that generates legacySubmissionId to:
2.1 Insert data into informix database (see below for details)
2.2 Return legacySubmissionId generated in step 2.1
Online Review Setup
Repository
Online Review repository: https://github.com/topcoder-platform/tc-online-review
Please use the dev branch.
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:
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. Some more information on how to setup OR locally will be provided in forum.
Insert data in Online Review
You must connect to Informix informixoltp_tcp server (INFORMIXSERVER) and database tcs_catalog.
This is the connection string for a JDBC driver to the TC informix db running locally in docker: jdbc:informix-sqli://localhost:2021/tcs_catalog:INFORMIXSERVER=informixoltp_tcp
The following tables will need to be updated by the Legacy Processor: upload, submission, resource_submission
Check https://github.com/topcoder-platform/tc-online-review/blob/16a461714aa27bb433e82b755b3fd0025d624722/src/java/main/com/cronos/onlinereview/actions/projectdetails/BaseProjectDetailsAction.java#L503 for the details on how the Java code in Online Review is saving to database.
No check needs to be done by Legacy Processor. All validations will be done by the submission api.
Deployment guide and validation document
You will need to update the existing deployment guide (README.md) and validation document (Validation.md).
The README.md should be updated to show how to:
- Configure the application (informix database).
The Validation.md should show add all the steps necessary to verify the application:
- Build code, start OR (see details above) and Topcoder informix database
- Create challenges in OR
- Simulate "New submission" Event based on the data in online review system
- Verify data was saved correctly to the database and that the submission appears on OR.
Final instructions
- Source code for application will be provided in forum
- All submission types should be validated: Submission, Specification Submission and Checkpoint Submission
Final Submission Guidelines
- Full application in a zip file
- Deployment guide as described in specifications