Challenge Overview

Welcome to the JCI Employee Safety Reporting Backend Challenge.

 

Project Overview

Johnson Controls is a global diversified technology and industrial leader serving customers in more than 150 countries, worldwide. The JCI BESafe mobile application initiative will allow BE JCI employees in Europe to be even more proactive about reporting and resolving safety issues. Employees will use their personal mobile devices to report safety issues and follow issue resolution progress.

 

Challenge Overview

We are currently in the middle of creating the designs for the user interface of the application. However, we do have a set of wireframes / mockups that you can go through to get an understanding of how the application will be used.

The entire application will be a web application intended for use in mobile phones. You need to use Nodejs to create a web application server that can be deployed on heroku.

 

Challenge Details

Post registration, you will find in the Challenge Forums a set of mockups that describe how the User Interface of the application is expected to be. Go through that and understand how the application will be used.

You will then proceed to create a web application server using Nodejs. Note that there is no development of the front end required for this challenge. Thus, your web application server, for now, will not be hosting any views.

In the Challenge Forums, you will find an API specification written in YAML. It is this API that you need to currently implement.

You will have to create a database in MongoDB. Using Mongoosejs, you will have to define two models:

  1. SafetyReports

  2. Images

In the Challenge Forums, you will also find a brief description of the expected schema. Kindly check it out and let us know if you have any questions about it or if you have any suggestions to improve it.

 

Thus, the tasks that you need to carry out for this challenge are as follows:

  1. Create a web application server using Nodejs. For now, this server will not be hosting any views or templates.

  2. Using the provided YAML specification, create the API endpoints. These endpoints need to be public to allow the front end to call them.

  3. Create the necessary database models.

  4. Set up the application such that it can be deployed to Heroku.

  5. Provide a Deployment Guide describing how to deploy the application locally and on heroku.

  6. Use the Auth0 heroku add-on for authentication purposes. Provide a simple authentication here for all the API endpoints.

  7. Create unit tests for the API endpoints.

  8. Deploy the application to heroku and provide the link for your deployed application. Ensure that you use only free versions of add-ons and dynos.

You need to use Node.js 0.10.40 for this challenge



Final Submission Guidelines

Your submission should include the following:

  1. Deployment Guide. You can use this template. Make sure that you also specify how to deploy the application to Heroku.
  2. Link to your application deployed on heroku.
  3. The application itself

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30051586