TheFragebogen is a HTML5 framework for creating stand-alone questionnaires, i.e., running a web browser alone.
Questionnaires are implemented as single-page applications and thus can be loaded from a local file or from a web server.
The collected data can be downloaded to the executing machine or uploaded to a web server.
- Provides a large, extendable set of scales (e.g., Likert scale).
- Requires only web browser while a web server is optional.
- Supports playback of audio and video.
- Support for free-hand writing or drawing (exported as PNG).
- Supports interaction with other systems via AJAX or WebSockets.
Data is exported as CSV: either as local download or by sending it to a HTTP-server.
Most important TheFragebogen is implemented completely in JavaScript.
It can thus be easily extended and modified while no infrastructure is mandatory (e.g., web server, database, and network connectivity).
Requirements are:
- Requires JavaScript
- (optional) HTML5 audio
- (optional) HTML5 video
- (optional) SVG
- (optional) WebSockets
ATTENTION: Some features might not be available/usable depending on the web browser features.
- Install NodeJS to get npm: https://nodejs.org/en/download/
- Install grunt via npm:
npm install -g grunt-cli
- Install git as command-line interface: https://git-scm.com/download/
- Clone git repository:
git clone https://github.com/TheFragebogen/TheFragebogen
- Enter repository:
cd TheFragebogen
- Install dependencies via npm:
npm install
- Build TheFragebogen:
grunt
- Check out the included examples to see how to get started using TheFragebogen: see
examples/
. - Check out the included feasibility studies that show how TheFragebogen could be extended: see
examples_feasibility/
. ATTENTION: Please note that the feasibility studies are not ready for use.
- Build documentation:
grunt doc
. - Open documentation in your favorite web browser
doc/index.html
.
TheFragebogen follows the paper metaphor, i.e., a paper-based questionnaire is actually a sequence of paper sheets, which each consists of several items.
Items consist, in fact, of a question and a scale.
Sheets are represented in TheFragebogen by so-called Screens
and items by so-called QuestionnaireItems
.
In TheFragebogen, a questionnaires consists of one or more Screens
while only one Screen
is shown at a time.
A Screen
encapsulates a specific functionality, such as presenting of items, waiting for some time, or exporting data.
For presenting items or HTML content, TheFragebogen provides ScreenUIElements
that can present generic HTML content (UIElementHTML
) or items (QuestionnaireItems
).
The lifecycle of a questionnaire is handled by the ScreenController
, which organizes the presentation of all Screens
and also data export.
TheFragebogen is completely implemented using OOP.
DEVELOPERS: Information for developers can be found in CODING.md.
The data is exported as CSV while each element is wrapped in quotation marks.
The data consists of five columns.
For each row:
- Column 1 contains the index of the screen.
- Column 2 contains the name of the class (for
QuestionnaireItems
orScreens
). - Column 3 contains the question (might be empty or a generic identifier).
- Column 4 contains the answer options (might be empty).
- Column 5 contains the answer(s) (might contain an array). Might contain text/numbers, JSON, or a data URI (i.e., multimedia content).
The data files can be opened using any compatible program (e.g., text editor, spreadsheet editor).
TheFragebogen-csv-viewer.html
is a viewer application that also decodes images encoded as data URI.
TheFragebogen is licensed under MIT License.