usds/us-forms-system

Form builder

Closed this issue · 5 comments

Is your feature request related to a problem? Please describe.
Writing JSON by hand can be hard

Describe the solution you'd like
A UI to design/build a form, like google forms has

Describe alternatives you've considered
N/A

Additional context
Just wanted to throw the idea out there in case it hasn't already come up. I worked on something like this a couple years ago called form-designer (demo). I was going for a Google Forms-style edit-in-place experience. It's just a proof of concept, and it uses an simple invented form schema, but just thought I'd share in case you're interested. Curious if you've considered something like this?

I'd definitely thought about a visual form builder! It could be a one-time tool to get people going quickly on a form, generate a JSON file, and they use the JSON from there. Or, a super smart tool could let people continue to work in the visual part but also embellish with non-visual stuff and not clobber it in the resulting JSON file.

As for when or whether we do one, we're coming to the end of our Phase I goals and will be starting to think about where to go from here. One of the questions is target audience. For example, are we aiming for React programmers to be the intended users of USFS, or do we want to make it easier for non-technical domain experts to create forms? Can we create a layered architecture to address different audiences and let people pick what parts they need? That sort of stuff. A visual form builder seems like a good thing to discuss.

I still love this idea, it would be good to do on top of a new implementation though.

Just wanted to mention GOV.UK's form builder here for posterity: https://github.com/DEFRA/digital-form-builder

oh my goodness that is like the coolest thing I have ever seen! thanks for sharing.

Wow, that does look good! Definitely worth a look.

Also, I recently discovered form.io which has a visual builder and a server backend service. Much of it is BSD licensed and does a lot of what I envisioned a redesign to do. It can target different frameworks (React, Angular, plain JS) for example. I have a feeling there is some good prior art out there that we can build from, rather than creating something from scratch.