Challenge Overview
INTRODUCTION
This is the fourth in a series of iOS challenges to develop a mobile front end for submitting issues to a JIRA ticketing system. This challenge will focus on implementing QR code recognition.
REQUIREMENTS
You’ll be building out the Xcode workspace in the repository that will be the base for the full implementation of the app. Develop the project while keeping in mind the final UI will need to be applied to these screens. Include the following screens and functionality in your submission.
Login Screen
This should be a basic screen for entering a username and password, as well as the option to scan a QR code to have this information automatically populated in the appropriate fields. Include a button and attached functionality for logging in via the REST API. A successful login should navigate the user to the New Issue screen.
QR Code Recognition
External partners will be given a QR code to scan with the app that will contain:
-- User account (login ID)
-- Password (may not be present)
-- Group name (may not be present)
The QR code will contain an AES256 encrypted JSON representation of this data (example here). Once the QR code (example here) has been scanned, the app will need to:
-- Decrypt the data embedded in the code
-- Extract the above account information
-- Place the data in the appropriate fields on the Login Screen
The encryption key (located here) should be stored in the app’s configuration in such a way that will allow it to be easily changed in the future.
SETUP
-- Send an email to lazybaer or harrywynn and request to be added to the Project Werbung team on Gitlab if you are not already a member
-- Once added to the team, fork the repository if you haven’t already and work off of the PW_04 branch
-- Add harrywynn and lazybaer as members of your forked repository.
-- View the README in the repository for API access specifics and resources
-- Use the example QR code assets in the Resources repository for testing
-- Reference the sample app in the REST API library repository for example usage
Final Submission Guidelines
-- Updated Xcode 6.4 workspace with all screens and functionality as outlined above
-- Code must compile against iOS SDK 8.4 with a deployment target of iOS 8.0
-- Develop for iPhone size classes, with orientation locked to portrait
-- Use storyboards for all views and navigation
-- All code should be written in Swift
-- Include unit test coverage for challenge functionality
-- Upload your source project as a zip
-- Include your Gitlab username and URL of your forked repository in your documentation
-- User with the winning submission will be required to do a merge request in Gitlab