learningequality / learningequality/ricecooker
Handle QTI exercises
Open
@rtibblesbot is already working on this.
Since Jul 24, 2026.
P1 - important
- Dominant language
- Python
- Stars
- 31
- Forks
- 77
- Avg merge
- 5d 4h
- Merged PRs (30d)
- 3
Description
Ingest QTI assessment packages as individual QTI assessment items, rather than uploading a single opaque QTI zip.
Context
- Studio now accepts per-item QTI: each
AssessmentItemistype='QTI'with a complete<qti-assessment-item>XML inraw_data, uploaded through the internal node-creation API (learningequality/studio#6002).
The Change
- Parse a QTI/IMS content package: read its manifest, and extract each assessment item's XML and its referenced media.
- For each item, create a
type='QTI'assessment item carrying the item XML inraw_data, with its media, through the internal node-creation API.
Acceptance Criteria
- A QTI package is ingested into individual
type='QTI'assessment items, not a single zip file - Each item's
<qti-assessment-item>XML is uploaded inraw_data - Referenced media is uploaded and linked to its item
- Studio accepts the upload via the internal API (learningequality/studio#6002)
AI usage
Rewritten with Claude Code to match the per-item QTI ingestion model agreed in learningequality/studio#5998. The maintainer reviewed and approved the change.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.