Challenge Overview
NOTE - This challenge has shorter phases and a fixed reviewer fee.
Welcome to the XPrize Visioneers Native Android 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) fixing the following issues
-
Remove the Invitation Code field from login screen
-
Clicking Program Stats on dashboard must take the user to Program Stats screen
-
Prize image must be set using the PrizeImageURL attribute in the response to https://xpapi.azurewebsites.net/api/sponsor/<id>/prizes call
-
Filters need to be implemented on Financials screen as shown in iOS app
-
Profile screen is broken - it is not displaying profile params as received in response to the api/sponsor/Identity/User call
-
Currently back navigation is broken, pressing back on any of the tab screens causes the app to exit. We do not want the user to exit the app by pressing app on any of the screens.
-
While the authentication is implemented, the webcrawling method currently used is not a clean approach. We want to replace it with the proper approach of a custom protocol/ request sequence as implemented in iOS app
-
There should be no crashes in the app for any existing or new code changes
-
Messages -> We need to build a detail screen for the message. This involves
-
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')
-
Tapping a message on above screens must show the message on another detail screen which shows the following
-
Full message body (body attribute in API response)
-
Sender (as shown in list view)
-
Date
-
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)
10. Please test the app for both prizes Glboal 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 (currently shows NaN) on the screen11. 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
12. change the label on the bottom tab from “Impact” to “News”
13. change the label “expenses details” on the financials screen to “expense details”
14. when you click into the user profile in the upper left, there is an option to “switch to public area” - please hide this option
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.
General Notes
Note the following :
- The app remains locked to portrait mode
- We’re open to using Retrofit, Volley and okhttp. If you need to use another library/ framework, please ask for approval in the forums to ensure there are no license violations
- Make the Server URL configurable, do NOT hardcode any parameters directly in your code
- Make sure all your code is well-documented using Javadoc comments. All public methods and attributes must have valid Javadoc comments.
Final Submission Guidelines
- Android Studio project
- 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 on the repo