Community supported XLSForm drag-and-drop builder

tl;dr I’m interested in making a drag-and-drop (web interface) form builder. Let me know if you are interested in making this a community tool.


What high-level problem are you trying to solve?

  • ODK has excellent documentation around how to create and design XLSForms from scratch, here and here and other sources. For most users this is great - a good tradeoff between ease of use / flexibility for advanced use cases.
  • There is still a user base that find XLSForms a bit intimidating. Whether it’s lack of knowledge of where to look for help, or disinterest in learning something new, or any other reason. At our small NGO it’s a bit of a pain point before embarking on field mapping exercises.
  • ODK deprecated build in 2024, a web UI for designing XLSForms. See related forum post: Build permanently shut down on Feb 1st, 2024
  • Kobo offer FormBuilder within KoboToolbox, a similar web UI for designing XLSForms. We see many people in our community using Kobo (despite the fact we offer a hosted ODK instance for them), primarily because of the simple form builder.

Any ideas on how ODK could help you solve it?

  • This isn’t a request for the ODK team, as the linked forum post suggests it’s not a worthwhile endevour for them to pursue with given resources.
  • Instead it’s a question for the community.
  • At the NGO I work for, we occasionally have software development volunteers. We also have a small tech team that can help coordinate and maintain tools.
  • There could be potential to build a simple drag-and-drop form builder, that outputs an XLSForm at the end, and primarily is community-driven and maintained.

Additional Info

  • A web-based form builder would likely cover more simple surveys, with advanced configuration saved for direct XLSForm usage.
  • The entire XLSForm spec would likely not be covered here - just the most commonly used parts.
  • Initially it probably wouldn’t be compatible with ODK Entity based workflows, but it probably wouldn’t be too tricky to add this.

Key questions: is this something that members of the ODK community actually want?

3 Likes

Just a heads-up, Dimagi also offers a form builder for CommCareHQ, which I believe is JavaRosa/XForms compliant. You can check it out here:
Dimagi/Vellum on GitHub

1 Like

Wow this is really useful to know, thank you @Ronald_Munjoma!

1 Like

I just tested out Vellum, and unfortunately it produces XForm XML that is specific to CommCareHQ :cry:

So it’s not cross-compatible with ODK and other tools. Excerpt from the XML:

<?xml version="1.0" encoding="UTF-8" ?>
<h:html xmlns:h="http://www.w3.org/1999/xhtml" xmlns:orx="http://openrosa.org/jr/xforms" xmlns="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jr="http://openrosa.org/javarosa" xmlns:vellum="http://commcarehq.org/xforms/vellum">
	<h:head>
		<h:title>Untitled Form</h:title>
		<model>
			<instance>
				<data xmlns:jrm="http://dev.commcarehq.org/jr/xforms" xmlns="http://openrosa.org/formdesigner/AFFB8E61-364D-44B4-9E91-35CB61C12054" uiVersion="1" version="1" name="Untitled Form">
					<test />
					<choice_question />
					<take_a_photo />
				</data>
			</instance>
			<bind vellum:nodeset="#form/test" nodeset="/data/test" type="xsd:string" required="true()" />
			<bind vellum:nodeset="#form/choice_question" nodeset="/data/choice_question" required="true()" />
			<bind vellum:nodeset="#form/take_a_photo" nodeset="/data/take_a_photo" type="binary" required="true()" />
			<itext>
				<translation lang="en" default="">
					<text id="test-label">
						<value>test</value>
					</text>

Such a shame, as I was excited to see this!