Register
Submit a solution
The challenge is finished.

Challenge Overview

NOTE - This challenge has shorter phases and a fixed reviewer fee.

 

Welcome to the XPrize Visioneers Native iOS App Resources Implementation & Bug Fixes challenge.

In the earlier challenges, we’ve built the various screens for this app and then hooked it up to the client API. The code is available on our Github repository (request access via forums). Now, we want to implement the pending screen for Resources and fix some issues found in client feedback.

Challenge Requirements

 

The scope of this challenge involves

 

A) Fix the following issues (Both iPhone & iPad)

  1. Remove the Invitation Code field from login screen (already done)

  2. Profile screen is broken - it is not displaying profile params - show first name, last name, email from API response

  3. Messages -> We need to build a detail screen for the message. This involves

    1. On existing message list pages - https://cl.ly/1y2k3U1C2v1k and https://cl.ly/3S3p1B1Y1l2p - it should show the 'subject' in the response from API (not 'body')

    2. Tapping a message on above screens must show the message on another detail screen which shows the following

      1. Full message body (body attribute in API response)

      2. Sender (as shown in list view)

      3. Date

      4. Show back button top bar

We don’t have a separate design for this message detail screen but please follow the existing Terms and Conditions screen for this. If an unread message is tapped, it must also remove the unread indicator by calling the appropriate API (that’s already implemented)

4. Please test the app for both prizes Global Learning & Google Lunar Xprize. The app should implement No_Resources and No_Messages screens as shown in design. If an element value is null, do NOT show any value for it on the screen

 

5. From the messages screen, when you click on the program team person, it should not filter on the messages from that person, but should pull up that team member’s detail screen - like it does from the dashboard

 

6. change the label on the bottom tab from “Impact” to “News”

 

7. change the label “expenses details” on the financials screen to “expense details”

 

8. when you click into the user profile in the upper left, there is an option to “switch to public area” - please hide this option

 

9. The spacing appears to be uneven between the total budget, spent budget and remaining budget numbers on the financial screen - https://cl.ly/2M1o1E360K03

 

10. Hide the Skype button on the team member detail screen and re-center the phone and email buttons under the picture

 

11. On the payments detail screen, the design calls for a section for “expected” payments and a section for “received” payments.  The field in the api called “isbudget” should be used to distinguish whether a payment is “expected” (“isbudget” = True) or “received (“isbudget” = false).  Currently all payments returned by the api are showing up as “received” and this is not correct.

 

12. When you use the filters in the upper right on the financial details screen to change quarters, we get a screen that says “no resources” even though there is data in there for the quarter we chose

 

 

B) Implement the Resource Screen

This screen will be implemented by integrating with Box.com. Further details are available via challenge forums for those who register.

C) Fix the following issues (iPad only)

 

Portrait Mode

1.     On dashboard screen in the Timeline section, the displayed timeline changes based on if you hold the iPad flat or upright.  The behavior should be that the timeline is locked horizontally when in portrait mode.  The timeline should not display vertically when the iPad is laid flat.

2.     User Profile Screen – After clicking “Done”, it leads to a “No Resources” screen.  The intended behavior should be that it takes you back to the Dashboard screen.

3.     Dashboard>User Profile>XPRIZE Social Links –XPrize logo should be in white.

4.     In the user profile section.  Hide the option to “Switch to Public Area”.

5.      When I login, and then logout, a “No Resources” Screen pops up before logging out. When I try to log back in, it won’t allow in.  An error message pops up with the message “Login Failed.  No network connection”

6.     In the user profile, when you attempt to add a picture, it doesn’t save it.

7.     In the program team profile detail page, please hide the Skype button.

8.     On Impact screen, the banner flashes when moving the iPad from flat to upright position.

9.     On Impact screen, hide the “Take Part” call to action.

10.  On Messages Screen – The filter button is non responsive.


Landscape Mode

 

1.     On dashboard screen in the Timeline section, the displayed timeline disappears when the iPad is laid flat.  In this scenario, the Upcoming activities banner expands to take up the space.  The behavior should be that the timeline is locked in place.  Also when the iPad is laid flat, you cannot scroll down to the bottom of the page.

2.     User Profile Screen – After clicking “Done, it leads to a “No Resources” screen.  The intended behavior should be that it takes you back to the Dashboard screen.

3.     Dashboard>User Profile>XPRIZE Social Links –XPrize logo should be white.

4.     In the user profile section.  Hide the option to “Switch to Public Area”.

5.     When I login, and then logout, a “No Resources” Screen pops up before logging out. When I try to log back in, it won’t allow in.  An error message pops up with the message “Login Failed.  No network connection”

6.     In the user profile, when you attempt to add a picture, it doesn’t save it.

7.     In the program team profile, please hide the Skype button.

8.     On Impact screen, the page layout and the banner changes based on the if the iPad is laid flat or upright.  The behavior should be that the page layout is the same whether the iPad is flat or upright.

9.     On Impact screen, hide the “Take Part” call to action.

10.  On Messages Screen – The filter button is non-responsive.

 

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

ELIGIBLE EVENTS:

2017 TopCoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30057673