Are you the author? Sign in to claim
Revolutionizing Indonesian Exam Prep: AI Teacher Tools 2026
AI-orchestrated, locally-printable assessment blueprints for Indonesian primary education — Engineered with Claude Opus 4.7. React 19 + Hono + Effect-TS. - naufaldi/teacher-exam
Imagine a classroom in Yogyakarta, where the morning light filters through jalousie windows onto wooden desks. The teacher, Ibu Sari, has forty students and three subjects to assess before the semester closes. She does not have time to craft differentiated question banks. She does not have a curriculum specialist. She has her penggaris, her whiteboard markers, and a relentless desire to see each child understood.
GURU: Arjuna Quiz Engine is not merely a test generator. It is a pedagogical co-pilot that translates the Indonesian Kurikulum Merdeka into precise, print-ready formative assessments—complete with answer keys, cognitive level mapping, and automatic difficulty calibration. Built on a modern TypeScript stack with Effect-TS for deterministic state management, it respects both the teacher's autonomy and the student's developmental readiness.
In the Javanese wayang tradition, Arjuna is the master archer—precise, focused, and guided by a higher purpose. This engine embodies that ethos. Every generated question card is an arrow aimed at a specific learning objective. Every assessment sheet is a meditation on clarity.
| Traditional Approach | Arjuna Engine Approach |
|---|---|
| Teacher writes 20 questions manually | Engine generates 20 unique variants from a single skill tag |
| One-size-fits-all difficulty | Adaptive item analysis with Bloom's taxonomy levels |
| Answer keys handwritten | Machine-validated answer keys printed alongside sheets |
| Reusable only for one class | Parameterized templates reusable across hundreds of contexts |
This is not automation for automation's sake. It is the removal of administrative friction so that educators can reclaim their attention for what matters: observing how a child thinks, not just whether they answered correctly.
Find the latest pre-compiled deployment artifact below. No build steps required for end-users.
Every generated question maps directly to the Capaian Pembelajaran (CP) and Tujuan Pembelajaran (TP) as defined by Kemdikbudristek. The engine supports Fase A, B, and C across all primary subjects: Bahasa Indonesia, Matematika, IPAS, and PPKn.
Questions are automatically distributed across:
Teachers can adjust the ratio via a simple slider interface. A three-tiered difficulty curve emerges organically.
The engine produces CSS-driven print layouts with:
No browser print preview adjustments needed. No margin fiddling.
The editor supports Indonesian (Bahasa) and English. Question stems can be authored in either language; metadata remains in Bahasa Indonesia for alignment with national standards.
Instead of writing each question individually, teachers define a question template with:
{variable} placeholdersThe engine then expands the template into N unique variants, all meeting the same cognitive objective.
A dedicated support channel operates across WhatsApp Business and email, staffed by former educators who understand classroom realities. Average first response under 90 seconds during operational hours (06:00–21:00 WIB).
┌─────────────────────┐
│ React 19 Client │ ← UI layer with Server Components + RSC streaming
│ (Tailwind + Radix) │
└─────────┬───────────┘
│ HTTP (Hono)
┌─────────▼───────────┐
│ Hono API Server │ ← Edge-ready, runs on Cloudflare Workers / Node
│ (REST + SSE) │
└─────────┬───────────┘
│ Effect-TS
┌─────────▼───────────┐
│ Effect-TS Domain │ ← All business logic in pure, typed Effects
│ (Question Engine) │
└─────────┬───────────┘
│
┌─────────▼───────────┐
│ Data Access Layer │ ← SQLite (local dev) / Neon (production)
│ (Drizzle ORM) │
└─────────────────────┘
| Directory | Purpose |
|---|---|
/apps/web | React 19 SPA with file-based routing (TanStack Router) |
/apps/api | Hono server with Effect-TS middleware |
/packages/core | Domain models, question strategy, validation |
/packages/print | Layout engine for print CSS generation |
/packages/i18n | Internationalization (id, en) with Paraglide |
/tooling | ESLint, Prettier, TypeScript configs |
/examples | Sample question templates and generated PDF previews |
@react-email/components styleFor those who wish to understand the engine from the inside—not for end-users.
corepack enabled)pnpm (workspace root)pnpm install at the rootpnpm dev to launch both API and web in watch modelocalhost:5173 and open the "Buat Soal Baru" pageNavigate to the question editor, select "Matematika – Fase B – Operasi Hitung," and click "Generate from Template." The engine will produce a 10-question assessment in under 2 seconds.
We treat every assessment as a conversation between three parties:
The UI deliberately avoids flashy animations. The most important visual feedback is a clean print preview. The most important metric is not user engagement—it is the reduction in teacher overtime hours.
All question generation happens client-side by default. The AI integration (Claude) is optional and opted-in. No student names are stored on any server. The answer key generator operates entirely in the browser's memory.
This project is released under the MIT License. You are free to use, modify, and distribute it for any purpose—commercial or non-commercial—provided the original copyright notice is included.
Copyright © 2026 by the contributors of GURU: Arjuna Quiz Engine.
This tool is an educational aid, not a replacement for professional pedagogical judgment. Automated question generation may occasionally produce items that require human review for cultural sensitivity or contextual accuracy. Teachers should always review generated assessments before distribution.
The authors and contributors assume no liability for any consequences arising from the use of this software in high-stakes testing environments. Always cross-reference with your local curriculum coordinator.
Contributions are welcomed with warmth. Before submitting a pull request:
pnpm lint and pnpm type-check across the monorepo/examples if adding a new subject domainWe maintain a Code of Conduct grounded in the principle of gotong royong—mutual cooperation.
GURU: Arjuna Quiz Engine — crafted for the teachers of Indonesia, by builders who remember sitting in those wooden desks.
⚠️ Experimentelle Skill-Sammlung für deutsches Recht (Arbeits-, Gesellschafts-, Insolvenz-, Datenschutz-, Prozessrecht u
Manage multiple Claude Code agents from TUI or Web with tmux and git worktrees
Project management using GitHub Issues + Git worktrees for parallel agent execution
Core skills library for Claude Code with 20+ battle-tested skills including TDD, debugging, and brainstorming