Koord2ool is an extension of LimeSurvey that visualizes responses to surveys over time.
The original tool was developed within the scope of ACCSA (Austrian Cyber Crisis Support Activities), a research project funded by the FFG (Forschungsförderungsgesellschaft). The project has been improved in some regards within the scope of AWAKE.
# Download compose.yml
curl -fsSL https://raw.githubusercontent.com/ait-cs-IaaS/koord2ool/main/compose-dev.yml -O compose.yml
# Start all services
docker-compose up -d
There are multiple ways to deploy Koord2ool, the easiest one is via the compose-dev.yml as described in Quckstart. For a production deployment a seperate LimeSurvey instance and the compose.yml should be considered.
There is a Dockerfile that can be built and deployed, which is automatically packaged as a Container Image via a CI/CD pipeline, specifically a GitHub Action.
The resulting artifact is then published to the GitHub Container Registry: docker pull ghcr.io/ait-cs-iaas/koord2ool:latest
There are two environment variables to configure koord2ool:
LIMESURVEY_RPC_API
To set the default Limesurvey Backend URI, which can be overriden during container startupBASE_URI
To set the a Base URI differnt from /
under which koord2ool will be reachable (e.g. behind a reverse proxy).These two variables can also be used as Build arguments while building the Docker Image.
Example
docker build --build-arg BASE_URI=/koord2ool/ -t koord2ool .
Koord2ool can also be built from source, following steps are necesarry.
NODE_OPTIONS=--openssl-legacy-provider
set as an env var.pnpm install
.Optionally set VITE_APP_LIMESURVEY_API
and install dependencies with npm install.pnpm run build
. Generated files are available in the dist folder and can be pushed to the web server.dist
folder with any web server (e.g., nginx)You will need to install LimeSurvey which is an open-source questionnaire tool. Please refer to its documentation regarding deployment.
Cross-Origin Resource Sharing headers need to be set, e.g.:
Access-Control-Allow-Headers: *
Access-Control-Allow-Methods: POST
Access-Control-Allow-Origin:*
In hardened environments, it is advisable to restrict CORS headers further, in particular
Access-Control-Allow-Origin
.
You must enable the remote procedure call interface in the administrative settings of LimeSurvey.
For Development there is a helper script for activating the endpoint under dev/activate_rpc.
Take note of the URL where this endpoint is exposed, e.g. https://limesurvey.example.com/admin/remotecontrol
.
Create a survey in LimeSurvey as described in the LimeSurvey documentation. Note that you need to have the survey in closed-access mode so that individual answers can be associated with a source.
If you want to be able to allow users to update their responses, set the following options in "Participants settings":
Important: You must turn "Anonymized responses" off, and turn "Date stamp" on. Otherwise, LimeSurvey will not store submission times and sets it to January 1, 1980.
Currently only the following question types are supported: "yesno", "list_dropdown", "bootstrap_dropdown", "listradio", "numerical" "multipleshorttext", "multiplechoice", "shortfreetext", "longfreetext"
Note that if you change a survey, you may lose data. LimeSurvey can only restore already submitted responses if they appear compatible to the then-changed survey. This is a limitation of LimeSurvey and cannot be avoided.
If you are changing an already active survey, use the following approach:
Have a look at our Contribution guidelines tips on how to contribute.