Inter-relation between Enketo/KoBoCat/Ona/ODK Aggregator

211 views
Skip to first unread message

Navdeep Singla

unread,
Dec 30, 2015, 7:10:27 AM12/30/15
to enketo-users
Hi All,
I am new to Enketo world and am looking for an offline form engine which I can integrate with my mobile application.

I summary what I am looking for is:-
1. A Drag and Drop editor for users to create forms.
2. Forms metadata (XLSForm) is wrapped with the mobile app we are developing.
3. At runtime forms are triggered and somehow form metadata (XLSForm) is transformed into a a UI on the mobile device. 
4. User enters forms data and data is returned to main mobile app to store in local data store and manage sync with backend service.

I am a bit confused with what roles Enketo/KoBoCat/Ona/ODK Aggregator play in the use case I have explained above.

Any help would be appreciated.

Thanks,
Navdeep Singla
Message has been deleted

Martijn van de Rijdt

unread,
Dec 30, 2015, 11:27:04 AM12/30/15
to enketo...@googlegroups.com
-- edited version of earlier response --

Hi Navdeep,

This might be interesting: https://enketo.org/openrosa

Enketo/KoBoCat/Ona/ODK Aggregate are all based around an XForm format: http://opendatakit.github.io/odk-xform-spec/. XLSForm is merely an easy-to-work-with pre-format that is transformed into the actual XForm format that our data collection tools use (though Ona and KoBoCAT do a little more with the XLSForm format on the server side).

Enketo provides functionality equivalent to ODK Collect. Enketo and ODK Collect don't do anything with XLSForms. They only receive and process the XForms.

In my opinion, it wouldn't make much sense to use XLForms directly in the collection client (nor a CSV or JSON representation of it), because the form logic language of our tools is XPath. This logic language is really the core feature of our ecosystem and the reason why it is so powerful. So far no other popular form format has been created though several groups are trying with JSON (including ODK). It will take years to figure out if one of them will actually make it - form logic is the key, and unfortunately most are basically skipping this most crucial part when designing their sexy form formats... (or do it very half-heartedly).

For your app, you may want to have a look at the open-source Medic Mobile android app around Enketo: http://medicmobile.org/blog/we-built-the-mobile-app-health-workers-deserve.

I hope that helps. Let me know if you have more questions.

Cheers,
Martijn

--
You received this message because you are subscribed to the Google Groups "enketo-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to enketo-users...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


-- 
Revolutionizing data collection since 2012.

Enketo    |    LinkedIn    |    GitHub    |    Twitter    |    Blog

Navdeep Singla

unread,
Dec 31, 2015, 2:51:28 AM12/31/15
to enketo-users
Hi Martijn,

Thanks for your quick response!

Link https://enketo.org/openrosa was very useful. Based on the four pillars of the architecture I have drawn a simple diagram (attached).

Basically for our use (Offline forms embedded in our app for all target devices) we need to split the Build, Collect and Manage/aggregate components and bind them with XForm standard.

I will have a look at the medic mobile app, however do you think the architecture attached is possible (Unconfirmed with ??) especially from from Enketo Collect perspective and how it can be used with Cordova to build an offline app?

With Regards,
Navdeep
Form Engine.pdf

Martijn van de Rijdt

unread,
Jan 5, 2016, 12:15:29 PM1/5/16
to enketo-users, enket...@googlegroups.com
Hi Navdeep,

I don't completely understand the diagram, but it seems like this would work.

You could also have a look at much of the Enketo Express code (which is code around enketo-core). Enketo Express uses indexedDb, so it may be useful if you're using indexedDb or pouchDb in your Cordova app.

There is also OpenSRP which has a built another mobile app around Enketo Core (called Drishti).

(I'm cc-ing the enketo-dev forum as this discussion actually belongs there.)

Good luck!
Martijn

Navdeep Singla

unread,
Jan 6, 2016, 5:14:48 AM1/6/16
to enketo-users, enket...@googlegroups.com
Thanks Martijn!

Navdeep Singla

unread,
Jan 10, 2016, 4:07:29 PM1/10/16
to enketo-users, enket...@googlegroups.com
Hi Martijn,

Quick question - can you please advise which HTML5 framework has been used to build  Enketo (Entry) the online browser based rendering tool e.g. Jquery mobile, Sencha etc.?

Many Thanks,
navdeep

Martijn van de Rijdt

unread,
Jan 11, 2016, 11:23:26 AM1/11/16
to enketo...@googlegroups.com
Hi Navdeep,

Enketo Core tries to not interfere with these choices. It uses basic jquery without any UI libraries. There are just some minor bootstrap remnants (without including the bootstrap library) but those are not activated on touchscreen devices so you are truly free to choose whatever you want for the UI around the forms. My advice is to choose whatever you're most comfortable or interested in. I hope Enketo will one day move into the ReactJS direction, but something more exciting might come along before that happens. I might choose http://www.material-ui.com/#/  for ReactJS if I had to pick one today.

Cheers,
Martijn

Navdeep Singla

unread,
Jan 11, 2016, 12:02:03 PM1/11/16
to enketo-users
Many thanks Martijn!
Reply all
Reply to author
Forward
0 new messages