Click the button!
Search the built-in question banks by tag or title. Tap Load to add a bank to your sources, or ⬇ to download the raw .json.
No banks match your search.
Set your preferences (all optional — blank means neutral). Copy the prompt below into ChatGPT or Claude together with your source text. The AI replies with a JSON array — paste it back in the Import tab.
Already have a q_*.json file? Pick it, or paste its contents directly. Files must start with q_ and contain a JSON array of question objects.
Are you sure?
Wipes all locally stored data: imported question sets, progress, stats, test history, activity log and mode flags. Bundled question files stay intact. The page reloads automatically.
Plays a short distinct tone for every monitored event (mode toggle, answer reveal, off-screen blur, timer expiry). Lets a supervisor hear what the student is doing without looking at the screen.
Tamper-evident record of every monitored event: answers, reveals, mode toggles, resets, source changes and off-screen blurs. Export and hand to the proctor / instructor.
docker compose up --build
# open: http://localhost:8080
index.html via file:// blocks loading q_*.json.
python -m http.server 8000
# Windows alternative:
py -3 -m http.server 8000
# open: http://localhost:8000