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.
This contest is going to create the queries for Software Review Oppertunities API and Design Review Oppertunities API.
Competition Task Overview
Please raise questions as quick as you can, I am familiar with related database and code base, I can provide as much support as I can.
The implementation will base on the node.js version of TC platform API - https://github.com/cloudspokes/tc-api. Please follow the existing actionhero pattern for your development.
We are building platform APIs on our NodeJS Framework which will execute raw sql directly to fetch / update the data in database.
This contest should write the raw queries for the Software Review Oppertunities API and Design Review Oppertunities API, prepare test data and provide manual verification steps via TC website.
Develop Review Oppurtunities API and Design Review Oppurtunities API
For design (screening and spec review), there will be no auction step, and all review of one contest will be assigned to one certified reviewer.
For dev (spec review, etc), a note that for Code there will be three secondary reviewers, for F2F it is a different review (iterative review), rest are the one primary and two secondary.
Please check https://github.com/cloudspokes/tc-api/blob/master/apiary.apib#L442-L553 for general API specification and the parameters to support.
It is going to return the information currently displayed at Review Opportunities page for each track, like
http://community.topcoder.com/tc?module=ViewReviewAuctions&pt=38
http://community.topcoder.com/tc?module=ViewReviewAuctions&pt=39
http://community.topcoder.com/tc?module=ViewReviewAuctions&pt=14
Please try to create a unified queries for both APIs, if it is impossible, please explain the reason and proceed with creating separete queries for each API.
Existing Code Reference
Please find the following code for reference.
If you are forbbiden to access the following link, please send request to subversion@topcoder.com for svn access.
Parameterized queries
The queries must be parameterized. Please use same format for the parameters in the existing query tool queries and provide demo value to test it.
You must use the same parameter names and approach that is already used elsewhere, such as /v2/develop/challenges.
You can request a VM with informix installed.
Submission Format
For each query:
- Parameteried Query File: {api name} e.g. get_design_checkpoint
- Test Data File:
- {api name}.insert Insert Test Data e.g. get_design_checkpoint.insert
- {api name}.delete Clean Test Data e.g. get_design_checkpoint.delete
- Test Case File: {api name}.tests
- Two lines for each test case. First line is document and second line is the test query
- e.g.
- get_design_checkpoint.tests
- -- get design checkpoint
- select ..... from .... where id = '12345'
Standarize Query Naming Convension
we like to use the underscore approach in all SQL queries under the queries directory, please follow same approach.
Notes, for the JSON data returned, we will use camelCase approach.
Virutal Machines (VMs)
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.
Technology Overview
- JavaScript
- Node.js 0.10.x
- actionhero.js framework
- supertest
- mocha
Documentation Provided
Please check the deployment guide in codebase for reference.
Final Submission Guidelines
- Parameterized Queries with document
- Deployment Guide (Verification Steps are very important)
- Test Data Insert Script
- Test Cases