Register
Submit a solution
The challenge is finished.

Challenge Overview

INTRODUCTION
This is the first 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 building a project consisting of the necessary functions for calling the JIRA REST services.

REQUIREMENTS
You’ll be creating a singleton class and delegate methods within a separate project to demonstrate the services functionality.  This class will then be used for all API communications in the full application.
Include unit tests to validate paameters and outputs of all API calls. Include a sample app that demonstrates all functionality required by the challenge.

API Singleton
Create a singleton class for communicating with the REST services.  Construct the singleton to allow for inclusion of additional API calls in the future. Use NSURLSession and its related classes to make requests and handle responses. Use BASIC authentication for all requests. Be sure to perform network connectivity checks before making any requests.

Implement calls to the following endpoints in your singleton object. Functions for GETs should accept parameters and apply them to the requests if provided. Functions for POSTs should accept the data to be sent in the request.

/rest/api/2/myself
GETs the info for the currently logged in user

/rest/api/2/issue/createmeta
GETs the metadata required for creating a new issue (field ids, names, types, etc.)
Be sure to include “expand=projects.issuetypes.fields” with the URL to retrieve all field definitions

/rest/api/2/issue
POSTs a new issue

Sample App
The sample app should demonstrate:
-- Authenticating a user and displaying their avatar ( /myself )
-- Retrieving the lists of available projects and issue types that can be created ( /issue/createmeta )
-- Creating a new issue based on metadata retrieved in the step above ( /issue )

SETUP
-- Send an email to
harrywynn or lazybaer 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 and work off of the PW_01 branch
-- Add harrywynn and lazybaer as members of your forked repository. 
-- View the README in the repository for API access specifics



Final Submission Guidelines

-- Xcode 6.4 workspace with projects for the API services and sample app
-- Code must compile against iOS SDK 8.4 with a deployment target of iOS 8.0
-- Sample app must demonstrate all required API calls and display the results on screen
-- All code should be written in Swift
-- 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

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30051061