# Cynux

- **Event:** [Built with Opus 4.7: a Claude Code hackathon](https://cerebralvalley.ai/e/built-with-4-7-hackathon)
- **When:** Apr 21 at 12:00 PM – Apr 27 at 2:00 AM (EDT)
- **Where:** Online
- **Team:** [Naufaldi Rafif](https://cerebralvalley.ai/u/Cynux)
- **GitHub:** https://github.com/naufaldi/teacher-exam
- **Demo video:** https://youtu.be/5bmG_bbl_MA
- **Gallery:** https://cerebralvalley.ai/e/built-with-4-7-hackathon/hackathon/gallery
- **Page:** https://cerebralvalley.ai/e/built-with-4-7-hackathon/hackathon/gallery/62

Ujian SD turns a single sentence — "Pendidikan Pancasila, kelas 5, sumatif tengah semester, tema sila ke-3" — into a print-ready exam sheet: 20 questions, mixed types (multiple choice, complex MCQ, true/false, short answer, essay), each with an answer key and a teacher-facing pembahasan (explanation). One click → PDF on A4, ready for the photocopier.

THE PROBLEM

Indonesian SD (elementary) teachers spend 4–8 hours every week hand-writing exam sheets in Microsoft Word. They reuse and recombine the same question banks every term because building from scratch is too slow. The result is uneven quality — items that are too easy, vocabulary above grade level, or explanations written in academic Indonesian no 10-year-old can follow. Generic LLM chatbots produce text that sounds like an exam but fails on the constraints that actually matter: Kurikulum Merdeka phase alignment, learning outcome codes (CP/TP), age-appropriate vocabulary, and proper KD coverage across Bloom's taxonomy levels.

WHAT UJIAN SD DOES DIFFERENTLY

- Curriculum-grounded generation — the system reads from official Kurikulum Merdeka PDFs (parsed into per-CP/TP units) and ties every question to a real learning outcome, not free-form generation.

- Banned vocabulary list for SD level — Opus 4.7 is given an explicit blacklist of academic Indonesian words that shouldn't appear in grades 1–6 material, ensuring age-appropriate language.

- Pembahasan that teachers can read aloud — explanations are written for a 10-year-old listener using respectful but simple Indonesian, not dense answer-key prose.

- Mixed question types in one sheet — PG (pilihan ganda), PG kompleks, benar-salah, isian singkat, and uraian, properly distributed across difficulty levels following Bloom's taxonomy.

- Two-pane preview — the same JSON drives both the on-screen preview and the print PDF, so what teachers see is exactly what gets photocopied.

- History + duplicate-as-draft — every generated exam is saved. Teachers can fork last term's sheet, swap the topic, and regenerate without losing the original.

- Print-first design — A4 layout, photocopier-safe fonts, proper margins, header with school name/class/semester fields. This is built for Indonesian school reality where 90%+ of exams are still paper-based.

TECH STACK

Frontend: React 19 + Vite + TanStack Router + Tailwind v4 + Radix primitives
Backend: Hono v4 on Node 22 + Effect-TS service layers + Drizzle ORM (Postgres) + better-auth (Google OAuth)
AI: Claude Opus 4.7 via official SDK with prompt-cached curriculum context and structured output via Effect Schema validation
Monorepo: pnpm + Turborepo with shared Effect Schemas as single source of truth
Deploy: VPS + Caddy + Docker, live at ujian-sekolah.faldi.xyz

IMPACT

A working version of Ujian SD saves an Indonesian teacher 4–8 hours per week on exam creation alone. With 2.9 million SD teachers in Indonesia, even modest adoption addresses a massive, underserved need that no existing edtech product properly solves — because none of them understand what a printed Indonesian exam sheet actually needs to look like.

---

Markdown version of https://cerebralvalley.ai/e/built-with-4-7-hackathon/hackathon/gallery/62. Site index for agents: https://cerebralvalley.ai/llms.txt · full text: https://cerebralvalley.ai/llms-full.txt
