Key Information

The challenge is finished.

Challenge Overview

A new project for Hercules is an integration into a Property Management System (PMS).  The end product will be a bridge between events raised by the PMS and internal calls to the Hercules services through the VPIL layer we are building in the Node Base Libraries.  The PMS server will raise events and our bridge will handle those events by making a series of calls into the VPIL (and other) Base Library services.  

We also have a PMS simulator website that uses the base libraries to allow for testing of specific VPIL calls.

This challenge will combine the two apps into a new PMS client that can both test the specific VPIL calls and *also* interact with the PMS simulator server for simulating specific events raised.  The code for all the relevant apps will be available in the forum.

PMS Simulator

The main codebase to build from will be the PMS simulator app, provided in the forum.  We will split the main header navigation into 3 sections:

1.  API Calls, which will be the list shown on the main homepage now
2.  Simulation calls, which will just be the "Checkout" button on the main homepage now
3.  Subscription, which will contain the details off of the subscription management screen of the PMS simulator client app.

The only new screen will be the subscription screen.  Please skin that screen to match the UI of the rest of the simulator app

Subscription screen UI

The subscription screen should be split into two separate pages:

1. Subscription Management
2. Received notifications

This will make it easier to use for the testers.

Subscription Management UI

The subscription management page will match the UI we have now for the client, but we need to make a few changes:

1. Please allow for an environmental variable to default the service URL and username, just for easier testing
2. The buttons (check status, show available, subscribe to all) should do basic form validation on click to ensure the subscription service URL and username are filled out.  Currently they don't and appear to default to a bing URL, which isn't good.

Received notifications UI

On the received notifications screen, we need to format the JSON for the messages better to make it easier to read.  Right now the simulator client app just dumps them out as text, without pretty-printing.

Received checkout flow

One functionality change for the client is that when a checkout message is received, we want to go through the same flow we do now on the "Simulate Room Checkout" page in the simulator "/simulate/checkout".  The device ID and environment should be able to be set as Heroku environmental variables, but we want to be able to send a checkout message from the mock server, process it on the mock client, and make real VPIL calls to deal with the checkout, which is basically what the flow of the final app will be.  This will be very useful in proving to the client that our system can do what they need it to do.


The updated app will replace the PMS mock client app with the new app.  The server app will remain as it is for now.  Please make sure that your submission is still easily deployable to Heroku and that the deployment guide is updated as needed.

No video is required for this challenge.  

Final Submission Guidelines

Please see above.


2016 TopCoder(R) Open


Final Review:

Community Review Board


User Sign-Off


ID: 30055076