Release Assembly - TopCoder Member Stats API Enhancement

Register
Submit a solution
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. Return "This user is not copilot" instead of 204 for all copilot methods.
  2. Gets copilot profile basic data
  3. Gets copilot profile contest type data
    • Cannot retreieve the data now - returns 504 after waiting a long time
    • Change API Name from to "Gets copilot contests stats"
    • Change url to /statistics/copilots/{handle}/contests
  4. Gets copilot profile contest type data
    • Change API Name from to "Gets copilot contests stats by track"
    • Change url to /statistics/copilots/{handle}/contests/{contestType}
  5. Gets studio profile basic data
    • It takes a long time to get the data, please find the reason and improve the performance.
    • Fix https://apps.topcoder.com/bugs/browse/TCAPI-102 and https://apps.topcoder.com/bugs/browse/TCAPI-103
  6. Gets copilot/studio profile achievements data
    • Returns 204 now. Needs to return same achievements result of studio user.
  7. Gets studio profile submissions
    • Cannot retreieve the data now - returns 504 after waiting a long time.
    • Performance is bad. Please improve the performance.
    • User handle should be case insensitive.
  8. Gets profile forum history data
    • Cannot retreieve the data now - returns 504 after waiting a long time. 
    • Performance is bad. Please improve the performance.
  9. Gets user track details
    • Cannot retrieve the data now - internal server error
    • The track name should match the member profile
    • All tracks in member profile should be supported.
  10. Gets studio profile current registrations
    • Fix https://apps.topcoder.com/bugs/browse/TCAPI-97 and https://apps.topcoder.com/bugs/browse/TCAPI-98
  11. 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

Review style

Final Review

Community Review Board

Approval

User Sign-Off

Challenge links

ID: 30035821