Skip to main content

Semi-automated grading for Marimo notebooks

Project description

mograder logo

mograder

PyPI Tests Docs License: MIT Python 3.11+ Ruff Live Demo

Semi-automated grading for Marimo notebooks.

mograder student demo

How it works: Instructors author source notebooks with solution blocks and automated checks. mograder generate strips solutions to create release versions. Students complete the notebooks and get instant formative feedback from check() calls. mograder autograde executes submissions in sandboxed subprocesses, parses results, and stores grades in an SQLite gradebook. Markers review and add manual marks via the grader dashboard. mograder feedback exports annotated HTML for students.

Quick start

pip install mograder          # or: uv add mograder
mograder generate hw1         # strip solutions → release/
mograder autograde hw1        # grade submissions → autograded/
mograder feedback hw1         # export HTML → feedback/

Live demo

Try the student dashboard — a WASM app running entirely in your browser. See also the hub (student notebook editing), the grader (instructor view with pre-populated demo data), and a demo workshop with encrypted solutions (workshop key: mograder, instructor dashboard). Deep links open assignments and lectures directly: edit demo-assignment | run demo-lecture.

Documentation

Full Documentation Overview, installation, and all guides
Instructor Guide Step-by-step setup and grading walkthrough
Student Guide Setup instructions to share with students
Usage Reference All commands: generate, autograde, feedback, moodle, ...
API Reference check(), Grader, CLI, and module docs
Configuration Full mograder.toml reference
Security Threat model and sandboxing options

For students

Easiest: download the desktop app — no terminal needed.

Or via the command line:

curl -LsSf https://astral.sh/uv/install.sh | sh
uvx mograder student https://mograder-demo.jrkermode.uk/mograder.toml

For real courses, your instructor will provide the config URL. Or open in GitHub Codespaces — one click, no install needed.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mograder-0.3.2.tar.gz (2.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mograder-0.3.2-py3-none-any.whl (190.3 kB view details)

Uploaded Python 3

File details

Details for the file mograder-0.3.2.tar.gz.

File metadata

  • Download URL: mograder-0.3.2.tar.gz
  • Upload date:
  • Size: 2.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mograder-0.3.2.tar.gz
Algorithm Hash digest
SHA256 6ab06f12d0b48d0a34f504810334dc351bb0665669c65780502ea56e7908e2f2
MD5 5b91a1b94ae21b2e43097a04372d6228
BLAKE2b-256 cd3d280db324d53f69935f49af9bdfdd55d44fd5149643ccaddfa31daee10dfa

See more details on using hashes here.

Provenance

The following attestation bundles were made for mograder-0.3.2.tar.gz:

Publisher: release.yml on jameskermode/mograder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mograder-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: mograder-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 190.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mograder-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a65cfa60d839c32131f256c0d7ce608a91493e4a3b5032a202eafc05a965ef62
MD5 61b2fa067282ae5a95efc9efef24cabf
BLAKE2b-256 c8b8babe9be607f141bb15e0ffd376b2989649d700a1929e4b81ca43983283e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for mograder-0.3.2-py3-none-any.whl:

Publisher: release.yml on jameskermode/mograder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page