Hercules Javascript XRE Receiver - Refactor and clean up

Register
Submit a solution
The challenge is finished.

Challenge Overview

XRE is a system that allows client / server communication and drawing based on commands from the server.  The client can also send events, like key presses or mouse clicks, back to the server, and the server can respond with new drawing or other calls.  Right now, the receiver is built with Javascript and the drawing is done using WebGL.

The code for this project is quite old and has gone through a lot of revisions.  It was also initially designed and implemented when WebGL was relatively new.  Now there are a lot of new Javascript frameworks and helpers that will make the application much easier to implement.

This challenge will be the first step in completely refactoring and modernising the codebase.  This challenge will focus on stripping out a bunch of the unnecessary code and all the drawing code so we can get down to a good skeleton.  Future challenges will then add back in the drawing and other code with new libraries and better implementations.

Challenge Objective

This challenge will build a new skeleton based on the current code, stripping out a ton of unnecessary code that hampers the maintainability of the code and the performance.  It will also refactor the code into much smaller files and introduce grunt scripts to concatenate and minify the Javascript files for deployment.

Overall changes include:

 

  • Removing unnecessary comments
  • Removing all custom exceptions
  • Removing unnecessary try/catch blocks and exception wrapping
  • Remove basic parameter checking
  • Refactoring the code into smaller files to make maintainability and future changes easier
  • Remove the large, faux-package definitions
  • Remove all drawing and WebGL code (will be replaced in the future)
  • Add a custom logging class that can be turned on / off


Final Submission Guidelines

Please see above

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30053124