UPDATE (Oct. 7th, 11:30 AM): After reviewing nSurvey I decided not to continue on with this article... why reinvent the wheel when those guys have already done a good job doing so?
I'm working on an online survey control/application for an upcoming MSDN Online article, and wanted to poll the six people who read this blog and ask, “What would your dream online survey control / application entail?” Here are my three main goals:
- Make it easy for a non-computer expert to create and edit surveys through a user-friendly Web interface.
- Make it easy for ASP.NET page developers to add the survey to a page. Namely, they should have to do nothing more than drag and drop a control from the Toolbox and set a couple of properties.
- Provide a decent set of reports that allow the higher-ups to view the results of the survey, either in a summary view or on a per-user view.
With those three high-level goals in mind, here are the more implementation-specific features my survey app currently supports:
- Ability to have survey questions of varying types: currency, text, memo, numeric, yes/no, a drop-down list from a lookup table, etc.
- Question-level constraints, such as required fields, or for numeric/currency fields, an optional low/high value (such as when asking for their age, it must be between 0 and 125, inclusive).
- Ability to have surveys composed of multiple questions, spanning multiple pages.
- Ability to have the “flow“ of the survey be based upon the survey-taker's responses. That is, if page 1 includes a question like, “What is your annual household salary?“, the user could be taken down a different path if their answer was greater than $100,000.
The main feature that is lacking, IMO, that I'd like to implement, but don't see a clear, easy way to implement is providing a high degree of customization of the survey user interface. Sure, the page developer can customize the appearance with stylesheets and control-specific styles, but I can't fathom a good way to allow them to customize the markup on a question-by-question basis. That is, saying, “Question 4 should be in bold and underlined, while question 6 should be offset to the right in a
. While typically templates are used in controls to allow the page developer more freedom on the markup, I don't see how templates could be used to allow question-specific customization, since the number and types of questions for a particular survey can differ per page and are specified not by the page developer, but through a Web interface.
Are there any other features you'd definitely want to see in an online survey control / application? To date, I've created the data model and a bare-bones survey control, so there's still time to get in your features! :-)
UPDATE (Oct. 7th, 11:30 AM): After reviewing nSurvey I decided not to continue on with this article... why reinvent the wheel when those guys have already done a good job doing so?