Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Introduction
This challenge will focus on the functionality that allows user to search for a park and view details about that park.

Requirments

Find a Park Screen
-- Use a modal popover to present this page after clicking Buy Tickets from the radial menu (provided). Dummy method is call in ContainerViewController.swift line: 170.
-- Upon loading the page will load the nearest locations returned from a REST service (mock data provided). This will be based on the user’s location, you will need to request this on this page. If the user refuses load the map to the SZ headquarters, no parks will be displayed (location in Global Constants object -- top of appDelegate file).
-- Use Apple Maps to to display locations returned by search, or nearest location(s) as initial.
-- Add a custom search bar (text field) overlaid on the map  call to a REST service (mock data will be provided).
-- Add an expandable table view that lists the parks returned from the search (see data below).
-- Upon expanding the park will see a phone number which should call using the iOS phone app, email should also use the Apple standard mail app when clicked (compose in Mail app not MFComposeViewController).
-- Clicking on Direction should open the Apple Maps app with direction from users current location to selected Sky Zone location. Example (Current%20Location
= current location)
-- Clicking Tickets should push into a new screen in the same MVC that will display the Park Information screen (below).
-- Clicking the star allows the user to favorite the park, this should call a dummy function. Actually functionality is out of scope for this challenge. Mock data will hold state.

Park Information Screen
-- The user should be able to see an image of the park, provided by the mock data model.
-- Favorite and direction icons should be overlayed on the image, same functionality has previous page. Favorite start should toggle (true: filled, false: outlined)
-- Also like the first page, the basic data about the park should be displayed the same as the extended table cell.
-- The three buttons should be ready to push a new screen (call dummy methods) within the MVC but should not be functioning, this is out of scope for this challenge.
-- Special Offers button should pop over a single page modal that displays a special offers page (below).
-- If no Park Campaign in the Park data, then do not display the button.

Special Offers Screen
-- Build this static page based on the mock data provided.
-- Call to Action button should be title based callToAction Name in park.parkCampaign (see Data).
-- Closing this modal should return the user to the Park Information Screen.

Data
-- Mock data is provided in the ParkDataHandler class. A global constant (App Delegate :13) called isMockDataMode is set to true. This will load park data from a local .json file (ParkDataModel/MockData/)
-- To get initial park data call ParkDataHandler.getNearestParkLocations(location: CLLocation()). CLLocation should be the users current location, but in mock data mode will not be used.
-- To search for park data, use ParkDataHandler.getNearestParkLocations(criteria: String). Criteria should be the contents of the search bar, but again will not be used in mock data mode.
-- Review the json file, Park and ParkCampaign class to understand the data.

Setup
-- Send an email to
blainer and harrywynn to request to be added to the Sky Zone team on gitlab if you are not already a member
-- Once added to the team, work off of the Find a Park Challenge branch in SkyZone-R1 (code) and Find a Park Challenge branch in SkyZone-Resouces (design resources)
-- Add blainer and harrywynn as members of your forked repository.
-- Reference the Invision mockups here for navigation flow



Final Submission Guidelines

-- All code should be written in Swift and be well commented
-- Use the workspace setup in the repository for development
-- Code must compile against iOS SDK 8.3 with a target for 8.0
-- Use auto layout and size classes to fit 5s, 6 & 6 Plus iPhone devices.
-- Use storyboards for all views and navigation, please create a new storyboard for this MVC and provide code to access it in the ContainterViewController file. There is an extension to UIStoryboard at the end of the file.  
-- Only portrait orientation needs to be supported
-- Upload your source project as a zip
-- Include your gitlab username and URL of your forked repository in your documentation
-- Provide a video overview of your submission
-- Upon being selected as the winner you will be required to do a merge request on gitlab.

ELIGIBLE EVENTS:

2015 topcoder Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30049707