Challenge Overview
Challenge Objectives
- Cordova app - targeting both iOS and Android
- This challenge will build out a skeleton app, with a few screens that we have designs for, pulling data in locally from JSON files. This will lay the groundwork for further development on this application as we get more requirements from the client.
Project Background
- We already have this app in production (version 1.2), but this new version (1.3) is going to be a ground-up rebuild of the app using new plugins and services.
- Future challenges will add more screens and will start to integrate with the client services that aren’t ready yet.
Technology Stack
- This challenge will build a base using the latest stable version of Cordova: https://cordova.apache.org/
- Please don’t do anything odd in the setup that will require one platform or another. Since we’re building in Cordova, we should be able to use the code on Linux, Windows, and macOS. Obviously if we want to build and test on iOS, a Mac is still required.
- There is a requirement for SSO, which will require a plugin from the existing app. This plugin may need some tweaks to get working with the latest Cordova stuff.
Code access
The existing app, for reference, is here: https://gitlab.com/hercules-campus/campus-app
A link will be provided in the forum that will allow you to access this code, along with a test account you can use to login and view the data.
NOTE: This code is provided for reference. We are going to be replacing this app with a new version. The only thing we’re going to be taking over in this challenge is the SSO plugin.
Cordova
The main requirements of this challenge will be to:
- Implement the login flow
- Convert a couple of screens from the storyboard into Cordova, pulling data from JSOn files locally.
Individual requirements
1 Splash screen
Please use the existing splash image from the v1.2 app in Git.
2 Login screen
After the app launches, we will show the 00-Comcast-Campus-App-Sign-In screen from the storyboards. Clicking “Sign In” will take the user through the SSO flow, as it does now.
3 Location List
After the user has gone through the login flow, they should see the location list, detailed in the storyboard on screen 01-Comcast-Campus-App-Location. The list of locations, and all text and images, should be configurable in a local JSON file.
4 Building list
Once the user selects a location, they will go to the building selection screen. This is detailed in the storyboard on screen 02-Comcast-Campus-App-Building-Selection. The top banner image and list of buildings should be configurable in the JSON file. Note that the list shown is for “Philadelphia”. It’s fine to just make up data for the other locations in the initial list.
5 Campus home screen
Once the user selects a building, they should see the 03-Comcast-Campus-App-Home screen. The text and images should be loaded via the JSON file. The 4 main buttons don’t have to do anything at this time - we’ll fill those in in a later challenge.
UI Requirements:
For this challenge, expect that reviewers will test on iPhone SE and newer, including the iPhone X. For Android, expect that reviewers will test on Android 7+. Please ensure your screens react well to notches, cut-outs, and different screensizes for phones.
All fonts and colours are easily accessible in the storyboard, just by clicking individual elements, so please ensure we match that exactly.
If we’re missing image resources, it’s fine to use a placeholder, but please mention that in your README so we can ask the client to provide specific things.
Deployment guide and validation document
Make sure to require two separate documents for validation.
A README.md that covers:
- How to setup Cordova and build the app
- How to run the app in both the Android and iOS simulator
- Documentation for the local JSON file that describes the app data
A Validation.md that covers:
- Validation of the UI and login flow
Validation video / screencast
- A video is required for this challenge, targeting either Android or iOS, or both
What To Submit
- Cordova app with all images needed for the requirements and JSON data
- Updated SSO plugin, if required
- README.md
- Validation.md
- Link to your validation video