This site is still under construction.
projects

Sphinx Courseware

Build interactive online courses with H5P content and learner tracking, all from reStructuredText.

active
python typescript sphinx h5p xapi e-learning

Write your course content in reStructuredText, embed interactive H5P exercises, and track learner progress through xAPI/CMI5. Sphinx Courseware turns Sphinx into a full courseware authoring platform.

View on Bitbucket

What it does

You write your course material as Sphinx documentation. The H5P extension lets you embed interactive content (quizzes, drag-and-drop, fill-in-the-blanks) directly into your pages. The xAPI layer records what learners do, so you can see who completed what, how they scored, and where they got stuck.

Everything builds to static HTML that you can host anywhere. The learner tracking works in the browser and syncs when a connection is available.

Project structure

The project is a monorepo with several packages:

  • sphinxcontrib.h5p - the core Sphinx extension for embedding H5P content
  • sphinxcontrib.xapi / sphinxcontrib.xapi.cmi5 - learner tracking via xAPI and CMI5
  • sphinxcontrib-h5p-js / sphinxcontrib-xapi-js - JavaScript that runs in the browser
  • xapi-browser-middleware - stores learning records locally until they can be synced
  • spec - the formal courseware specification
  • demo-courseware - a working example course

Features

  • Embed H5P interactive content directly in Sphinx documents
  • Track learner progress with xAPI/CMI5
  • Offline-capable: learning records are stored in the browser and synced later
  • Spec-driven: the courseware format has a formal specification
  • Automated H5P component packaging
  • Builds to static HTML you can host anywhere

Tech stack

Python 3.8+, Sphinx, TypeScript, Webpack, SCSS, Jest, Make