Fast 96hr!!! Module Assembly - TCC Web Socket - Get Registered Rounds and Round Problems

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 (Arena applet) and the backend listeners. We are planning to implement a Web-based Arena based Web Socket protocol.

Previously, we have run contests to build a standalone web socket listener, which provides a good solution by using the combination of socket.io (web client)  and netty.io (server side). 

We are continuing to support more features needed by the new Web-Based Arena.

Competition Task Overview

This contest is going to implement web socket messages for Getting Registered Contests and Contest Problems.

General Approach

We'd like to make the web socket listener as a wrapper over the main listener, the main logic should be implemented inside the main listener, we will provide the winning submission for Module Assembly - TopCoder Competition Engine - Connecting Web Socket Listener and Main Listener for reference (provided in forum), the code is already checked in github repositories (https://github.com/cloudspokes/app/commit/c30c4115bb04f2861a94812f66e3d8b96d22f559).

Please check the https://github.com/cloudspokes/app/wiki/Connect-Web-Socket-Listener-to-Main-Listener as a base knowledge to connecting the web socket listener and main listener, and follow the same approach to implement,  any improvement is welcome.

Please reuse existing functionality used in main listener as much as possible.

Get Registered Rounds
This message is going to return the registered contest lists for the current user.

basically, the following information contains in the com.topcoder.netCommon.contestantMessages.response.data.RoundData, please create a custom response, instead of using RegularResponse for web socket.

There is no existing request for getting Registered Rounds, you need to define your own

The data process logic should be implemented inside the main listener.

Here are the request and response for the existing functionality to reuse

Get Round Problems
This message is going to return the round problems info associated with the given round id.

for problem related info, it can be only non-sensitive information of a problem assigned to a division of a round (see ProblemLabel class)

The data should be from the main listener.

Here are the request and response for the existing functionality.

Web Demo

In order to demonstrate your solution, you are expected to update the demo, to demonstrate the communicate the messages can be properly used in web demo, and display the user information.

The demo should show that when user successfully login, the listener will notify the list of registered contests, and can be manually request for that.

and can get the contest problems.

You can use AdminTool to register user the contests in backend, instead of simulation the registering process.

Winner Responsibility

Winner will be responsible to create pull request in final fix phase, and help with the merge.

About Code Base

For the code under /home/apps/dev directory, some are hosted in internal svn repositories, some are hosted in private repositories in github.

You can check Source Code Management For TopCoder Competition Engine - TopCoder Wiki

For SVN Access, please send request to support@topcoder.com, For github access, please post your github account in forum to ask PM to grant you access.

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

Currently, we moved several main projects to github, please check http://apps.topcoder.com/wiki/display/~fireice/Source+Code+Management+For+TopCoder+Competition+Engine

If you want to have local access to github, please create your own github account, and ask access in forum.



Final Submission Guidelines

  

Submission Deliverables

Below is an overview of the deliverables:

  • Code Changes for the solution, please include the svn revision and git commit hash
  • 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: 30041749