GSOC 2017 with Open Data Kit!

Shobhit Agarwal
Aug 27, 2017 · 4 min read

This summer, I was quite fortunate to work on the Collect — Improved User Experience project as part of the Google Summer of Code 2017. I’d like to take a moment now that the program is over to summarize what I’ve done, recall the many things learned over a plethora of successes and failures, and talk about future work to be done in the space.

The proposal for the project can be found here

https://opendatakit.org

Open Data Kit (ODK) is a free and open-source set of tools which help organizations author, field, and manage mobile data collection solutions. In addition to socioeconomic and health surveys with GPS locations and images, ODK is being used to create decision support for clinicians and for building multimedia-rich nature mapping tools.

Project:

Collect — Improved User Experience

The main aim of this project is to rethink all the components of the app and create a design that is more user friendly. This would not only provide the users a fresh experience of using the app, but also make the task of data collection more efficient.

MY MENTORS:

Hélène Martin, Yaw Anokwa, Kate Chapman, Nyoman Ribeka

The coding part of the project was done in following order:

  1. Migrating the code to the latest android support library
  2. Improving the UI/UX of the Settings
  3. Improving UI of the widgets
  4. Redesigning form hierarchy
  5. Improving UI/UX of other elements like Search View and Sort Dialog
  6. Developing a prototype for the form based design

Commits:

  • masterChanges that were clearly an improvement and didn’t required re-training were directly merged into this branch
  • ui-refreshChanges that were improvements, but needed a little verification from the end-users were merged into this branch
  • form-based-designThis contains prototype of the app in the form-based-design and many other features that are too diverse from the current state. It is for demonstrating that how the app would look and feel after the complete makeover.

Issues and Pull Requests for major features:

Changes merged to master branch:

  • Migrating to Android Support Library (#493) (#912)
  • Redesign settings (#1048) (#1101)
  • Use bottom sheet dialog for sort menus (#1039) (#1242)
  • Improve the UI of search bar (#1287) (#1286)
  • Improves url widget (#1174)
  • Improves label, list and list multi widgets (#1166)
  • Improves spinner widget (#1165)

Changes merged to ui-refresh branch:

Other contributions apart from the project scope:

  • Bug fixes
  • Reviewed PRs
  • Improved code quality

LISTING OF ONGOING WORK:

FUTURE WORK:

  • New splash screen
  • Intro screen for introducing the app to new users
  • Adding animations to the various elements (entry/exit of screens, populating of items in RecyclerView) and other using material guidelines
  • Using a background service for improvement of performance of the app

CHALLENGES FACED:

I had never worked with such a huge code base until now. So it was a major challenge for me to not break the existing code while trying to make major changes to the code. I particularly remember the fight I had to put up against the javarosa library as it does not have any documentation nor the creators were available for discussion.

Lessons Learned:

Obviously, I gained a lot of technical knowledge from other members of the community as well as while working with the code. But I also learned some general advice that I will continue to follow in the future as well.

  • Be sure to make your thinking visible to other fellow developers
  • Try to communicate as much as you can with community members, both developers and users
  • Never assume anything is easy. While writing the proposal I assumed that the complete revamp of the UI will be fairly straightforward. However, making it globally acceptable required much more. As a result, we had to change the course of the originally proposed timeline and modify it accordingly. Thus, it’s important to be flexible and willing to change your work priorities.

CONCLUSION:

Working with Open Data Kit was my first experience with open source software development and I really enjoyed it. I learned many good coding practices, dug deeper into the Android framework, code refactoring, etc. Contributed to a very worthy cause and worked with real customers and people from various parts of the world. It was a very enriching experience, which I intend to continue participating.

I would like to thank all community members of ODK and particularly Hélène Martin, my mentor for making this happen. Of course, thanks to the staff of GSoC.

)
Shobhit Agarwal

Written by

Android Developer | Open Source enthusiast | Wants to make a difference

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade