learningequality / learningequality/ricecooker

Handle QTI exercises

Open
#337 0 comments 1 reaction 1 assignee View on GitHub

@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 AssessmentItem is type='QTI' with a complete <qti-assessment-item> XML in raw_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 in raw_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 in raw_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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.