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.
It can thus be easily extended and modified while no infrastructure is mandatory (e.g., web server, database, and network connectivity).
- (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 required software:
- 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:
- Install dependencies via npm:
- Build TheFragebogen:
- Check out the included examples to see how to get started using TheFragebogen: see
- 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 the documentation:
- Build documentation:
- Open documentation in your favorite web browser
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
In TheFragebogen, a questionnaires consists of one or more
Screens while only one
Screen is shown at a time.
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 (
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
- 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.