Challenge Overview
Welcome to the XPrize Visioneers Native iOS App API Integration Part II challenge.
In the last challenge, we hooked up some APIs to the iOS app prototype built earlier. The code is available on our Github repository (request access via forums). Now, we want to hook up the remaining backend API
Challenge Requirements
In this challenge, you will use the existing app codebase which implements the iOS app prototype and has the following API already integrated.
-
Login
-
Sponsor Dashboard
-
Program Stats
-
Payment Information
-
Upcoming Activities
-
Program Team
-
Timeline
-
Timeline Event
-
Sponsor Prizes
-
Payments
-
Cash Status
-
Team Members
-
Program Team Member
The scope of this challenge involves fixing some issues and integrating the pending API
Issues to be fixed
Login Screen
-
Remove the Invitation Code field from login screen
-
The button ‘Re-send an invitation code’ must be enabled only if the email field is filled.
-
Implement email field validation for email
-
There is a bug that in some cases, if usersername and password but the login button is still not enabled
Other Screens
-
User should switch between sponsors by clicking the inverted arrow - https://cl.ly/2K2s311V420Z
-
Selected prize is reset when going around tabs - it should be preserved
-
Profile Bio is not integrated, it should be fixed http://take.ms/6hMXu
-
Format is incorrect http://take.ms/qAIYl (should be 1.5k, 4.5k)
Offline Handling
-
There is a field called isEmpty which currently shows how screens look in offline mode. Currently, most screens show a message ‘Resource Not Found’ when user is offline. Instead, it should show the offline screen as shown in the isEmpty true case
-
iPad - switching back to original prize doesn’t refresh all sections: http://take.ms/ZiZiq, actually only timeline is affected by switch back and forth
Integrate Pending API
You need to integrate the pending APIs on following screens
- Messages
- Messages by Sender
- Message Filter
- Sponsor Profile
- Financial Dashboard - Actuals vs. Budget - Quarters
- Budget Summary
- Expense Details - Actual Expenses
- Expense Details - Compared to Budget
- Notes
- Actual vs. Budget - For Quarter
- Expense Details - Actual Expenses for Quarter
- Expenses Details – Compare to Budget - Month
- News - Upcoming Activities
- News - News Article
General Notes
NOTES
-
Both iPhone and iPad screens are in scope. There should be NO hardcoding of data on respective screens once above mentioned APIs are implemented.
-
We have already run the corresponding Android challenge last week. The code for that challenge is available on our Android Github repo (request access via forums) so you can check it for reference purposes.
-
All source code changes must be well commented and MUST follow existing coding conventions
-
If you face any API issues or have doubts related to request response for any API, please raise it in the forums so it can be clarified by client.
-
The app works in both portrait and landscape modes
-
App must support 2x and 3x assets and retina devices
-
App must support iOS 10.x
-
All code must be written in Swift and the project must use latest XCode version. Do not use Objective-C or Bridging approach
-
Please ask in the forums if you wish to use any open-source third-party libs to ensure there are no license violations
Final Submission Guidelines
- XCode Project with all source code that addresses the requirements
- Deployment guide with configuration & verification steps. Describe all config params and include steps to run
- Demo video (Mandatory and will be scored down if not provided)
- Winner will be asked to raise a merge request to the repo