# TOEFL Production Backlog

Dokumen ini memecah kebutuhan aplikasi TOEFL kampus menjadi backlog teknis yang bisa dieksekusi bertahap.

## 1. Critical Before Go-Live

- Ganti `sqlite` ke `mysql` atau `postgresql` untuk ujian serentak lintas ruang.
- Tambahkan `session locking` agar satu peserta hanya punya satu sesi aktif per paket.
- Tambahkan halaman proctoring untuk monitor peserta, status koneksi, dan waktu tersisa.
- Tambahkan finalisasi otomatis saat waktu habis.
- Tambahkan publish hasil resmi terpisah dari submit peserta.
- Tambahkan backup database sebelum dan sesudah setiap gelombang ujian.
- Tambahkan audit trail untuk login, start exam, save answer, timeout, submit, score publish.

## 2. High Priority

- Bank soal dengan workflow `draft -> reviewed -> published -> archived`.
- Dukungan import paket soal dari spreadsheet/template.
- Dukungan media listening yang tersimpan aman dan tidak mudah ditebak URL-nya.
- Validasi kualitas paket: jumlah soal per section, satu jawaban benar per soal, mapping skor lengkap.
- Halaman peserta untuk dashboard ujian, instruksi, dan riwayat hasil.
- Halaman operator untuk penjadwalan gelombang ujian.

## 3. Security and Compliance

- Wajibkan 2FA untuk `super-admin`, `proctor`, dan `scorer`.
- Batasi IP atau lokasi untuk panel admin dan proctor.
- Tambahkan kebijakan rotasi password untuk akun petugas.
- Enkripsi export hasil dan arsip audit.
- Tambahkan retention policy untuk log dan hasil ujian.

## 4. Testing and Operations

- Feature test untuk timeout, resume, answer overwrite, submit ganda, dan akses tidak sah.
- Monitoring error dan notifikasi jika autosave gagal.
- Smoke test sebelum hari ujian.
- Seed data staging yang mendekati kondisi produksi.

## 5. UX for Livewire Layer

- Countdown sinkron dengan server.
- Autosave jawaban dengan feedback status.
- Navigasi section dan nomor soal.
- Proteksi accidental refresh/leave.
- Halaman hasil dengan status `draft` vs `published`.
