Register
Submit a solution
The challenge is finished.

Challenge Overview

INTRODUCTION

We leveraged the Topcoder community to build this iPad application for a well known client, John Hancock!

The application will be used at a prestigious event like the Boston Marathon, where there will be an ambassador with an iPad (or iPhone) and a professional photographer. As the photographer takes pictures, the ambassador then photographs the image from the back of the pro camera when there is a photo they would like to use in marketing and/or social media. The ambassador then attaches this photo to the release through the app and asks the people that getting photographed to sign a release. The person fills in name and statement that they are over 18, reads the legal copy and signs with their finger.

The business has decided to add functionality to the application so that users can walk up to the iPad and go through the process without the ambassador or photographer present.
In the last challenge, we implemented the design changes into our existing app. In this challenge, we want to hook these up to the backend API

RESOURCES 

  • The Docs folder in the repository contains the reference documentation on how to run this app

  • Linked to updated designs & assets are provided in the forums

REQUIREMENTS

You will be required to integrate the following API. Please make sure to note the following

  • Keep the API server and any auth information/ creds configurable

  • Keep a configurable interval (hours) for storing API cache

  • In the ‘Settings’, please add a button to manually clear cache

The following APIs need to be integrated, please see the provided postman collection for details on the API

A) Get Auth Token
  This should be done on app startup.

- If there’s an error in receiving an auth token, show a modal dialog with an error ‘Could not get auth token, please try again later’.

- If auth token is retrieved, it will be used in subsequent API calls mentioned below 

B) Email Search

 - When the user enters their email (in case of adult), check if the email already exists by calling the Search endpoint

- If existing release is found, the user is informed and exits the wizard.

- If existing release is not found, the user fills in the form following the usual process.

 C) Save Release

Upon completion of the form, the app should POST to the /ereleasesearch endpoint to save the data. The PDF of the release should be sent along with it.
In addition to this, the other legacy flow of the app should NO LONGER FTP the release form, but instead POST to the endpoint as well. 

- If release save is successful, show a confirmation message to user

- If release save is unsuccessful, show an error to user ‘Release could not be saved, please try again later’

Existing Functionality

-- All screens & UI elements must be fully functional

-- There should be no crashes in the app, no overlapping or misaligned UI elements

-- No build warnings or errors when running the project with latest XCode

 

SETUP

-- See the challenge forums for how to request access to the Gitlab repo

 


Final Submission Guidelines

-- Xcode 9.2 project with all screens and functionality as outlined above

-- Code must compile against iOS SDK 11.x with a deployment target of iOS 11

-- All code must be written in Swift 4 and be well commented

-- Upload your source project as a zip

-- Winner will be asked to raise a merge request to the repo

 

ELIGIBLE EVENTS:

2018 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30064175