Tujuan panduan
Panduan ini membantu panitia memahami monitoring jarak jauh: live video real-time, fallback snapshot kamera berkala, event log proctoring, evidence preview, serta cara mengatasi stage yang terlihat belum dimulai padahal jadwal sesi sudah dibuka.
1. Cara kerja live video proctoring
Peserta membuka runtimePeserta wajib memberi izin kamera/mikrofon dari browser. Tanpa izin browser, live video dan snapshot tidak dapat berjalan.
Pengawas meminta live videoAdmin/asesor yang bertugas membuka detail sesi, tab Proctoring & Evidence, lalu menekan tombol Minta Live Video.
WebRTC menghubungkan browserSistem memakai signaling Laravel polling. Tidak perlu media server untuk penggunaan dasar, tetapi koneksi bergantung kondisi NAT/firewall.
Fallback otomatisJika live video gagal, snapshot berkala, event log, heartbeat, dan evidence preview tetap dipakai sebagai bukti monitoring.
2. Batasan NAT/firewall dan fallback
WebRTC biasanya butuh STUN dan kadang TURN. STUN cukup untuk banyak koneksi biasa, tetapi bisa gagal pada jaringan kantor, VPN, firewall ketat, NAT simetris, atau jaringan publik yang membatasi peer-to-peer.
Jika live video tidak tersambung
- Pastikan peserta membuka halaman runtime stage dan tidak menutup tab.
- Pastikan browser peserta mengizinkan kamera dan mikrofon.
- Gunakan HTTPS; kamera/mikrofon sering ditolak browser pada HTTP selain localhost.
- Cek tab Proctoring & Evidence: event log, heartbeat, dan snapshot berkala.
- Gunakan tombol Minta Otorisasi Ulang jika izin browser berubah/terblokir.
- Jika jaringan terlalu ketat, lanjutkan pengawasan memakai snapshot berkala + event log + file evidence.
3. Snapshot berkala dan evidence preview
Snapshot adalah fallback yang lebih ringan dibanding streaming penuh. Snapshot hanya aktif jika stage mengaktifkan proctoring, peserta menyetujui consent, konfigurasi snapshot aktif, dan browser memberi izin kamera.
- Snapshot disimpan sebagai event periodic_camera_snapshot.
- Admin/asesor yang bertugas dapat membuka preview evidence dari detail sesi.
- Retensi mengikuti pengaturan admin dan
ASSESSMENT_PROCTOR_RETENTION_DAYS.
- Snapshot tidak boleh digunakan di luar kepentingan asesmen, audit, dan penyelesaian sengketa.
4. Event log penting yang perlu dipantau
Kamera/mikrofonIzin diberikan/ditolak, otorisasi ulang, snapshot gagal/berhasil.
Fokus halamanTab blur, keluar fullscreen, pindah tab, online/offline.
Perilaku inputCopy, paste, dan event lain yang relevan dengan integritas tes.
RuntimeHeartbeat, status attempt, timer tersisa, auto-submit, dan upload evidence.
5. Stage terlihat belum dimulai padahal jadwal hari ini
Penyebab paling sering adalah jadwal stage tidak sama dengan jadwal sesi, timezone server/browser berbeda, cache konfigurasi belum dibersihkan, atau admin mengubah jadwal sesi tetapi stage lama masih menyimpan tanggal sebelumnya.
Langkah cepat admin
- Buka detail sesi dan cek tab Stage Sesi: bandingkan Mulai/Selesai sesi dengan Mulai/Selesai stage.
- Jika stage keliru tanggalnya, buka Edit Sesi & Stage lalu samakan jadwal stage dengan sesi.
- Atau jalankan command:
php artisan assessment:repair-stage-windows --session=ID_SESI.
- Pastikan
APP_TIMEZONE=Asia/Jakarta dan jalankan php artisan config:clear.
- Peserta refresh halaman intro setelah jadwal diperbaiki.
6. Konfigurasi .env yang disarankan
APP_TIMEZONE=Asia/Jakarta
ASSESSMENT_STAGE_WINDOW_GRACE_MINUTES=15
ASSESSMENT_STAGE_ALLOW_SESSION_WINDOW_FALLBACK=true
ASSESSMENT_PROCTOR_LIVE_VIDEO_ENABLED=true
ASSESSMENT_PROCTOR_FALLBACK_TO_SNAPSHOT=true
ASSESSMENT_PROCTOR_SNAPSHOT_ENABLED=true
ASSESSMENT_PROCTOR_SNAPSHOT_INTERVAL_SECONDS=60
ASSESSMENT_PROCTOR_RETENTION_DAYS=90
7. Kebijakan operasional singkat
- Selalu tampilkan consent proctoring sebelum peserta mulai stage.
- Batasi akses evidence hanya untuk admin/pengawas/asesor yang bertugas.
- Jelaskan bahwa live video dan snapshot dipakai untuk integritas asesmen, bukan untuk pemantauan di luar sesi.
- Hapus/arsipkan evidence sesuai retensi yang disetujui.
- Jika live video gagal karena jaringan, catat alasan dan gunakan fallback evidence.