Hacker News new | past | comments | ask | show | jobs | submit login
ODKCollect: Android app for forms, designed for use in challenging environments (github.com/opendatakit)
49 points by huangyz0918 on May 27, 2018 | hide | past | favorite | 17 comments



I'm one of a developer for Open Data Kit. And This is the first open source community that I have contributed to, I have to say, ODK is an awesome place to get start with open source developments and all the ODKers are so warm hearted and cool! ODK can teach many things you don't know and all you need to do is to claim an issue and send a PR!


And it's been great to have you as a developer on ODK Collect. Your RTL contributions to the UI have been a huge win for users!


Open Data Kit is an awesome tool! Our NGO has used it for public health surveys and other data collection applications in the DR Congo where internet coverage is spotty, literacy is low, and transportation is a logistical nightmare. It does exactly what it says on the tin and enables our community health workers to gather data in challenging places with just a phone and extra battery pack. As a bonus, the development community is great as well!

Really glad to see this project getting some attention!


ODK founder here! This is exactly the use case we want to serve and I'm glad to hear it's enabling your work.


The ODK ecosystem (build, aggregate, collect) has been in use for our Western Australian flatback turtle conservation program since 2016, now being used by Dept Biodiversity, Conservation and Attractions staff, community programs and Volunteers across the Kimberley and Pilbara regions. We've captured about 12k turtle tracks/nests in ca 2k hours of logged survey work. Data is ingested into a custom data warehouse, comes out via a RESTful API, is analysed in RMarkdown workbooks with common steps documented in a custom R package.

Widgets for notoriously error-prone data like location and date/time as well as replacing free text with dropdown options where possible made the difference for us.

ODK works really well for us, and the fantastic developer community has been greatly supportive addressing feature requests and bugs (quickest fix: Clint Tseng fixed an ODK Build bug reported mid-workshop within 2h). I'd like to see the industry heavyweights like ESRI being that responsive :-)

Cheers to the ODK community!


ODK founder here. Really glad to hear the tools have worked well for you, and yeah, Clint is awesome!


Yeah,I'm new to open source and really appreciate your post! I'm a bit confused because we can use... you know, many kinds of online tools to build forms and we don't even need a native application! So what's the special feature for this App? I'm very curious about this :)


I work in a form-heavy industry in which field agents can easily be disconnected, so offline is a must. I play with ODK and it's various client tools every few years to see if it offers anything useful, especially above a custom system. I haven't found anything yet. It's relatively easy to make a native app with forms that save to a data file for syncing when online. What's not easy is designing a tight data entry workflow that people will favor over pen and paper in the field. I've come to the conclusion that it's mostly impossible, because pen and paper are pretty awesome. People trying to get work done don't want to deal with: swiping to unlock screens; entering pins; touch input (holding their device in awkward ways so they don't accidentally touch the wrong thing and not turning off the screen so they don't have to swipe and enter a pin again); battery life; risk of damage to expensive equipment; losing an full days work due to a little accident or data killing software update; etc. Mobile devices suck for user interaction, their primary purpose is consumption.

Obviously, data needs to be digitized at some point. In my experience, even though it's duplicate work, users would rather reenter the data when they get home, on a PC, with a keyboard and mouse. ODK does have some decent tools for that, but they're all based on a dead standard, XForms.


I worked as a graduate assistant on a project administering a survey on tablets in challenging conditions. Your points are valid, but we found that we could create a streamlined Enketo (https://enketo.org/) form with categorical, quantitative, and Likert scale questions (minimal and optional free text fields) and the enumerator teams were successful. We ended up using Kobo Toolbox, mentioned in another comment, which mates Enketo as a front-end to the ODK set of tools. Running pilot tests and timing the input of each answer of the survey helped to dramatically streamline it, so that seems essential for using digital tools.

Two major perks to using the ODK type tools - many folk have smartphones with browsers on them, so running ODKCollect or especially Enketo is accessible, and the logged data gets pushed up to a server as soon as possible. The latter point was really useful for us - I spun up a quick app in Shiny (https://www.shinyapps.io/) which would give some plots based on the data collected so-far, and after the first day or two the survey administrators found a hiccup in how one of the enumerators was answering a question (they were incorrectly tagging the locations they were visiting, which would have caused havoc to relabel later!) I think that sold a lot of us on the value of these tools.

Totally agree about XForms. Shame it's not more widely used. I did get a lot of mileage out of using XLSForm (http://xlsform.org/) to write the survey first though.


I worked on a project that built a forms tool around XForms about 4 years ago. It is pretty darn powerful, but finding an engine that can understand all that power and run in all the places offline forms need to run is impossible. Maybe there's something in ODK, I haven't dug that deep into the foundational code, I've only looked at it as a potential turn-key solution.


ODK founder here. The ODK community maintains a Java XForms engine at https://github.com/opendatakit/javarosa that powers a lot of the ODK tools. https://github.com/enketo/enketo-core is a compatible engine in JS.

If you have an idea on how we could make this foundational tech more visible to other devs, shoot me an message!


I didn't do the initial foundational research for the project I worked on, but now that you mention it, I think that was discussed. I think the main issue was that Java really does run everywhere, except iOS, which is unfortunately the most popular mobile device choice. In an enterprise environment that can dictate what devices get used in the field, it's not a problem, just force Android or even Windows on a tablet. In a bring-your-own-device environment, iOS support is a must-have.

On the other hand, bring-you-own-device is a risky business move anyway because App Store rejection is a very real concern. It was a problem more than once for that project.


We want to collect data in challenging environments around the world, maybe some places without network connections. You can download ODK Collect and have a try.


Okey, thanks.


This is a great project for a specific kind of problem - and one that's not the common target for silicon valley. It's hard to get good and useful data in places where connectivity is low. And the (coding and social) logistics of getting that data from ubiquitous non-smart-phones pose interesting challenges that ODK helps address.

It's also run by great people.


Also look at kobo toolbox and kobo collect. They're based off the odk and forhub codebases I think.

Kobotoolbox provides a useful interface for previewing your data and building forms. Also an api for pulling collected data into other platforms


Kobo is based off of onadata, https://github.com/onaio/onadata (which is actively maintained) which was in turn the continuation of formhub (which is no longer maintained).

See this readme https://github.com/kobotoolbox/kobocat for reference




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: