Notes From Google Summer of Code 2017

Last week marked the end of ODK's first time participating in Google Summer of Code (GSoC). GSoC pairs students with mentoring organizations like ODK for summer internships and you can read more about this great program here. I wanted to take some time to reflect on the experience so that we can continue refining our approaches and processes for future GSoC rounds as well as for other intern projects such as Outreachy.

First of all, a HUGE congrats and thanks to @Shobhit_Agarwal who spent the summer with us. He has been and continues to be a very important member of the ODK Collect development team and the broader ODK community. Read about the summer from his perspective here.

In addition to the improvements that have already gone out, @Shobhit_Agarwal produced a prototype of a different approach to the Collect UI which focuses on forms rather than actions. Please note that this is NOT production ready. If you would like to try it out on a non-production device and provide feedback, you can try this debug APK or build it yourself from his fork. You can install it, try it and then go back to current releases of Collect without affecting your forms. However, I would recommend making sure blank forms and filled out forms are backed up.

Big thanks also to @downey @Neil_Penman @nribeka @wonderchook @yanokwa who defined projects, supported students during the application period and reviewed applications.

Successes :tada:
@Shobhit_Agarwal identified and fixed a large number of issues and bugs related to the Collect user interface. He also safely made big changes to the underlying libraries that open up a lot of new possibilities. He and I spoke almost every day and in addition to having productive conversations, we had a lot of fun along with the rest of the dev community. His presence was energizing and in addition to his core project he also helped refine and improve many processes related to Collect development and releases.

There were a lot of students interested in ODK which is very promising. An impressive 40 completed high-quality applications! Even though sadly they could not all be part of GSoC, they each contributed valuable fixes during the application period. Additionally, they helped troubleshoot and improve contribution guides and open the door for more new contributors.

We were not prepared for the application period! During this time, over a hundred students came to the project needing help, starter tasks, code review and reviews of their projects and applications. This was very time consuming and a bit chaotic. It would have been really helpful to have more volunteers for this part of the program and to spend more time upfront designing starter tasks and dividing up code review. For future such projects, I would recommend that volunteers work within a specific tool to minimize context switching (e.g. I was doing review between Collect and Briefcase and that was a mistake).

All of the suggested projects that we listed turned out to be very ambitious for a 3-month internship. In particular, we underestimated how long it would take to get community feedback and buy-in. I think some of this will be better moving forward because we now have this forum. Additionally, other mentoring organizations have suggested projects that less heavily touch core components to reduce review burden/risk and also structuring projects more loosely with approaches like bug hunts.

For me, the reasons for ODK to participate in GSoC were to get useful improvements for users merged and shipped, to encourage long-term contributions to ODK and open source more broadly and to support a promising student just starting their career. I think all of these goals have been well met!

On a personal note, being a mentor was a deeply rewarding experience and I really look forward to continued collaboration with @Shobhit_Agarwal.

I'll be going to the GSoC mentor summit October 13-15 (another perk of being a mentor!) and I'll report back on that experience on this thread.

I hope the community continues to participate in these kinds of initiatives and that we can grow the number of mentors involved. If you have any questions about GSoC generally or about this summer's project, please ask below. :arrow_down:



Big congratulations to @Shobhit_Agarwal -- I for one hope you've enjoyed your adventure into open source software development, and have learned a lot that you'll be able to take forward into the future.

And even bigger thanks to @LN and everyone else who helped out with mentoring & advising Shobhit, as well as all the other awesome GSoC candidates over the past several months.

I've long believed that participating in Google Summer of Code is one of the biggest growth opportunities for everyone involved, and I think that's been the case here for ODK this first time around. Looking forward to watching how things grow & improve during future involvement. Hooray!

:tada: :computer: :trophy:


:reminder_ribbon: Congratulation Shobhit_Agarwal :reminder_ribbon:

Because of you we are here,

We proud of you, and i hope you get what your hand did for all of us (happiness)

Thank You So Much.

Finally i Knew our Hidden Knight (:dizzy:Shobhit_Agarwal).


@LN, @Shobhit_Agarwal

the prototype is Fabulous


The model of the cards is more than wonderful

in fact i have one note:

if we use multi languages form it will appeare like this


i think if text-view of "form name" shift it down like this


thank you Helene

thank you Shobhit

Best Regards


I was at the GSoC Mentor Summit this last weekend and it was a fantastic experience! 329 mentors representing 149 organizations got together on the Google campus in Sunnyvale to share ideas, celebrate the summer and eat a lot of food with open source legends. It's a great event and I hope others will mentor and get to go to the summit this coming summer and in the future!

I enjoyed sessions on topics like writing good issues for new contributors, code review, GitHub workflows and more. I was glad to share our experience with setting up a bot to help with Fine-grained permissions for Github issues (self-assign, labels) and of course, the folks who make zulipbot were there too. Overall, it was great to see that a lot of the work we've been doing over the last several months to make ODK more approachable is in line with what other projects do.

I had some great conversations with other organizations about the possibility of doing GSoC projects with joint mentorship. In particular:

  • Shogun machine learning library - they've started doing data projects for GSoC where students leverage the library and they are looking for large datasets.
  • Public lab empowers community members to research environmental concerns. They use various sensors that could be supported in ODK (similar to ODK Sensors)
  • LibraryBox is used for ad-hoc file sharing. It could also be used to receive form submissions and make aggregate data available in an offline context.

I shared @Shobhit_Agarwal's work in a 3-minute lightning talk (slides) and it was very well received. Someone came up to me after and said "sounds like you had an exceptional student" and I couldn't agree more!

Some things I am particularly motivated to follow up on:

  • Social/fun/"warm and fuzzy" aspects of the project. How do we collectively keep our energy level high? How do we better recognize community members doing awesome things?
  • Leaning more on tools to help with code review. Can we get CircleCI to comment on pull requests that fail to compile? Can we highlight lines that fail checkstyle so they're easier to fix?
  • Being more deliberate about reflecting on and improving processes (for example, Reflection: release process for Collect, Briefcase, JavaRosa)

Thank you @Nader for pointing out right-to-left language issues! That is an important thing to keep in mind as we make UI changes. I wonder if we could add some automated testing to make sure we don't forget to verify it?

If anyone else has comments or questions about GSoC or the mentor summit, please ask! Believe it or not, GSoC 2018 has just been officially announced so now's a great time to start thinking of project ideas!


Glad you had a great time too @LN! For those of you who were "on the fence" about being a GSoC mentor this past summer, I hope you'll be inspired by @LN's experience & the great work of @Shobhit_Agarwal and sign up as a mentor the next time `round.

And remember, another great benefit of being a mentor is that Google will pay some mentors from each org for an all-expenses-paid mentor summit, which is indeed an awesome experience. Here's a growing crowdsourced photo album of the weekend event, so you can look forward to next year when you're a mentor. :wink:

1 Like