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:

      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.
Description
No description provided
Readme 1.2 MiB
Languages
JavaScript 53.7%
HTML 28.2%
CSS 18%
Batchfile 0.1%