Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Project Overview

This project will build NodeJS REST APIs for TopCoder Platform.

Competition Task Overview

The current topcoder nodejs api contests use nodejs-db-informix (https://github.com/amitkr/nodejs-db-informix) to access the informix database. This library is in alpha stages of development and needs some enhancements to make it production-ready.

This contest must fix four high priority issues:

  1. Support async (non-blocking) calls -  the current implementation has a flag for async:true, but it does not work. See this issue for more details.
  2. Support multiple open connections at same time - this may be related to the first issue, but two queries running concurrently result in segment faults. Multiple queries need to work both in both async modes.
  3. Return empty result set instead of throwing exception - the current implementation throws errors the query legitimately returns no results.
  4. The current nodejs-db-informix can't be rebuilt on Heroku. This contest must make it be able to rebuild n Heroku.

This current library provides shortcut methods to build queries dynamically - e.g. select(), orderby(), sort(). We don't need these features because we are maintaining the queries separate from the code. Therefore it is not required to maintain these features (although it will be considered an enhancement). The library must support parametarized queries for select, update and insert.

Tips: You can get informix csdk from tc-api repository and follow same approach: https://github.com/cloudspokes/tc-api/tree/master/thirdparty/ibm/informix

Testing

You are required to provide unit tests to prove the four bugs are fixed. 

You are required to provide a detailed guide demonstrating how to manually test and validate your fixes.

Heroku Deployment

The submission must be deployed on Heroku, any submission which can't be deployed on heroku successfully will be failed in screening phase - primary reviewer must check this

You can request a VM with informix installed.

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!

Review Board Requirement:

Reviewers need to write mocha tests to verify the updated code for the 4 issues.

There are three roles:

  • Accuracy - Tests the implementation on the accuracy of the results when using the component.
  • Failure - Tests the implementation's ability to handle bad data and incorrect usage.
  • Security - Tests the oauth, sql inject and other security related requirements.

Reviewer could send preferred role by Contact Manager after system selected the reviwer.

Copilot will assign the role to reviewers if reviewer didn't send the preferred role information.

Reviewer must create pull request from GitHub for the tests.

Technology Overview

  • Node.js


Final Submission Guidelines

Software Guidelines 
 
 

  • Source File
  • Deployment Guide
  • Test File
  • Unit Tests
  • Winner must create pull request against the main github repo in final fix phase, or help us fork (TBD).

ELIGIBLE EVENTS:

2014 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30036239