Model Zero

MODULELEAGUESEASON ONEModule League case study

PRIVATE · INVITE ONLY

Your course, as a league. A gamified Python and data science platform, built for one university course.

Only enrolled students can sign in, so this page is the public view of it.

00:00 / --:--
Demo students, real Season 0 numbers, counted on October 29, 2026.

A progress page that became a platform

The course's teaching assistant came to us with a small request: a Streamlit app where students could log in and see their progress and their place in the league. Until then the league ran on spreadsheets, kept by hand. We saw something much bigger in it and proposed a full platform: Python in the browser, a large question bank, a profile with medals. The TA said go.

Client
A university course (name withheld)
Year
2025–2026
Scope
Product design, engineering, question-generation pipeline
Stack
Next.js, Supabase (Postgres, row-level security), Pyodide
Languages
English

Season 0 was for students. Season 1 runs the course.

We started and shipped it within November 2025. Season 0 was built mostly for the students: the league table, profiles and medals, quizzes and the Python playground, with no admin console, so attendance and points were still entered by hand. Season 1 finished the job: an admin console, seasons, roster import, a configurable reward protocol and a much bigger question bank, so one instructor can run the whole course from one place.

SEASON 0NOV 2025 · FOR STUDENTS
  • League table and standings graph
  • Profile, medals and activity heatmap
  • Quizzes: 165 questions
  • Python playground
  • No admin console: attendance and points by handBY HAND
SEASON 1OCT 2026 · RUNS THE COURSE
  • Admin console: roster, attendance, rewards, audit logNEW
  • Seasons: archive a term, start cleanNEW
  • Roster importNEW
  • Configurable reward protocol, run in batchesNEW
  • Credential emails, one per studentNEW
  • Question authoring and reports: 672 questionsNEW

+ everything from Season 0

Open the page and start coding

Python runs in the browser, on the student's own device. There is nothing to install, so there is no setup to get stuck on and no weak laptop to blame. A student who has never heard of VS Code just logs in and writes code. The TA can explain an idea or write code live in class on the same page. The whole course is covered, libraries included.

Phones first, desktop too

Phones are how these students study, so the mobile layout was treated as the main one, not a shrunken desktop. Every screen is laid out for a small display first, and the desktop app uses the extra room.

Questions with a paper trail

Each lesson's materials go through vision-language OCR to extract the text. A language model drafts the questions that lesson needs, and then every question is reviewed by sampling and put through quality checks.

  1. 01Lesson materials
  2. 02Vision-language OCR
  3. 03Draft questions
  4. 04Review
  5. 05Quality checks
  6. 06Question bank

What the checks found

  • Every item is checked against the lesson it came from: the key, the explanation and, for written questions, the rubric.
  • Mechanical checks catch the quiet problems: every key valid, correct answers spread evenly across A to D, no duplicate stems, no answer that gives itself away by length.
  • A sample audit of 84 items came first, then a full pass over the other 588. It found and fixed duplicate distractors and an answer key that described an incomplete fix.
  • It also caught mistakes in the source slides, such as an example that imports random one way and calls it another. The questions follow what the code actually does.
  • Every multiple-choice question explains all four options, not just the right one.

Limits, stated plainly: the review ran in the same session as drafting, so it is a thorough check and not an independent audit. Bloom's-taxonomy levels on each question are provisional.

Adopted late, used heavily

We went live late in the term, so we expected adoption to be slow. In Season 0, 41 of 77 enrolled students answered at least one question. The busiest week came after the term's last recorded class: 37 students and 3,825 answers.

53%of Season 0 students answered at least one question

Counted from the platform's database on October 29, 2026.

Built for the way the course runs

Illustrative interface with demo data.

A real class, so real guardrails

Screens

The platform shows real student data, so every screenshot will be taken on demo data.

Running a course, a club or a cohort?

Privacy Policy