Challenge Overview
Welcome to the JCI Employee Safety Reporting Native App 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 Details
We have developed the backend application that primarily is an API server. We have also created the UI Prototype for the application.
This challenge is to bring together the UI Prototype and the backend application and create a mobile app using Apache Cordova. You are NOT allowed to use Phonegap for this challenge.
Both the front end and the back end support uploading images. Thus, when you create the app, you have to ensure that this feature continues to work.
We will provide you with a Swagger specification describing the current endpoints that the API supports.
In detail, the requirements of the challenge can be described as:
-
Create a mobile app for Android, iOs and Windows Phones operating systems.
-
Use the provided UI Prototype and backend API server to carry this out.
-
In the prototype:
-
When the user logs in for the first time, they need to be presented with the Settings page. Only after the user has set up their settings, they will be able to see the dashboard page.
-
When submitting a report, the user can take a picture from their device’s camera or choose a picture from their devices library and upload it. Note that there are two separate endpoints for submitting the report and submitting the images associated with the report. Restrict users to upload only images up to 5Mb.
-
When submitting a report, there is an additional API to send an email. This API endpoint needs to be called which will send an email at the designated email address and attach the submitted report along with the images to the mail. Make sure to call this endpoint. You can see the Deployment Guide’s verification steps and use the provided POSTMAN collection to understand how the APIs work.
-
All pages should work. If they need to fetch data from the API server, it should be called. Basically, the app should be ready to deploy to production / app store.
-
The UI Prototype clearly demonstrates which fields are required when filling up the forms. Note the behaviour of certain UI elements such a Submit and Cancel buttons when a required field is not filled and the corresponding error message raised. All of these should continue to work after the app is built.
-
There will be two languages supported in the App - English and French. More may be added later. For now, as part of this challenge, you only need to allow the app to be displayed in French and English - thus, support i18n for the two languages. We will provide you with the French translations which you can use.
-
Authentication
The backend API does not currently have any authentication / authorization yet. You need to sign up for a free developer account in Auth0 and use the database system for validating logins.
All endpoints require authentication. You can follow the existing tutorials and documentation on calling auth0 endpoints to authenticate and authorize.
Ensure that you update the configuration to allow us to insert our own credentials for Auth0.
Operating Systems
You need to support the following Operating Systems:
-
Android 4.4+
-
iOS 8+
-
Windows Phone 8+
Note that Windows Phone is the primary OS here. So you need to ensure that your app works primarily on Windows Phones.
Final Submission Guidelines
-
The backend API server contains a Deployment Guide. Leave this as it is. Create a new Deployment Guide instructing how to build the app and deploy in a mobile device.
-
Make sure that you have provided the deployment steps for all operating systems, if they are different.
-
Make sure that all functions and features work in the app.
- Once you have taken care of all the above, submit your app through the Submit and Review tool for this challenge.