A package to create, manage, and convert QTI packages for quizzes and assessments in Canvas, Blackboard, Moodle, and LibreTexts ADAPT.
Project description
QTI Package Maker
Converts question banks between learning-management-system formats, so instructors can move assessments between Blackboard, Canvas, and Moodle without rebuilding them. Embedded images are now bundled into the exported packages.
The tool reads a question bank in one format and writes it out to many others. Supported targets include Blackboard (Original and Ultra), Canvas, Moodle Aiken, text2qti, a human-readable text export, a standalone HTML self-test page, and a print-oriented exam YAML. Seven question types are supported: multiple choice, multiple answer, matching, numerical entry, fill-in-the-blank, multi-part fill-in-the-blank, and ordered list.
Image support is now end to end: a Blackboard question-upload text file with <img> tags converts
into Canvas and Blackboard packages with the images bundled inside, so figures survive the move
between systems.
The standalone HTML self-test export renders varied question types with bundled images and instant self-grading feedback.
Documentation
Getting started:
- docs/INSTALL.md: Setup, dependencies, and environment.
- docs/USAGE.md: CLI usage and worked examples.
- docs/TROUBLESHOOTING.md: Common issues and fixes.
Formats and engines:
- docs/FORMATS.md: Input and output formats.
- docs/ENGINES.md: Reader and writer engines and their capabilities.
- docs/QUESTION_TYPES.md: The seven question types and their fields.
Internals:
- docs/CODE_ARCHITECTURE.md: Reader/writer engine design and data flow.
- docs/FILE_STRUCTURE.md: Repository layout and file map.
- docs/DEVELOPMENT.md: Developer workflows and testing.
Quick start
python3 -m venv .venv
source .venv/bin/activate
pip install -r pip_requirements.txt
pip install -e .
python3 tools/bbq_converter.py -i bbq-mycourse-questions.txt --all
Substitute your own Blackboard question-upload text file, named per the
bbq-<name>-questions.txt pattern, for bbq-mycourse-questions.txt. Pick specific output engines
with -f, for example -f canvas_qti_v1_2 -f human_readable. For the BBQ input format, the full
engine list, and more examples, see docs/USAGE.md.
License
Code is licensed under LGPLv3. See LICENSE.LGPL_v3.
Author
Neil Voss, bsky.app/profile/neilvosslab.bsky.social.
Support and links
- Bitcoin: Donate with Bitcoin
- Dash: Donate with Dash
- Patreon: Support on Patreon
- Paypal: Donate via PayPal
- YouTube
- GitHub
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file qti_package_maker-26.7.tar.gz.
File metadata
- Download URL: qti_package_maker-26.7.tar.gz
- Upload date:
- Size: 206.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c93d5bc8d410afbd9a7ea114d987088424e927bfa0702d9efd8b27e095578f84
|
|
| MD5 |
2a7060c879c59bcae52dcd3cae9d1bdb
|
|
| BLAKE2b-256 |
d1257fcdd0697010549d20b54409ee73a125176505343bc2cfc9c5d7cb720bff
|
File details
Details for the file qti_package_maker-26.7-py3-none-any.whl.
File metadata
- Download URL: qti_package_maker-26.7-py3-none-any.whl
- Upload date:
- Size: 219.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10cf395b9bcc72bcdc6d391d2419555df2425661018e1ab2d2347c117227b055
|
|
| MD5 |
b593ba33e384cf56cbfeec72b6c86754
|
|
| BLAKE2b-256 |
0e405047229df90e422eb49435570f45e19c76111864661080f8a36dce6cdef1
|