ODK: New Widget Framework for Collect

Hi all! I’m Saumia Singhal, a final year student at IIT Roorkee, India. I have been accepted as a GSOC 2020 student. I’ll be working on updating the widget framework for the Collect App of ODK Community.

I will be using this topic to post about my work progress.

I would like to thank my mentors @jeff.beorse and @seadowg, who helped me in writing the proposal.

I’m really excited to work with ODK during the summers.:smiley:


[Community Bonding Period] Week 1:

During the first week, I had the first call from my mentor @seadowg. We discussed the proposal all over again, focussing on the deliverables, mentioned in the proposal. We are yet to decide on the first widget to start the work with.

@seadowg suggested that I should take a course and study more on TDD (Test Driven Development). I’m really excited to work for the first time as a TDD developer. Currently, I’m carrying on with my work on the issues that I was already involved with before getting selected for GSOC. What new is, that this time, I’m trying to come out with proper tests for whatever new code I add to the already existing codebase.


[Community Bonding Period] Week 2:

Last week, me and my mentor @seadowg, decided that I should first finish off the dialog issue and then start my work by writing the new framework for non-heirarchical widgets.

All my pull requests that direct the dialog issue are listed here. Apart from that, I shifted the UI of the URL widget to xml file and wrote tests for the same. I have opened a draft PR for the same. Next, I will discuss with my mentor about the test coverage of the widget, and most excitedly how much we can iterate over the UI. :smile:

We have decided that the month of May would be the learning phase for me. So, we plan on doing a TDD exercise using ping pong pairing. Really thanks to @seadowg, for such engagement.


[Community Bonding Period] Week 3:

This week, I started the TDD exercise with my mentor @seadowg. The purpose is to get me familiar with TDD so that I can implement it while I am rewriting the widgets of Collect.

I worked on reworking the Geowidgets and will be opening a draft PR for the same for later discussions. Meanwhile, as everyone is excited about the new release Collect -v1.27. I also worked on some side issues and submitted PRs.

1 Like

[Community Bonding Period] Week 4:

This week, I started my work ahead on expanding the test coverage of URL and Geo Widget. Here you can find my draft PRs for URL widget, and for Geo Widget. My mentor @seadowg reviewed my PR, and suggested how can I improve the tests.

We are still working on the TDD exercise, and it is helping me a lot. We decided to have a design review for the URL widget next week, as it would be great to have some UI modifications in widgets in Collect 1.28.

Everyone in the community is very excited about the realease of Collect 1.27, and its ever increasing reach to users, all over the world! :smiley: