Skip to content
rmt edited this page Sep 13, 2010 · 10 revisions

Seantis Questionnaire

… is a django application for creating online questionnaires/surveys. It was designed as part of a project for an annual medical questionnaire, and as such, some extra features to help with sending email invitations are included.

Features

  • Multiple Questionnaires, multiple pages (QuestionSets) per questionnaire, multiple runs of same questionnaire per subject (eg. for
    annual surveys)
  • Multilingual using the django transmeta application.
  • Questions (ie. 6) & SubQuestions (ie. 6a), with appropriate layout tweaks.
  • Email Invitations (direct URL to Questionnaire)
  • Does not require Django’s authentication system to answer questionnaires
  • CSV export of answers.
  • Complex dependencies utilising a full Boolean Expression Parser, and
    Javascript support. eg. (6a=yes and 6b=yes) OR 5=no
  • Easily extensible question types (Question Processor + Template, and
    Answer Processor)
  • Built-in Question types include Open (single line), Open (text area),
    Yes/No, Yes/No/Dont Know, Yes/No/Comment, Single Choice, Single
    Choice + Freeform Option, Multiple Choice, Multiple Choice + Freeform
    Option(s), Number Range, Time Period.
  • Django Signals on completion of QuestionSets and Questionnaires

Package Dependencies

django-transmeta – used for simple internationalisation

  • http://code.google.com/p/django-transmeta/source/checkout

pyparsing – used for the boolean dependency parser

  • http://pyparsing.wikispaces.com/Download+and+Installation
  • easy_install pyparsing

textile – used for marking up the questions

  • easy_install textile

TODO

  • Widgets: Date/Time Widget, Date Range Widget
  • Customisable answer checks (eg. for open answer questions)
  • Better support for customised javascript
  • Question Type Classes instead of (or in addition to) simple processing functions.

Example Questionnaire

A simple example questionnaire can be seen at http://questionnaire.corporatism.org/

Alternatives

The two alternative questionnaire/survey implementations for Django that I’ve stumbled across are Django Questionnaire and Django Survey, but they both didn’t quite scratch my itch (although I quite like Django Survey’s question/type class design). Both didn’t quite support the model I needed for annual surveys, and both lacked dependency checking (but the authors are free to incorporate my dependency parser, if they wish)