Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Project Overview

TopCoder and the TopCoder community have worked hard to get the platform to its currently level of maturity, but we're far from done. It's time to take the platform to the next level. TopCoder is going to start taking some steps to open up the platform API to the outside and community developers so they could incorporate it in their websites, applications or build their own applications (web, mobile or desktop).
The ultimate goal is to open up and build an "API" that is targeting all different type of audiences - Software and Studio Competitors, SRM/MM competitors, Copilots, Admins and TopCoder partners - each audience will have different interests and usages of the API, so it will be a huge project and we need to make sure that we are in the right direction from the beginning.

Competition Task Overview

Following changes / bugs should be fixed in this contest:

  1. Search system tests of the results

    • The results should have the TESTS be parent entity and the competitors be the children. That makes much more sense given the API call. Also, we can get test cases for a particular competitor from the a different call. So, remove the optional Coder ID. Remove the hardcoded limits on the number of returned tests that were added in BUGR-9065. Change the test case to be the parent and the competitor info to be the children. Paging must apply to the test cases. Sorting must apply to the test cases.

    • The fields appears in sorting field list should be included in response: https://apps.topcoder.com/bugs/browse/TCAPI-126

    • API should return same data as the web module: https://apps.topcoder.com/bugs/browse/TCAPI-193

    • Pagnation Issue: https://apps.topcoder.com/bugs/browse/TCAPI-133

  2. ADD NEW CALL: results/analytics/{round_id}/results/tests/{testcaseid}

    • Same as #1, but for a particular test case

  3. Search registrants

    • Add "submitted" filter with options of yes/no/any. Omitting it is the same as "any."

      • Submitted = no, remove the "lastSubmissionTime" and "provisionalScore" fields.

      • Submitted = yes, add "rank", "totalSubmissions"���, "lastSubmissionTime" and "provisionalScore" fields (the 4 fields are sortable).

      • Return error message when can't find the contest by round_id: https://apps.topcoder.com/bugs/browse/TCAPI-25

  4. Getting match list.
  5. Common Issue
  6. Marathon match competitor details
  7. Marathon match details
  8. Marathon match competitor submission history details
  9. Active Docs should be updated for the changes in this contest.

You can play the current API here:

https://dev.topcoder.com/docs (you can find your key in "My Dashboard")

You also need to verify this API with other parameters to make sure it work as expected.

Exception Handling

When some server error occurs, it will throw exception to end user directly.

It should follow the error codes responses here and return json error message

https://dev.twitter.com/docs/error-codes-responses

config.apiCodes = {
OK : {name : 'OK', value : 200, description : 'Success' },
notModified : {name : 'Not Modified', value: 304, description : 'There was no new data to return.' },
badRequest : {name : 'Bad Request', value: 400, description : 'The request was invalid. An accompanying message will explain why.' },
unauthorized : {name : 'Unauthorized', value: 401, description : 'Authentication credentials were missing or incorrect.' },
forbidden : {name : 'Forbidden', value: 403, description : 'The request is understood, but it has been refused or access is not allowed.' },
notFound : {name : 'Not Found', value: 404, description : 'The URI requested is invalid or the requested resource does not exist.' },
serverError : {name : 'Internal Server Error', value: 500, description : 'Something is broken. Please contact support.' }
};
with an optional "message" parameter for more details

Testing

You need to provide manual steps to verify your submission.

Existing Code

(Please send your request to subversion@topcoder.com if you don't have access)

tc_refactoring_stage_1_contest_services: https://coder.topcoder.com/tcs/clients/cronos/components/tc_refactoring_stage_1_contest_services/trunk

tc_refactoring_stage_1_review_and_search_services: https://coder.topcoder.com/tcs/clients/cronos/components/tc_refactoring_stage_1_review_and_search_services/trunk

web_module: https://coder.topcoder.com/internal/web_module/trunk

platform api: https://coder.topcoder.com/tcs/clients/cronos/applications/tc_platform_api/trunk

Virtual Machine (VM)

VM specific information is found here: http://www.topcoder.com/wiki/display/docs/VM+Image+2.5

Upon registration as a submitter or reviewer you will need to request a VM based on the TopCoder systems image. The VM will be active through aggregation review, after which it will be terminated except for the winner's and the reviewers'. To request your image, please post in contest forum.

Before requesting your VM, you need to ensure that you have an SSH key created and in your member profile. Instructions to do so are here: http://www.topcoder.com/wiki/display/projects/Generate+SSH+Key, and instructions to connect afterwards are here: http://www.topcoder.com/wiki/display/projects/Connect+Using+SSH+Key.

Please realize that VMs are currently issued manually. We make every attempt to issue the VM as soon as it is requested, however, there may be delays of up to 12 hours depending on time of day when you request. We encourage everyone to request a VM as soon as possible to minimize any such delays.

VMs will be granted only during registration phase!

Set up and Deploy API

The contestants are also required to update active docs and integrate the new APIs to 3scale. This set of APIs should be deployed in its own war. 
Refer to this document to deploy the API locally or on VM
https://coder.topcoder.com/tcs/clients/cronos/applications/tc_platform_api/trunk/doc/APIDG.docx
Refer to this document to setup 3scale integration
https://coder.topcoder.com/tcs/clients/cronos/applications/tc_platform_api/trunk/doc/3scale_DeploymentGuide.doc
Refer to this document for details about Active Docs deployment
https://coder.topcoder.com/tcs/clients/cronos/applications/tc_platform_api/trunk/doc/ActiveDocs_DG.doc



Final Submission Guidelines

N/A

ELIGIBLE EVENTS:

2014 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30035824