summaryrefslogtreecommitdiffstats
path: root/wiki/src/blueprint/survey_platform.mdwn
blob: 6158b1049f53339ee83330fb6b379236bc1b82d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
[[!meta title="Survey platform"]]

<a id="platform-requirements"></a>

Requirements
============

- MUST
  - Be open source and privacy respectful

- SHOULD
  - Be possible to integrate in ikiwiki (to avoid people having to go elsewhere to answer questions)

- Captchas: How do we prevent spam on the survey platform, both from
  robots and humans.
  - Captcha can deal with robots.
  - Attention check questions can deal with humans.
  - How can we get both without being annoying? Maybe having no captcha
    and two attention check questions could be useful but then that's
    maybe a bit annoying for humans.

[[!toc levels="2"]]

<a id="limesurvey"></a>

LimeSurvey
==========

- <https://www.limesurvey.org/>
- PHP + MySQL
- Demo site: <https://demo.limesurvey.org/>
- Features: Very complete.
- Embedding: Works in an iframe but the template would need some
  adjustment.
- Captcha: You can add a captcha *before* accessing the survey. I
  couldn't find how to add a captcha right before submitting.
- Versions and packaging: Daily "stable" releases in ZIP files. LTS and
  "one-click" auto-upgrade for pay.

<a id="limesurvey-requirements"></a>

### Requirements

- Hardware
  - CPU
    - My prototype machine uses very little of its Core 2 Duo CPU P8700 @ 2.53GHz.
      So I guess that 1 core of whatever you have will do.
  - RAM
    - My prototype machine uses 256MB when LimeSurvey is hit on various tabs.
      So I guess it should still work with 512MB.
  - Storage
    - The install directory takes 300MB (.git included).
    - I don't know how much the database will take but it shouldn't be crazy, let's say 100MB.
    - So I should do with 2-5GB on top of what you need for the base system and the backups.
- Software infrastructure
  - OS
    - Debian Stretch
  - Web server
    - Apache with mod_php
    - PHP 5.1.2 or later
      - Packages: php php-mysql php-mbstring php-xml
    - HTTPS
      - I'd like https://survey.tails.boum.org/ and some HTTPS on top of it.
    - I didn't have to edit the VHost on my prototype machine.
    - Being able to restart the web server might be useful.
  - Database
    - 1 empty MySQL or MariaDB database 4.1.0 or later.
    - 1 user with full access to this database on the command line (mysql and mysqldump). I used:
      - `GRANT ALL PRIVILEGES ON limesurvey.* TO 'limesurvey'@'localhost' IDENTIFIED BY 'superfatpassword';`
    - 1 password to access the database.
  - Backups
    - Backups of /var/www/ and the database.
    - Be able to trigger a backup before the update and be able to restore it
      if it fails. I can also do that myself using rsync and mysqldump.
  - Monitoring
    - HTTP success on https://survey.tails.boum.org/index.php/372383?lang=en.
  - Email
    - Be able to send emails to the outside world; though I might not send any as a start.
- Credentials
  - You have my SSH key already.
  - Usual stuff
    - bash, cat, cd, chown, cp, diff, file, find, grep, head, less, ls, man, mkdir, mv, ps, rm, rmdir, tail, top
  - Stuff I like
    - ncdu, screen, vi
  - Stuff I might need to do the manual upgrade, download plugins, etc.
    - git, gunzip, tar, unzip, wget, mysql, mysqldump, rsync
  - Otherwise in which forms do you need to know the credentials?

Basic form builders
===================

TellForm
--------

- <http://www.tellform.com/>
- NodeJS
- Demo site: <https://admin.tellform.com>
- Features: Basic.
- Embedding: Offers an iframe but the SSL is broken on the demo site.
- Captcha: No.
- Versions and packaging: One Alpha release on GitHub from April 2016.
  Docker image advertised on the website.

Kinto
-----

- <https://www.fourmilieres.net/>
- Python + PostgreSQL
- Demo site: <https://www.fourmilieres.net/#/>
- Features: Basic.
- Embedding: Not specified.
- Captcha: No.
- Versions and packaging: Several releases per month on GitHub. Docker
  image advertised on the website.

SumoSurvey
----------

- <https://github.com/mattjdev/sumosurvey>
- NodeJS + MySQL
- Demo site: <https://sumosurvey.herokuapp.com/>
- Features: Very basic.
- Embedding: Not specified.
- Captcha: No.
- Versions and packaging: Zero releases on GitHub.

Weirdos
=======

Ikiwiki
-------

- <https://ikiwiki.info/ikiwiki/directive/poll/>
- Features: Very basic, only multiple choices with public stats.
- Embedding: in ikwiki yes :)
- Captcha: No.

Formr
-----

- <https://formr.org/>
- PHP
- Demo site: <https://formr.org/>
- Features: Couldn't create a survey from the demo website. Not very
  promising...
- Embedding: Not specified.
- Captcha: Unclear.

Plugins for other web applications
==================================

Quick Survey (Sandstorm)
------------------------

- <https://apps.sandstorm.io/app/wupmzqk4872vgsye9t9x5dmrdw17mad97dk21jvcm2ph4jataze0>

Webform (Drupal)
----------------

- <https://www.drupal.org/project/webform>
- Framaforms: <https://framaforms.org/>