Using LimeSurvey

The path to opening a Geek Ranch is not exactly straight. That is, each week there is one more strange thing that needs to be done. This week, it happens to be surveys. Not the measure the ground kind—we already did that—but the on-line ask questions kind.

While our primary focus is renting geek cabanas, there has been some interest in buying space in the facility or at least acquiring space on 99 year leases. One opinion lead to another and it became clear that for us as well as people in the Nicaragua real estate market in general, a survey would be in order. So, time to write one.

I started writing a multi-group survey using PHPSurveyor a few days ago. Being an ex-software tester I managed to break it. The good news was that I found that there was a new version and that new version even included a new name, LimeSurvey. It's pretty and clean and multi-lingual and lots of other good things. Besides that, it didn't blow up with the survey I was working on.

There is little reason to offer a blow-by-blow of setting up a survey. LimeSurvey is designed for the GUI crowd. It is full-featured and once you get used to the icons and the hierarchical structure (survey->group->question) and label sets you should be home free.

I was originally running PHPSurveyor on a shared host where I have shell access. Where I really wanted it was on a different shared host where I only had FTP access. I decided it was worth a try. So, I unpacked the tarball locally and FTP-ed file hierarchy over. The additional setup I needed before I could just start talking through the web server was minimal:

  • Manually create a database.
  • Edit config.php to set up database access information and a few other minor things.

I then went to the admin page and all seemed well. That is, until I tried to upload my old survey that I had saved from PHPSurveyor. It failed but the error message suggested a permissions problem on a temporary directory. The suggestion was correct, I fixed it and all was well. All in all, not a bad experience.

In theory, I could stop talking now and you could just go use LimeSurvey. If you have written serious surveys before—whether it was on paper, writing your own software or using a different package—that would probably be true. But, by far, the hardest part of the whole process is designing a survey that makes sense. LimeSurvey will help you out but here are some pointers.

One thing I learned long ago is that if you have a big task, breaking it up into smaller tasks is always of benefit. In the case of a survey, you will probably have questions that logically belong together. LimeSurvey offers groups which are sets of questions that you can then include in the full survey. For example, if someone is a Linux user, you might want to ask them how long they have been using Linux, which GUI they use and what Linux "brands" they use. These questions could be put into a group, worked with as a logical unit and finally included in a survey. LimeSurvey even allows you to present questions a group at a time to someone taking a survey rather than only a question at a time.

Along the same line of thinking, if you asked someone if they used Linux and they said no, there would be no reason to ask them the group of questions I just discussed. LimeSurvey to the rescue once again. Its branching feature allows you to selectively ask questions based on the answer to a previous question or questions.

The interface to do this requires a minimum of thinking. That is, there are no regular expressions to deal with and such. You add conditions by picking (clicking on) a previous question and then selecting the answers (again by clicking) that you wish to use. This is also not limited to a single question—a question can have multiple dependencies.

While there is no "build some conditions and use them over" capability you get close. Once you set conditions for one question, you can copy those conditions to other questions. The only caveat is to make sure you don't have a condition that depends on a question that might have been skipped do to other conditional logic.

Another very useful feature is label sets. This gives you the ability to define a set of labels for use in multiple places. For example, if you wanted a "scale" as answers to a set of questions where there were three answers, you could use a label set. The label set would relate codes to the textual answers. You then just reference the label set. For example, if the answers you wanted were Gnome, KDE and shell, you could just put those choices in a label set (say interface) and then reference it when writing your questions.

At the question level, you have lots of choices. In fact, 25 which the documentation divides into:

  • Single choice questions
  • Multiple Choices question
  • Lists
  • Arrays
  • Other types

The easiest to understand are single choice questions. There are five choices here: three different text sizes, numerical input and date. These formats can be further restricted by what are called Question Attributes. For example, you could define the maximum character length for a text field.

Multiple choice questions are just what you would expect. You can, however, control whether they will be displayed as a drop-down or radio buttons. You can also turn on an "other" answer. Multiple answers (check boxes) are also available.

Lists and arrays allow you to present sets of questions. There are enough options here that I will just say if you can think of something you want to do, it is probably available.

In the other category are the ability to ask the user to rank the items displayed, a boilerplate display (not really a question) and the ability to select a language.

Some other features worth mentioning are:

  • Assessments—The ability to selectively display text based on evaluation of some answers. This gives you the ability to offer immediate feedback after completion of a survey.
  • Multiple users—Multiple people can build and run surveys based on one running copy of LimeSurvey.
  • Templates—Multiple looks are included but if you want to go beyond that, you can edit the templates and styles for survives.
  • Multiple languages—LimeSurvey uses GNU gettext message catalogs and is already translated into many languages.
  • Selective access—An invitation which includes an access token can be sent to people and they access can be tracked.

This should be enough for you to decide if LimeSurvey is something you might need and, if so, give it a try. Now, you are invited to take my survey here. Have fun.

______________________

Phil Hughes

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

No validation

The Statistician's picture

The survey you created contained an answer where one should give a date on the form "YYYY-MM-DD". To try the questionarie, I put in a value with a completely different format. However, the questionarie did not show any warning and just let me continue. Thus, making it a badly designed questionarie generating invalid data.

Is it possible to create this checks in LimeSurvey?

The last question with the

Josiah's picture

The last question with the instructions about scissors doesn't have any scissors on it when viewed with Opera and I can't figure out how to answer it. Otherwise, a nice looking project. Thanks for sharing.

I created it with Opera

Phil Hughes's picture

I actually used Opera when I was creating and testing the survey. When you click on something in the left list, it moves to the right list and the scissors appear to the right of it. You click there if you want to move it back to the "not selected yet" list.

Phil Hughes

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState