Register
Submit a solution
The challenge is finished.

Challenge Overview

Challenge Objectives

  • App deployment using Vagrant, CentOS 6, Node, MongoDB

  • The client's CMS (content management system) is a set of inter-connected Node apps.  They have vagrant deploy scripts to stand up a local development environment, but the scripts are outdated.  This challenge will fix the deployment environment and documentation.

Project Background

  • The updated vagrant deployment environment will be used by Topcoder members and client staff going forward as we implement new applications based on the CMS.

  • Subsequent challenges will start to extend the CMS with plugins and functionality for various applications that we are building for the client.

Technology Stack

  • NodeJS, MongoDB

  • We are targeting CentOS 6 and the latest version of Vagrant for this challenge, with the focus being deployment to VirtualBox.

Code access

The client scripts target their internal Github deployment.  We don't have public access to this repository, so we will mirror the repos into Gitlab for this challenge.

 

Individual requirements

The client documentation for the vagrant scripts will work to set up the CentOS environment, but a number of issues were seen in testing that we need to address:

1.  https://bugzilla.redhat.com/show_bug.cgi?id=1562592 . This affects installing npm packages.  This can be worked around by running npm config set strict-ssl false

2.  I have a password set on my id_rsa key.  This caused the scripts to fail because there was no way to prompt for a password.  We need to update the documentation to mention that the password has to be removed from the id_rsa key.

3.  The version of Node installed by the vagrant scripts appears to be the default version for CentOS 6, which is 0.10.43.  That version is way too old now to be able to run the apps, and the npm dependencies will all complain about the Node version.  We need to install nvm as part of the vagrant scripts and use a newer version of Node through nvm.  To install nvm you'll likely need to run this command first:  yum update -y nss curl libcurl

4.  Once the environment is at least set up according to the instructions above, you'll need to fix up the dependencies in the /vagrant directory.  This will involve things like installing the moment npm package in zeta-service-api,  and rerunning npm install in the app directories, if they've already installed npm packages under the old versions of Node and npm.

5.  At this point you should be able to run the apps according to the documentation provided.  You can check the individual log files in the /tmp folder to see if there are errors for any of the deployed Node apps.  For this challenge, you need to investigate why the apps only show Server is starting instead of the actual application data.  We are especially interested in ensuring that both the cms and web apps work as expected and load appropriately (ports 8000 and 8010).  This is a major requirement for this challenge.

Deployment guide and validation document

Make sure to require two separate documents for validation.

A README.md that covers how to use the updated vagrant scripts to:

  • Set up the development environment
  • Start the applications
  • Restart both the vagrant deployment and the Node apps

A Validation.md that covers how to validate that everything is working appropriately, particular the cms and web apps on ports 8000 and 8010

Validation video / screencast

  • A vide is required for this challenge.  Please include a video link in your validation.md file.

What To Submit

  • Update vagrant file and scripts
  • Any code changes needed to the apps - we're hoping that no code changes are necessary
  • README.md
  • Validation.md


Final Submission Guidelines

Please see above

ELIGIBLE EVENTS:

Topcoder Open 2019

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30072649