Qualtrics Survey Processing
Introduction
Here are the stages of survey processing -
- The QSF files that define the surveys and the CSV files that contain the replies are downloaded.
- Reports are produced in PDF. They can be for individuals or groups.
- The reports are mailed to individual lecturers and chairs.
- The reports are installed on the TO web server.
Prerequisites
~tl136/QUALTRICS
on CUED's central linux system contains the programs and templates. A zip file is available containing all you need. There's also a git repository at https://gitlab.developers.cam.ac.uk/tl136/student-surveys. The files can be downloaded onto other linux/MacOS machines. You will need to set an environment variable QUALTRICSFOLDER to be the name of the folder where you've downloaded the files - e.g. typeexport QUALTRICSFOLDER=~tl136/QUALTRICS
- To use them you'll need Python 3 (already installed at CUED).
- To download survey replies you'll need the Qualtrics API token. To get the token, log into the Qualtrics site, go to Account Settings in the user dropdown, then go to Qualtrics IDs section and look for the API Token.
- To create the reports you'll need latex (already installed at CUED) and the pgfplots package (not installed).
- In $QUALTRICSFOLDER is a file called
defaults
containing something likeTerm=All AcademicYear=2020-21 Test=yes
This is used by some programs to determine the value of some common properties - the "AcademicYear" value is a string that's used in surveys and reports. These values can be overridden on a per-command basis.
Downloading replies
The programs that produce reports also download the files from the Qualtrics server (*.json and *.csv files) unless the files exist locally already.
Producing Reports
Reports can be produced for each module, or a big report can be produced for each year. The programs are in $QUALTRICSFOLDER/programs. Options available include -
- downloadprocessI.py IA SINGLE
- downloadprocessI.py IA MULTIPLE
- downloadprocessI.py IB SINGLE
- downloadprocessI.py IB MULTIPLE
- downloadprocessII.py IIA
- downloadprocessII.py IIABIGFILE
- downloadprocessII.py IIB
- downloadprocessII.py IIBBIGFILE
Mailing Reports
With a folder for each year's PDF reports, the following programs will mail the reports to the appropriate lecturers. You need to be in the appropriate folder before running the commands -
- IA - mailIAdocs.py
- IB - mailIBdocs.py
- IIA - mailIIdocs.py
- IIB - mailIIdocs.py
By default, these will tell you who will be mailed what, but won't mail. Adding " mail=yes" to the line will acually mail.
Putting Reports online
An archive exists which certain people (currently tl136 and TOstaff) can access. The per-course PDF files are there, filed by term, calendar year and student-year. For example, http://to.eng.cam.ac.uk/teaching/apps/qualtricssurvey/2019/IIB/PDF/4A12:_Turbulence_Lecturer_2_+em257.pdf exists.
The top-level folder needs an appropriate .htaccess
file, and all folders benefit from a breadcrumb.html
file (an empty one will do). The index.html
file's table is handcrafted, using the previous year's file as a first draft.
Running
makeWWWpages.py
(the program's in the $QUALTRICSFOLDER/programs folder) will download the survey replies, create PDF files, and create files for the web site (with index.html files the top folder abs in IA, IB, IIA, IIB subfolders). It will take at least 30 minutes.
The webadmin password for www3
is needed too, in order to install these reports.
Who does what and when
Processing is done after the end of each term. The Teaching Office could operate the whole process. Some programs may need to become friendlier (albeit less flexible) before the Teaching Office would feel comfortable using them directly. Running makeWWWpages.py does most of the work, creating all the reports. Then going to each folder of PDF files and running the appropriate mail*docs.py program will send out the reports. So if you don't want to do any checking, just
makeWWWpages.py cd IA/PDF mailIAdocs.py mail=yes cd - cd IB/PDF mailIBdocs.py mail=yes cd - cd IIA/PDF mailIIdocs.py mail=yes cd - cd IIB/PDF mailIIdocs.py mail=yes cd -
might be enough. Then the reports can be added to the WWW site.
See Also
More technical details are in processingPartIsurveys.pdf and processingPartIIsurveys.pdf