Form Creator - How to Make?

Hey fellow wewebbers, I am trying to figure out a way to add a feature to my app that I think users will love, but I’m not 100% sure on the approach I should take.

Basically, I want to allow users to create forms themselves, and then have other users fill them out. So, this would require:

  • An interface through which users can create new questions
  • The ability for a user to select the type of question (short answer, long answer, multiple choice, ratings, for example)
  • Connecting the collection of questions
  • Creating an interface through which users can ANSWER those questions
  • The ability to submit answers to those questions in the backend

Right now, I’m thinking of doing this on a question-by-question basis, but using a table reference to “link” questions together into a “form”. Then, I am imagining using a collection list to display the “form” using filters to only display the questions that belong to a given form. For the different types of questions, I am thinking I’ll have to include all four input fields (short answer, long answer, multiple choice, ratings) on each collection list item, but selectively display one based upon the type of question listed in the database. That feels a bit clunky, but I can’t think of another way.

Any ideas?

1 Like

@kyanaloe are you open to integrating an already built solution? Something like formstack or another software hippa compliant that you may be able to simple build an integration for.

FormStack has an API already built to create forms. The heavy lifting might be done and its hippa compliant.

1 Like

I echo Kevin’s sentiment—it might be easier to integrate a 3rd party form creation API than to try to build all of this logic from scratch.

In your case, I might explore Typeform’s and their Create API might be a cheaper alternative to Formstack to explore.

For what it’s worth, a project I’m currently working on will need similar form creation abilities in the future, and I plan to go with Typeform.

1 Like

Hi @kyanaloe I just created a typeform clone that you might be interested in checking out as inspiration! DM me on twitter if it sounds interested!! @im_chadsmith

1 Like

@chadsmithclt tried dm’ing you on twitter but it said you’re not able to be DM’d; very interested in learning more about what you built and seeing if we can use it for allowing our event organizers to ask sponsors for info

Thanks for reaching out @Matthew - Can you try again, just opened my DMs. Just finished ChatGPT integration for question and answer drafting. Would love your input

Hey Chad! Was wondering if you could provide any insight if this was using a 3rd party API or you built this all natively in weweb + your backend?

Hey Chad! Was wondering if you could provide any insight if this was using a 3rd party API or you built this all natively in weweb + your backend?

Hey @neelsarode ! For the screenshot above, it was completely build on WeWeb and Xano (Airtable at the time). I didn’t use any 3rd party API’s apart from OpenAI

Awesome dude! Would really appreciate if you could give me any insight onto that - unfortunately don’t have twitter to reach out through there :confused:

Tables:

  1. Forms
  2. Sections
  3. Questions
  4. Question Types
  5. Question Options
  6. User Responses

What I did was create a Project that contained multiple section. Each section then had multiple questions inside of it.

I chose to make questions types its own table so that I could control things like if it was text entry, multi-select, single select, etc… This gave me more control over how the interaction could work on the UI.

Question Options were their own table and linked to the corresponding Question selected on the UI so that when the user added a new Option, they would be related. As the user clicked through the questions, I would then load whichever options were associated to that question.

This is brief but hopefully it helps! Happy to answer any specific questions :slight_smile:

1 Like

This is great! If you ever had time, I would love to see a video on how this was done and how you dynamically display the relevant inputs!

Figured out on my end how to accomplish it! Im using only normal text inputs for the forms though, no different form field types - if you want to see how i set it up let me know Micah! Im sure there’s a more efficient way to do it but i can show you how i did it.

1 Like

Hi, that is awesome! can you please show me how you did it ?

Hey @msheikh94 here’s that explanation: Dropbox Capture

1 Like

Thank you so much! that’s awesome!