Challenge Overview
Project Overview
Currently, TopCoder Competition Engine used a customized way for communication between the client side and the backend services. Previously, we have worked out the way to communicate with the backend listener by using Node.js technology.
This contest is going to improve the code and implement new functionality like chat.
Competition Task Overview
The latest source code for arena connector, can be found at https://github.com/cloudspokes/arena-connector , please use that as your starting point for development.
Replace Async with Promises
Currently, async is used in the source code to provides straight-forward, powerful functions for working with asynchronous JavaScript. We'd like to update to use alternative way to approach asynchronous JavaScript.
Please check Promises – an alternative way to approach asynchronous JavaScript
Please replace async with Q promise library
Chat Request and Resposne
We'd like to implement the chat functionality, so we can use the arena connector to send/receive messages.
Basically, user can
- send various type messages, like general, questions, reply to, whisper. Please check Arena applet for general understanding.
- receive various type messages, like system notification, whisper etc.
Code Reference
Broadcast
We'd like to implement the broadcast functionality, so we can use the arena connector to receive broadcasts.
Through Admin tool, the contest admins can broadcast for some important message, like system reboot, advertise for event sponsor for active users.
To play with the functionality, you can login as Admin Tool, select Actions -> Send broadcasts -> Global... to trigger it.
Code Reference
Demo Client
Please create a demo app which demonstrates the users login through arena connector, and arena applet can communicate with each other, and receive messages and broadcast.
Arena VM
Before asking your own VM, you need to have a public key on your profile before asking for the VM.
You can find more details on how to generate a key http://apps.topcoder.com/wiki/display/projects/Generate+SSH+Key and how to connect using it http://apps.topcoder.com/wiki/display/projects/Connect+Using+SSH+Key.
To use the Arena VM, please follow http://apps.topcoder.com/wiki/display/docs/Competition+Engine+VM+Setup
Final Submission Guidelines
Submission Deliverables
Below is an overview of the deliverables:
- Code Changes for the solution
- A complete and detailed deployment documented explaining how to deploy the application including configuration information.
Final Submission
For each member, the final submission should be uploaded to the Online Review Tool.