# SMAN1 Mobile Device Client (Web/PWA) Aplikasi web mobile-first untuk **perangkat absensi** yang terhubung ke backend CodeIgniter 4. > Fokusnya: mempermudah testing dan penggunaan awal di Android (Chrome) tanpa perlu build APK native dulu. Nantinya bisa dibungkus jadi aplikasi Android (WebView / TWA) jika dibutuhkan. ## Struktur - `index.html` — halaman utama device absensi - `styles.css` — styling mobile-first (tombol besar, UI simpel untuk layar sentuh) - `app.js` — logic pemanggilan API backend `/api/attendance/checkin` ## Fitur - Simpan **Backend URL**, `device_code`, dan `api_key` di localStorage. - Ambil lokasi GPS lewat `navigator.geolocation` dan kirim ke backend. - Form sederhana untuk input `student_id` (sementara, menunggu integrasi Face Recognition / QR). - Tampilkan hasil status: - `PRESENT`, `LATE`, `OUTSIDE_ZONE`, `NO_SCHEDULE`, `INVALID_DEVICE`, dll. - Desain UI: - Satu kolom, tombol besar, teks jelas, nyaman dipakai di HP Android (Chrome). ## Cara Menjalankan (dev) 1. Pastikan backend jalan di misalnya: - `http://localhost/sman1/backend/public` - atau IP di jaringan lokal, misal `http://192.168.1.10/sman1/backend/public` 2. Buka folder `mobile` di VSCode / editor. 3. Jalankan static server sederhana (opsi): - Dengan PHP: ```bash cd mobile php -S localhost:8001 ``` Lalu buka `http://localhost:8001` di browser Android. - Atau cukup buka `index.html` langsung di browser (double click), tapi lebih baik lewat HTTP. 4. Di HP Android (Chrome): - Akses: `http://IP_LAPTOP:8001` (misal `http://192.168.1.10:8001`). - Masukkan: - **Backend URL**: `http://IP_LAPTOP/sman1/backend/public` - **Device Code** dan **API Key** dari halaman **Device Absen** di dashboard. - Isi `ID Siswa`, pastikan ada jadwal aktif dan zona device sudah diatur. - Tekan **Check-in Sekarang**. ## Integrasi Lanjutan Ke depan, layar ini bisa dikembangkan menjadi: - Integrasi kamera + Face Recognition (panggil external engine, hanya kirim `student_id` ke backend). - Scan QR code untuk `student_id`. - Pembatasan UI (mode kiosk) untuk dipasang di tablet di gerbang sekolah.