Challenge Overview
NOTE - This challenge has shorter phases and a fixed reviewer fee.
Welcome to the XPrize Visioneers Native Android App API Integration Part II challenge.
In the last challenge, we hooked up some APIs to the Android 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 Android 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
A) Fix the auth flow - Currently, the app uses browser for oAuth flow. This is NOT correct - the app must use the native login screen and must implement the custom protocol xpf:// in order to properly redirect the user to the landing screen / dashboard once they login successfully (hence xpf://redirect is the default URI in the oAuth2 settings). For this
- Add a password field below login field on the login screen
- Make sure the password field is masked
- Clicking Login button on the native login screen must trigger the oAuth flow as described above (without requiring a browser)
B) Integrate the pending APIs on following screens
- Messages
- Messages by Sender (This needs to be handled on UI as well, see iOS app on how this needs to work)
- 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
C) Fix the UI on following screens.
Timeline on dashboard
- The timeline on dashboard must be shown like this - https://cl.ly/0l2T330W3F0l - It is shown like https://cl.ly/1M460I2m0f47
- The dots must be connected
- All past events must be shown in gray, all current and future events must be shown in yellow
D) Implement graph transitions as in iOS App. Please request access to iOS app via the forums.
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