Register
Submit a solution
The challenge is finished.

Challenge Overview

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. The legacy processor already listens to the submission create event. 

2. Update src/services/NewSubmissionService.js to check if the current challenge is a Marathon Match - check here for example.

3. Move the logic in src/services/NewSubmissionService.js from 87-127 to a new service that will handle non Marathon Match track.

4, Create a new service to handle Marathon Match track. This service will listen for create events in Kafka and insert data into the legacy Informix Database.

5. The new service from step 4) will need to populate Informix database tables. The description is below:

a) Mapping from Informix database column to submission record property:
coderID -> memberId
contestID -> challengeId
roundID -> will come from project_info table using as project_id = challengeId and project_info_type_id = 56
componentID -> will come from round and round_component table using as round_component.round_id = roundID and round.round_id = 17263
componentStateID -> will come from long_component_state table using as round_id = roundID and component_id = componentID and coder_id = coderID
b) Update long_submission_state. See forum posts for details.
b) Populate long_submission table with data: componentStateID, submissionNoCount, submittedCode (will fetch from url property), openTime (time phase was opened), currentTime, 0, languageId (Java,C++,C#), isExample. The value open_time must be retrieved from long_problem_submission table.


Environment setup

 


Final Submission Guidelines

  • Full application in a zip file
  • Deployment guide as described in specifications

ELIGIBLE EVENTS:

Topcoder Open 2019

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30074600