Welcome prospective Google Summer of Code participants! Check out our DIAL Sub-Org page and our main thread. Please discuss your ideas for the Improve ODK-X Services Login User-Interface project here or in the project slack channel.
Introduction
ODK-X Services is an Android application that provides core functionality to ODK-X mobile apps such as a shared database, file access, and data synchronization to the cloud. ODK-X Services is a core tool that is essential in every ODK-X deployment. Data that is collected in ODK-X Survey, ODK-X Tables, or another application is stored in the database that is managed by ODK-X Services. Services also handles synchronizing that data between the Android phone and the Cloud Endpoint server.
ODK-X Services provides the user interface for a user to authenticate with a cloud server, update system settings, synchronize data between the mobile client and the server, and reconcile data conflicts that happen during the synchronization process. After a few years of field usage, we have gathered user feedback about what is difficult to understand with Services user interface. This project focuses on revising the Services user interface to based on user feedback. This includes simplifying the authentication workflow to be clearer and easier to use. Currently the user credentials are edited by navigating deep into the settings menu, and then authentication is done on a separate screen. The screen to sync with the server is easy to access, but confusing if you haven’t already authenticated. Additionally, the status notifications in the android alert area should be revised.
Services is an Android application written in Java. However, applicants for this project should have a deep understanding of the Android application lifecycle. The authentication workflow navigates this lifecycle in complicated ways.
Github: Services Project and Issue Queue
Skills: Java and Android. Android lifecycle knowledge required
Difficulty: Hard if no Android Java experience, Medium if experienced with Java Android lifecycle.
Mentors: @Vyankatesh, @dexter21, @W_Brunette