Module Assembly - Arena Connector - Chat and Broadcast Support

Register
Submit a solution
The challenge is finished.

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.

ELIGIBLE EVENTS:

2014 TopCoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30040839