Challenge Overview
A few months ago we have created a proof-of-concept (POC) solution for Jonh Hancock: a demo version of interactive, self-contained financial report, that can be sent to addressees via email, and viewed on any device / OS without requiring any specific software to be installed, nor Internet connection. Technically, it was implemented as a webapp, bundled into a single file, along with all necessary source data (zipped), that is executed in the device's browser.
Our solution got a highly positive acclaim by the client, and the project got the green light for production development. While the design part of Topcoder community finishes the actual designs for the product, we start the development. In this challenge you'll be provided with a virtual machine (VM) mocking client's environment and their database, and you will write NodeJS scripts that prepare report data and export them from the database.
Our solution got a highly positive acclaim by the client, and the project got the green light for production development. While the design part of Topcoder community finishes the actual designs for the product, we start the development. In this challenge you'll be provided with a virtual machine (VM) mocking client's environment and their database, and you will write NodeJS scripts that prepare report data and export them from the database.
Detailed Requirements
- In the challenge forum you'll find links to VM (Vagrant / Virtual Box, with Solaris 10 OS and Oracle 11g SE DB on board) and other necessary assets;
WARNING: The VM image is ~8GB, and it takes some time to download it from Google.Drive even with a good Internet connection. - You'll install NodeJS (latest LTS) into VM;
- You'll create a NodeJS project with a script that will generate report data according to the algorithm described in the assets. It will manipulate on the DB, generating required datasets; then it will save generated datasets into a new DB table (along with any meta information that will later allow to select data related to a specific report generated in the past, and also when and to whom it was sent), and also export them as JSON files. It should also provide an option to grab from that new DB table all data related to a report with the specified ID, and export them as JSON; so that it is possible, knowing a report ID, regnerate it without relying on the original data in the DB.
- You deploy that script inside VM and verify it works there.
- You update VM documentation with information:
- On the installed version of Node
- How to re-deploy your NodeJS project into VM and run there
- How to run your NodeJS project on the host machine, against the DB running inside VM
- You update VM ($ vagrant package) to the state with NodeJS and the script project deployed into it
Final Submission Guidelines
- Upload a brief demo video to YouTube or similar video-hosting (as unlisted, so that only ppl with a direct link can find it);
- Upload updated VM to Google.Drive (or other similar file hosting that allows to see the latest modification timestamp of the uploaded files);
- Submit zip archive containing:
- Created NodeJS code;
- Updated README.md of the VM
- Separate verification.md document with links to the demo video and updated VM, and any additional notes you might have. The actual instructions on the use of created NodeJS code should be located inside README.md of your NodeJS project; and all instructions related to the deployment of that NodeJS code into VM should be located in the VM's README.md (i.e. keep in mind that final users of the NodeJS script will just use it in their environment without VM, so documentation of the NodeJS code itself should refer to the VM).