Challenge Overview

INTRODUCTION

This is the third 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 dynamic form generation.

REQUIREMENTS

You’ll be building out the stubbed 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.

New Issue Screen

This should be a basic screen that is dynamically generated based on the metadata returned from the REST API for the selected issue type. Include fields for selecting the project to POST the new issue to and the issue type. Dynamically generate the rest of the form based upon these two selections. Include a button and attached functionality for POSTing the new issue.

Dynamic Form Generation

Key functionality of the app is to allow the user to submit tickets from their device.  The forms for submitting these tickets are dynamic in nature, and may change at any time given the setup of the JIRA system.

Build a utility class for generating controls for each of the possible field types:

Standard JIRA Field Types
-- string (free text)
-- issuetype
-- project
-- user

Custom JIRA Field Types
-- textfield (free text)
-- multicheckboxes (multiple selection checkboxes)
-- cascadingselect (select with child select)
-- radiobuttons (single selection radio style)

The utility class should accept the response from the createmeta API call and use it to dynamically build the fields necessary to generate the complete form. Fields should be displayed on screen in the order they were presented in the response from the API. Use placeholder assets where necessary (ex. checkboxes, radio buttons) as they will be replaced with the final UI.

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_03 branch
-- Add harrywynn and lazybaer as members of your forked repository.
-- View the README in the repository for API access specifics and resources
-- 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

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30051220