Step 1 — Load your study material

Upload your lecture PDFs, or a previously exported material.json. Your material is saved locally and reusable.

No saved material yet. Upload your PDFs or a material.json file to get started.
Step 3 — Question types & count
Total: 20 questions

Paste a past exam here — the LLM will match its style and difficulty without copying questions.

Step 4 — Paste the quiz back

Paste the JSON your LLM generated. Give it a name and save — it'll appear in your quiz library.

Your data

All quizzes and materials are stored locally in your browser's IndexedDB. Export a backup to keep a copy or move to another device.

Quiz JSON Format
Grading Format
Material JSON Format
How to Use
Overview

A quiz file is a single JSON object. The LLM generates this file from your material. You import it into the Take Quiz page.

Supported question types: mcq · true_false · short_answer · fill_blank

Full Schema
Example Quiz (4 questions, one of each type)
Overview

When you export for grading, the tool sends a grading_request JSON. The LLM should return a grading_response JSON. You then import the response on the Review page.

Grading Request (sent to LLM)
Grading Response (expected from LLM)
Overview

The ingest script (scripts/ingest.js) parses your source files and produces two things:

  • data/notes.db — SQLite database for internal indexing
  • data/material.json — LLM-readable export of all content, organized by topic

You can also upload PDFs directly on this page — they're processed in your browser and saved locally.

material.json Schema
Source Config Schema (per source file)
Quick start (no technical setup required)
  1. On this page, click Upload PDFs and drop your lecture notes
  2. Give the material a label (e.g. "Biol 365") and click Save for later
  3. Choose which lectures to draw from, set question counts, add any custom instructions
  4. Click Copy Quiz Generation Prompt
  5. Open ChatGPT or Claude, paste the prompt, hit send
  6. Copy the JSON the LLM returns, come back here, paste it in Step 4, name your quiz, click Save to My Quizzes
  7. Click Take Quiz → and start studying
Grading workflow
  1. After finishing a quiz, click Finish & Export
  2. Copy the grading JSON and paste it into the LLM with the Grading Prompt
  3. On the Review & Grade page, click Import Grading Response and paste the result
Pipeline overview (advanced)
Option A — Browser-only (upload PDFs here)
──────────────────────────────────────────
Your PDFs → Upload on this page → material saved locally
→ Configure → Copy prompt → LLM → Paste result back here

Option B — Node.js ingest (for large/complex sources)
──────────────────────────────────────────
node scripts/ingest.js data/sources/lecture.pdf
→ data/material.json generated
→ Upload material.json here or load on Setup page

Pipeline 2 — Take & Grade
──────────────────────────────────────────
quiz saved → Take Quiz → Finish & Export
→ grading JSON → LLM → import response → Review page
Keyboard shortcuts (Take Quiz page)
/ Next question
/ Previous question
FToggle flag on current question