Scripts for data acquisition with paper-based surveys
SDAPS is an open source (GPLv3, LPPL) optical mark recognition (OMR) program. It is written in python and has an integrated workflow with both LibreOffice and LaTeX to create questionnaires.
With SDAPS you create the questionnaire using either LibreOffice or LaTeX. After this some processing is done to collect the information about the survey (questions, and answers) and a printable PDF is created. The filled out questionnaires only need to be scanned in (example). SDAPS will do the optical mark recognition and can create a PDF report (example) or export the data. Optionally it is possible to manually correct the results using a graphical user interface.
There is now a MailingList for questions related to SDAPS, if you are thinking about using SDAPS feel free to subscribe and ask questions. You can also look around on irc #sdaps on freenode (webchat).
For an introduction of how SDAPS is used and what can be done with it you can look at the Tutorial and Documentation. Should you have any further questions about SDAPS you can use the mailing list. If you find any issues, please report them in the Issue Tracker.
Should you find SDAPS useful and use it for any survey or similar, then please consider contributing to the project. A good first start is to subscribe to the mailing list or join the IRC channel.
Features
- Open Source Software; use and modify it as you like (subject to the GPLv3/LPPL)
- Optical mark recognition (OMR) from scanned data
OpenDocument text (ODT) for creating questionnaires
LaTeX class for creating questionnaires
- Supports any paper size
- Multipage questionnaires, both simplex and duplex printing (up to 9999 pages with "code128" style)
- Different kinds of questions:
- A mark type question (value from 1 to 5)
- A choice of many, that may also include freeform fields
- Freeform fields
- The LaTeX class also supports more compact matrix configurations for these.
- Creation of PDF reports for printout
Also supports creating reports of only partial result sets with arbitrary filters
- Export of data to CSV files for further analysis (excluding image data)
Import of additional results from other sources.
With this it is for example possible to merge data aquired via a webpage at a later point.- A GUI application to check the recognition and correct errors
- Written in Python using a modular and extensible design
News
15.06.2013
The repository was moved out of the personal account github account into the newly created "sdaps" project. Anyone using GIT might want to update the references.
Overview of Changes in SDAPS 1.0.5 (from 1.0.4) -- 19.05.2013
This release contains an important bugfix that affected the quality of the OMR engine. It was broken with the introduction of circular checkboxes.
The full list of changes:
- Fix the min coverage heuristic.
- Guard against unknown rotation during report creation.
New and updated translations:
- German
Overview of Changes in SDAPS 1.0.4 (from 1.0.3) - 17.04.2013
This is a bugfix release. The following changes happened:
- gui: Do not fail if GLib.unix-signal_add_full does not exist
stamp: Do not duplicate questionnaire IDs when using –existing
- LaTeX translations using PO files.
- ODT stamping in simplex mode works now (issue #22)
- Include example scripts that use the SDAPS python modules directly
New and updated translations:
- German
Overview of Changes in SDAPS 1.1.0
This release brings a lot of new goodies. As a development release it may still be a bit rough in a few places, but everyone is invited to play with it and report any issues
Important changes:
- Support for duplex scanning of simplex questionnaires (issue #1)
- Freeform fields can be manually replaced with text (issue #14)
- Mark questions can now have an arbitrary checkbox count (issue #7)
- Correctly pick new questionnaire IDs during stamp (issue #22)
- Report paper size is now locale dependend (issue #9)
- LaTeX: classes are now translatable using PO files
- GUI: Widget based view of the questionnaire
LaTex report: Allow the generated LaTeX to be stored
New and updated translations:
- German