Dev.to AI πŸ€– Ai πŸ‘ 0 πŸ“– 2 min read

Exam Host: an exam-hall app for hosting exams in colleges

This is a submission for the Sanity Challenge, Path Two: Vibe-Code Something Strange What I Built Exam-hall app for colleges. Teachers publish papers in Sanity Studio; students join with name + 4-digit roll,

Exam Host: an exam-hall app for hosting exams in colleges

This is a submission for the Sanity Challenge, Path Two: Vibe-Code Something Strange

What I Built

Exam-hall app for colleges. Teachers publish papers in Sanity Studio; students join with name + 4-digit roll, write against one shared timer, auto-submit at zero. Checking happens in Sanity (submitted→checking→checked→returned, marks + feedback) — the student screen never shows scores or answers. Teachers work from a task home (Post Notice, Create Exam, Check Paper, Post Result): each paper has its own question list and submission queues, each sheet opens as plain text with one total to award, and the Result tab unlocks publishing only when every sheet is marked — now or on schedule.

Demo

Hero β€” one shared timer for every college, auto-submit at zero.Hero β€” exam hosting platform powered by Sanity

Exam Status β€” ongoing first, Math closed with its scheduled result date.Exam Status board β€” ongoing paper on top

Timed paper β€” countdown, palette, MCQ options, autosaved.Timed paper β€” answering an MCQ

Studio task home β€” teachers start from Post Notice, Create Exam, Check Paper, Post Result.Studio task home β€” Post Notice

Check Paper β€” ended exam opened, student sheets waiting in New submissions.Check Paper β€” new submissions queue

New notice β€” scheduled window plus optional PDF attachment.New notice editor

Paper workspace β€” one paper's questions and per-state queues, no mixed piles.Paper workspace β€” Math Algebra view

Github Repo

** πŸ”—exam-os on GitHub β€” Next.js + next-sanity, standalone studio sharing schemas**

My Build Process

Built with OpenCode, ~25 prompts (full log in repo AGENTS.md Β§6). What worked: mock-first student flow, sanity exec seed scripts, standalone Studio over an embedded route. What broke: rewired imports before npm i finished (build red); Vercel's Sanity integration pointed at a different empty project while the app silently served mocks (deleted it, set envs manually); a code-reading audit caught 7 issues incl. mock-backed results pages β€” now results query real status=="returned" submissions. Past the Studio: custom MCQ answer-picker input, per-paper workspaces, a frozen submit-time snapshot so late edits can't corrupt sheets, submit dedupe, and the review workflow modeled as data. No App SDK, honestly β€” the frontend writes via Mutations API instead.

Sanity Project Details

  • Project ID: vju5fidf, dataset production (public read, no login)
  • πŸ”— papers β€” all papers as JSON
  • πŸ”— judge-paper questions β€” note what's missing: no correctAnswer
  • Schemas: exam (datetime clocks + guarded windows) Β· question (referenceβ†’exam) Β· submission (4-state review, frozen snapshot, validated marks) Β· announcement (scheduled + PDF)
πŸ“° Read the original article on Dev.to AI

Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes β€” full credit and traffic to the original publisher.