Platform assessment lisan berbasis AI untuk guru dan siswa dengan multi-tenant, kelas, approval join, speech input, evaluasi berbasis rubrik terverifikasi, dan dashboard riset.
- Auth multi-role: admin, guru, siswa
- Multi-tenant: data tenant terpisah penuh
- Kelas: guru membuat kelas dengan kode join, siswa request join, guru approve
- Assessment: hanya muncul pada kelas yang sesuai, dengan retake & batas waktu per soal
- AI generate soal: dari topik, kompetensi, rubrik, dan tingkat kesulitan — dengan Rubrik Alignment otomatis
- AI enforce single-substance: mencegah soal bertingkat (multi-part prompt)
- Per-question rubric: setiap soal memiliki rubrik subset yang diselaraskan dengan substansinya
- Kustomisasi soal: guru edit manual, minta AI perbaiki, atau AI Rubric Alignment
- Siswa menjawab: rekaman suara atau mengetik transkripsi manual
- AI evaluasi: evidence-based scoring dengan grounding verifikasi
- Trustworthy Assessment Harness: verification gate, publication gate, reproducibility hashes, reliability vector
- Komplain siswa: siswa bisa komplain skor, guru respon atau tolak (skor -20)
- Dashboard Observabilitas: telemetry, latency, token usage, cost, KV-cache, prefix optimization
- Dashboard Riset: AI-vs-Human metrics, inter-rater reliability, approval flow, export trace
- API publik v1: dengan API key authentication
- SQLite lokal: untuk data aplikasi
-
Install dependency:
npm install
-
Buat file
.envdari template:cp .env.example .env
-
Isi
OPENROUTER_API_KEYdi.env. -
Evaluasi menggunakan Trustworthy Assessment Harness — satu-satunya evaluation engine (evidence verification, publication gate, reproducibility, reliability, risk-based adaptive verification). Tambahkan ke
.env:HARNESS_PROVIDER=openrouter MAX_EVALUATION_RETRIES=1
HARNESS_PROVIDER=mockmemakai evaluator deterministik tanpa memerlukan API key, berguna untuk CI/develop. Lihat.env.exampleuntuk semua variabel. -
Opsional — aktifkan widget simulasi peran untuk development:
ENABLE_DEMO_SIMULATION=true
-
Jalankan server:
npm run dev
-
Buka:
http://127.0.0.1:4173Dokumentasi API publik (Swagger UI):
http://127.0.0.1:4173/api/docs
| Perintah | Deskripsi |
|---|---|
npm run dev |
Build frontend + start server lokal |
npm run build |
Build static frontend (esbuild) |
npm test |
Jalankan 239+ test unit/integrasi |
npm run check |
Syntax check + semua test |
npm run test:e2e |
Playwright end-to-end tests |
node scripts/run-benchmark.js |
Benchmark experiment CLI |
18 file test mencakup:
- Scoring: weighted mean, renormalisasi, determinism, edge cases
- Harness: verification gate, publication gate, grounding, reliability
- AI service: generate questions, evaluation, rubric alignment, single-substance
- Auth: register, login, session, CSRF, rate limit
- API: API keys, assessment CRUD, submission, complaints
- Research: AI-vs-Human metrics, inter-rater, experiment runner
- Security: CSP headers, rate limiting, authorization boundaries
npm test # 239 tests, ~25 detik
npm run check # syntax check + test.envtidak boleh di-commit.- Database lokal tersimpan di
data/lisan_ai.db. - Session memakai cookie HttpOnly + SameSite.
- Password disimpan dengan hash
scrypt. - CSRF token untuk semua state-changing request.
- Rate limiting pada login (5×/menit) dan API AI.
- Security headers: CSP, X-Content-Type-Options, X-Frame-Options, Referrer-Policy.
- API assessment, kelas, user, dan submission diproteksi oleh role.
- API key authentication untuk API v1 publik.
- Harness publication gate: FAIL tidak dipublikasi, REVIEW butuh approval manusia.
- Reset password & email verification
- Billing/plan quota per tenant
- Export report CSV/PDF
Mekanisme follow-up/probing untuk menilai kedalaman pemikiran siswa, bukan sekadar kelancaran bicara.
- Guru/penilai bisa mengajukan pertanyaan lanjutan berdasarkan respons siswa.
- Probing menilai proses berpikir & penalaran (mengapa, bagaimana, dugaan alternatif), bukan hanya jawaban akhir.
- Direndang sebagai nilai anti-AI-cheating: jawaban lisan spontan + probing dinamis sulit diprediksi atau disalin dari model.
- Evaluasi harus menangkap bukti kedalaman (alasan, struktur argumen), bukan kesan kefasihan permukaan.
- Pembuatan soal harus sesuai skenario ujian lisan nyata, bukan sekadar pertanyaan tertulis yang dibacakan.
- Bentuk pertanyaan lebih banyak menguji cara dan proses berpikir yang harus diutarakan spontan lewat lisan.
- Tujuan: mengukur komunikasi + penalaran (kompetensi abad 21), bukan ingatan atau jawaban hafalan.
https://github.com/Hi-Day/LisanAI/raw/master/videos/lisan.ai.mp4
Proyek terdeploy di Vercel:
https://lisan-ai-assessment.vercel.app
Push ke branch master otomatis memicu redeploy via integrasi GitHub.
Contributors:
- Hi-Day
- aryakpt