Challenge Overview
1.0 - Challenge Overview
Welcome to the Quick Single iOS assembly challenge! In this challenge, you need to build iOS functionality for an existing app that allows users to place a Quick Single bet via a simple pop up window. The end results needs to be completed code ready for demonstration and usage.
1.1 - Project Overview
The client for this project, William Hill, has a system that allows users to place sports bets. They would like to expand this system and build functionality to allow users to place a “Quick Single”- a pop up screen that enables a customer to place a pre-defined bet on the team linked from the Top Bets screen.
Quick single is a faster way of placing single bets on mobile devices. When invoked, customers are presented with a small pop up which contains all information needed to place a single bet without access to the main app's bet slip.
1.2 - Competition Task Overview
For this challenge we need you to build out the Quick Single functionality and screens. This includes building a pop up screen that enables a customer to place a pre-defined bet on the team linked from the Top Bets screen. William Hill will supply a login component to provide the quick single screen and the necessary data to feed into the screen. The Accounts API will be used to check the customer’s available balance and the bet will be placed via the Bets API. A confirmation of the bet placed will be displayed and a generic error handler dialog will be provided.
To help take the pain out of managing authentication and sessions, the client has built a login component for iOS that encapsulates UI and business logic. This component can be used by developers to help create further components. Details about this Login Component, and the source code to download, are available via a link in the attached PDF file.
The flow of the Quick Single functionality is detailed on slide #6. A list of High Level User Stories is also included on slide #9.
Additional details, including the basic screen designs to follow, are included in the attached PDF file.
1.3 - Technology Overview and Requirements
- iOS 7 (native app)
- Xcode (latest version)
- Objective-C: Code will be written in Objective-C and conform to Apple’s code standards and architectural guidelines
- The following guidelines will be followed in order to make the components reusable:
- Application target - A sample app which loads and demonstrates the use of developed features
- features will be implemented as reusable classes, data-structures and objects in an independent library or framework
- Any and all classes in the library should be prefixed with WH
- The front-end code should be decoupled from the API interactions so that it works with another API if need be. Use objective C protocols to define an API abstraction.
- All the API endpoints URLs should be externalised into a plist configuration
- As part of the code developed unit tests will be included
- The produced code should comply to platform best practices and coding conventions
- Code will be delivered under source control (to be determined by WH) in the form of fully documented classes.
1.4 - Documentation Provided
Documentation that will be provided to registered members:
1) Requirements PDF: Challenge details, requirements, and screen designs
1.5 - Testing
As part of the code developed unit tests will be included.
Final Submission Guidelines
A complete list of deliverables can be viewed in the TopCoder Assembly competition Tutorial at: http://apps.topcoder.com/wiki/display/tc/Assembly+Competition+Tutorials
Below is an overview of the deliverables:
- Working iOS app (including source code) that covers all requirements
- A complete and detailed deployment documented explaining how to deploy the application including configuration information.
- Unit tests