-
Notifications
You must be signed in to change notification settings - Fork 7
qbank Architecture
qbank
exposes the dlkit
library RESTfully, so much of the logic rests in the dlkit
library. You may
find the dlkit source code useful in understanding where different capabilities lie.
qbank
is broken up into several sub-apps, which are in their own sub-folders:
- Assessment
- Logging
- Repository
This package includes the code for managing assessment / question authoring, student taking of assessments, and delivering results.
This package includes the code for managing logs and log entries. It also includes a generic logging endpoint
for apps or tools that do not refer to a specific log
or assessment bank
.
This package includes the code for creating and managing media assets, their translations, accessibility data (like alt-text
and transcript files), and license / copyright. It also provides streaming of media assets.
Because some of the assessment types supported by qbank
require access to the user's microphone, the
site must be served over https
. When running qbank
locally for development, or when bundled for running offline, this means pointing qbank
to your SSL certificates. The repository includes
some self-signed certificates that you can use / replace, or you can also point the app to your own certs. If
you are doing this with a web server like Apache, you can also point Apache to your SSL certs and
leave this configuration out of qbank
(see the section on running qbank in the cloud for more info).
To change the cert paths, you have to edit main.py
and update the values for:
CherryPyWSGIServer.ssl_certificate
CherryPyWSGIServer.ssl_private_key
You'll notice two values for this, one that uses sei._MEIPASS
and another that uses ABS_PATH
. Both need to be updated. sei._MEIPASS
is used when qbank
is bundled into a single installable, and ABS_PATH
is used for running qbank
with the built-in wsgi
server via the command line.