June 5, 2007

Simple polling with LimeSurvey

Author: Ben McGrath

Setting up a survey on your Web site can be a simple task with LimeSurvey, a flexible and easy to set up tool for conducting a survey.

The LimeSurvey project began in 2003 as PHPSurveyor. Last month the project was renamed LimeSurvey in order to make licensing easier by not including PHP in the title.

You can try a demo of LimeSurvey or download the full application.

A typical LimeSurvey installation requires a server with PHP installed, as well as a MySQL database to store the data in. If you're wary of going setting it up yourself on a server, many hosting companies offer LimeSurvey installations, such as Hummingbird Hosting or UCHosting. Both of these hosting services allow users to set up a survey script with minimal work.

To manually set up LimeSurvey, you must have a server that has PHP 4.2 or later installed, along with the mbstring (Multibyte String Functions) library, and a MySQL (4.1 or later) database for LimeSurvey to store data in. To take advantage of LimeSurvey's token system, you need to have the LDAP Library installed in PHP. The script itself takes up about 10MB of disk space.

Installing LimeSurvey just requires uploading the survey software to a directory of your choice, editing the project's config.php file and making sure all the necessary fields -- such as database name, location, and email settings -- are filled in. Once they're set, run a simple installation script by navigating to it with your Web browser.

If you're familiar with HTML, you can easily create custom templates to give your surveys a similar look and feel to the rest of your site. If you're not, there is a template editor function built in to LimeSurvey that allows you to create a custom template for your surveys.

LimeSurvey's flexibility is its main driving point. The software is offered in a total of 19 different languages. With LimeSurvey, you can have out an unlimited number of surveys at any time. You can set different surveys to be public or private, and allow users to take a survey multiple times or only once via a "post once" token. LimeSurvey supports many different question types, ranging from the simple Yes or No variety to choices such as 10-point scales, open-ended answers, or dropdown choices.

With most of the question selections, you can opt to include a field for users to describe why they chose the answer they did. You can branch a survey out by setting certain choices and questions to appear in response to earlier decisions. There is no limit to the number of questions you can include in a survey, and the program also offers ways to automatically email, notify, or invite users to a survey, or to remind them to take it if they've not already done so.

You can view your data and results from within LimeSurvey, or you can back up the data by exporting it to simple text, CSV, or Excel files. Exporting to an XML format is not yet available, though it is listed on the road map for LimeSurvey version 2.

Users can choose to stop the survey and continue at a later time, keeping their data intact and ready upon their return.

My testing didn't uncover any large faults in the software, but if you need it, you can get support in a number of ways. The project provides an online documentation wiki. You can visit the project's online forum to ask a question, where most likely a developer or knowledgeable user can help you out. You can also visit IRC channel #limesurvey on irc.freenode.net, which many users frequent, and many are willing to help out. If your need for support is more pressing, you can email a member of the project, but if you do this they ask that you donate a small sum to the project.

If you're in the market for a survey tool, LimeSurvey is one of the best choices around. It has excellent usability and support, and when you take into consideration that some hosting companies offer packages with it pre-installed, as well as it's large list of features, it becomes apparent that LimeSurvey is quite possibly the most flexible, easy to use choice to make.