# Pemecahan Masalah

| Gejala | Penyebab umum | Solusi |
|---|---|---|
| Server tidak mau jalan: *Can't connect to MySQL* | MySQL belum Start / URL salah | Start MySQL di XAMPP; cek `CMS_DATABASE_URL`; pastikan database `classroom_management_db` ada |
| `Access denied for user` | User/password MySQL salah | Perbaiki `.env`; buat pengguna khusus |
| Halaman dashboard kosong / 404 | `frontend/dist` belum dibangun | `cd frontend && npm install && npm run build` |
| Lupa kode setup | File `backend/data/setup_code.txt` | Kode hilang setelah dipakai. Admin hilang: hapus baris di tabel `administrators` dan restart agar kode baru dibuat |
| Komputer siswa tidak muncul | Firewall server menutup 8443; alamat salah; kunci salah; sertifikat tidak dipercaya | Buka port 8443; ping server; periksa kunci di Pengaturan; sertakan `-CaFile`; lihat `C:\ProgramData\ClassroomAgent\agent.log` |
| Komputer tampil Offline padahal menyala | Layanan berhenti / jam tidak sinkron | `services.msc` → “Classroom Management Agent” Start; sinkronkan waktu (perintah ditolak bila selisih jam besar) |
| Perintah “ditolak: signature/expired” | Jam server dan siswa berbeda jauh | Sinkronkan NTP di semua PC |
| Internet tidak terblokir | Agent bukan SYSTEM / firewall policy dikelola GPO lain | Periksa log agent, `Get-NetFirewallRule -Group CMS-Agent` |
| Internet tetap tak bisa dibuka setelah dilepas | Aturan tersisa | `ClassroomCLI.exe uninstall-policies` atau hapus grup firewall “CMS-Agent” dan blok di `hosts` antara penanda `# BEGIN CMS-AGENT` … `# END CMS-AGENT` |
| Batas tab tidak berlaku | Siswa memakai Chrome biasa | Gunakan pintasan “Browser Sekolah” di Desktop (Managed Browser); browser tak terkelola otomatis ditutup bila kebijakan aktif |
| Download tidak bisa diajukan | Bukan Managed Browser / helper tidak jalan | Pastikan siswa login dan helper aktif (ikon agent) |
| Microsoft Store tetap terbuka | Windows Home/Pro | Pembatasan Store butuh Enterprise/Education; gunakan pemblokir proses |
| Wake-on-LAN gagal | BIOS/NIC, Wi-Fi, subnet | Aktifkan WoL di BIOS & NIC, kabel LAN, isi alamat broadcast yang benar |
| Layar tidak tampil | Siswa belum login / helper tidak berjalan / `mss` belum terpasang | Login siswa, periksa log helper |
| Peringatan sertifikat di browser | Self-signed | Wajar; impor `server.crt` ke Trusted Root, atau pakai sertifikat CA sekolah |
| `429 Too Many Requests` | Rate limit login | Tunggu 1 menit |

## Log
Server: jendela konsol `start_server.bat`. Agent: `C:\ProgramData\ClassroomAgent\`. Riwayat dashboard: menu Riwayat Aktivitas.

## Mode uji tanpa efek (dry-run)
`install_agent.ps1 -DryRun` / `main.py run --dry-run`: agent hanya mencatat perintah Windows yang akan dijalankan — berguna untuk memeriksa kebijakan sebelum diterapkan.
