Fast 72hrs!!! Module Assembly - Web Socket Listener - Track User Actions From Web Arena

Key Information

Register
Submit
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 port all events of main listener to 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 track user actions through web arena, so we can easily find out how many users are using Web Arena and ask feedback from them.

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, several code changes are already checked in github repositories (https://github.com/cloudspokes/app).

You can learn from the changes needed.

Please check the https://github.com/cloudspokes/app/commit/c08bb4f10f0c3d090d5213402a0d13e6876e99a7#diff-d41d8cd98f00b204e9800998ecf8427e as a base knowledge to connecting the web socket listener and main listener, and follow the same approach to implement,  any improvement is welcome.

Track User Actions

The user actions will be recorded in a new table, please define it properly. Following are the required information.

  • user handle
  • actions (login, registration and submit solution)
  • action time

This tracking is only applied to Web Arena, not Arena applet, so ideally, the changes should be made in the code related to Web Socket listener.

How to Setup Web Arena
The web arena code can be found at https://github.com/cloudspokes/arena-web

Please check the README.md file about setup, if you meet any problem, you can raise in forum.

How to Setup SRMs

A SRM Problem Guide will be provided in forum for setting up SRMs, you can take that for reference, for this challenge, you can reuse the Test SRM already set in database (just need to change the times for phase).

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:

2015 topcoder Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30045320