Register
Submit a solution
The challenge is finished.

Challenge Overview

Welcome to Topcoder Submission Legacy Processor Online Review integration challenge.

Challenge Objectives

 

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" app

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:
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

ELIGIBLE EVENTS:

2018 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30067743