Dynamic web forms: find a builder or make from scratch?
January 16, 2014 11:39 AM   Subscribe

I have a couple web forms I'd like to make: one for a professional purpose, another for personal use (though that could exist as a program or an app that I don't know about). Is it better to find a service that will allow you to build conditional forms, or can they be made from scratch with some ease?

Here's generally what I'd like:

Form 1: an application for a program my division oversees, to be filled out by people with a range of knowledge, so there should be some ability to provide tips. I currently have a Word document that is locked except for certain fields to fill in, but it's otherwise a pretty dumb document. I'm imagining something that shows you fields one at a time, which you can revise if you don't know the information now, and certain fields would have conditional logic (example provided by a company that offers such form-building capabilities, found at random, and not an endorsement for that product). I was thinking the end product should be a static form, but I realized the information could be compiled into a database, so you could generate other reports from this application process.

Because it is an application that will be received by a government agency, it would be best if the form builder could be fully audited, and reside on a server my agency owns. I realize the ability to recall a form and revise it adds complexity to the system.

Form 2: more of a note-taking system I envisioned while jotting down things in a meeting, this would probably populate a database of some sort, allowing me to go back through the notes, requirements, and ideas I have jotted down, view by date, or even by meeting (a sub-section of a date?). For example, In a staff meeting, I note the following three things:
1) I need to fill out a travel request form by tomorrow;
2) I should talk to Person 2 about setting up a sub-committee on Foo before February 10th;
3) I want to find a new banana bread recipe.
The first item would have top priority, be flagged as "travel/training" and have a due date. The second would have medium priority, be flagged as "Foo," and have a due date. The third item would be flagged as "food" and "personal."

How hard is it to code dynamic forms? Are there programs you can get (free or not) that would help you build the forms to run on your own systems? And how do dynamic forms usually run? Or is this something that has been addressed by more professional web developers and off-site services? And are there apps that do what I want for form 2? If so, I have Windows (Vista!) laptop at home, a Win7 computer at work (where I can't install anything, but I can run portable apps), and an Android smarphone plus a Kindle Fire tablet.

If it does take some programming skill/learning, I would like to learn more of programming, and neither of these are things I need in the next month, but general things I'd like to have in the next year.

Last thing: I'd prefer personal experience or knowledge instead of random things you've found online just now, because I have seen some listed form builders (example: Mashable list of 5 from 2012). If it comes to that, I'll go through things people find and look for more information on those services.
posted by filthy light thief to Computers & Internet (8 answers total) 6 users marked this as a favorite
Making the forms is pretty easy. Passing data around is much less easy. I'm not sure what services are best for hosting dynamic forms yourself, but I think it would probably take you awhile to learn enough to do this from scratch.
posted by nosila at 11:48 AM on January 16, 2014

Gravity Forms. Period.
posted by phaedon at 12:04 PM on January 16, 2014

A designer friend of mine who prefers not to code has had good luck with Formstack.

However, if you don't have a deadline and are curious about programming, building a system that moves user input into and out of a database via a web front-end is the ideal first project.

It is not trivial, but if you find the challenges rewarding to complete it could very well hook you on developing an increasingly valuable skillset.

There are obviously many (many MANY) ways to get started, but I'll go ahead and get the ball rolling by suggesting you look at Django.

It's heavily built on the concept of forms, abstracts away much of the nastiness of databases, and is written in Python—which is a great language, and an especially great first language.

The Django tutorial assumes a knowledge of Python, HTML, and basic HTTP fundamentals; however I pushed through it before I knew Python and found it a decent introduction. Good luck!
posted by Mr. Anthropomorphism at 12:13 PM on January 16, 2014

For the first use case, many companies have taken a stab at making it easy to construct these lightweight business applications over the years, but nothing has really stuck in a big way, especially for on-premises deployment. I suspect there's a lot of these written in Visual Basic with Word or Excel. I did run into somebody who is still making a living in part doing Filemaker projects, which I had no idea still existed but actually might be quite a good solution for your problem. We often whip up something quick in PHP. The article you link to has quite a few of the online form builders i've seen/used. They're quite handy and 100% what you want, but make your IT Compliance people cringe because your data, often personal data, is living somewhere unknown and outside their control. Not sure I recommend for government work.

For the second use case, check out note-taking software like Evernote or cousins like OneNote. People have developed all sorts of cool tagging strategies for these. To-do software is another popular category that could work for you. There are a thousand of them and they do all sorts of tagging magic. You might also like something like Trello, which is a lightweight kanban board/listmaking/tagging/todo/project management sort of thing.
posted by troyer at 12:52 PM on January 16, 2014

The first thing to do (well, after you nail down your business requirements) is to figure out your technical infrastructure. Business requirements might include things like: security audits, whether the form needs to be accessible outside your company intranet, if it should be accessible in different languages, how many people will access it, and so on. Technical requirements might be "our company intranet is a custom .NET installation and this should run on top of it" or "our website is externally hosted on a *nix system, and the primarily customer-facing website is really a Wordpress blog with an existing Gravity Forms license" or "our web team has hacked together a custom PHP webapp for our intranet." Figure out if your form (really a super-simple webapp) can live on top of your existing technical infrastructure. (Hopefully so-- if you're at the point of asking "how do I write a dynamic form, you probably don't want to be the person to set up and maintain your own server.) Once you know what your requirements are, you have a much better idea of how to take your next step.

But first I ask this question: do you want a form, or do you want to learn how to program? Because if the former, it's probably much faster to find your tech/web team, and ask them to do it for you. If the latter, there is much fun and probably frustration in your future. :-)
posted by instamatic at 1:06 PM on January 16, 2014

Seconding Gravity Forms. It's amazing and easy to use. It requires WordPress too, in case that's not clear.
posted by backwards guitar at 3:48 PM on January 16, 2014

Response by poster: The government website doesn't include any WordPress aspects to it, as far as I've seen. Most pages have static content, and I know some users are tied to an Adobe product to update web pages.

I'll contact the IT folks to see if they have any in-house capabilities to add/build dynamic forms, but from what I've seen, that's not too likely. Our site (and the vision for our site) is pretty dated and not too inspiring, but I'll keep my fingers crossed.

As for my database of notes, I'll search for to-do software and look into Evernote some more.

But if I was to look into coding, where would I start? Django sounds interesting, but I only know basic HTML. Then again, I'm interested in learning Python for GIS applications, too, so I might head down that path.

posted by filthy light thief at 7:40 PM on January 16, 2014

If you're interested in coding, I would pick up a beginners' Python book (here is a list of 6 recommended free books. this one also is good.) Once you feel somewhat comfortable with that, start learning Django (or Flask or WebPy, which are a little easier to pick up, but less robust with forms). You can run these on your own local machine (with no outside access), but will also require you to install and manage a database.

I would recommend signing up for a free account on Python Anywhere to set up a public facing website.
posted by baniak at 8:40 AM on January 17, 2014 [1 favorite]

« Older Changes in NYC from 2010?   |   Show me more houses! Newer »
This thread is closed to new comments.