Integration

We have successfully connected Limesurvey to various other applications and developed interfaces to share data between different applications and Limesurvey.

1. Use Limesurvey for driver licence theory test

For a customer in Sweden, we created a special survey which is used for driver licence theory tests. Data validation is done during the survey, the embedded Javascript validates all answers, and the background sums up points for each user to create scores for certain test sections.
There are several different tests, and based on these we created an application to list test results and create user overviews and printable certifates. Test results are read directly from Limesurvey’s database, and the generated overviews are custom coded.
Screenshots:

2. Load product comparison data from external DB into Limesurvey

Loading data from an external database into a Limesurvey survey can be quite a pain. There are two different approaches: You can either use an Ajax call within the survey to dynamically call a PHP script which queries an external database and returns the results to the survey, or you can add a hook to the Limesurvey core files to load data from an external database when generating the HTML for a certain question inside Limesurvey.
Using the first option, we customized a Limesurvey shipped template to make an Ajax call at certain pages of a survey. The called PHP script gets passed some IDs, generates a table of product comparison data, and passes it back into Limesurvey where the user can vote for a product:

Embed product comparison data from external database in Limesurvey

3. Add a garage sale feature in Limesurvey

A feature Limesurvey is currently missing is a “garage sale” option. Say you have X items to give away for free or Y time slots available (or any other items of limited quantity) and you want to disable answer options in a survey if the available amount of items/time slots was chosen. This isn’t currently possible in Limesurvey, so we changed some of the Limesurvey core files to assign a quantity for all answer options. On page generation, our code then checks how often a certain item has been chosen and either disables the answer option or shows the remaining quantity in brackets:
Limesurvey garage sale feature