YTAQWALILA­HSMG — ABSENSI ONLINE
Versi awal untuk uji lokal XAMPP; PHP 7.2–8.4 dan MySQL/MariaDB.

INSTALASI XAMPP
1. Ekstrak folder ytaqwalilahsmg ke C:\xampp\htdocs\ytaqwalilahsmg
2. Jalankan Apache dan MySQL dari XAMPP Control Panel.
3. Buka http://localhost/phpmyadmin
4. Import file database.sql. File ini membuat database ytaqwalilahsmg dan tabelnya.
   CATATAN: database.sql menghapus tabel aplikasi bernama sama saat diimpor ulang. Jangan impor ulang setelah memiliki data penting.
5. Buka config.php. Default XAMPP: host localhost, database ytaqwalilahsmg, user root, password kosong.
6. Buka http://localhost/ytaqwalilahsmg/install_admin.php sekali. Jika admin belum ada, file ini membuat akun awal.
7. HAPUS install_admin.php setelah berhasil digunakan.
8. Buka http://localhost/ytaqwalilahsmg/admin_login.php
   Username: admin
   Password awal: Admin123!
   Ubah password awal sebelum aplikasi dipakai sungguhan. Versi awal belum menyediakan halaman ubah password; ubah melalui alat database dengan hash password_hash dari PHP.
9. Tambahkan anggota dan kegiatan melalui panel admin.

CARA IMPOR ANGGOTA
Unggah .xlsx (sheet pertama) atau .csv. Baris pertama berisi header:
nama | jenjang | kode (opsional)
Nilai jenjang: RA, MI, MTs, MA, TPQ, MADIN, PONPES.
Untuk CSV dari Excel, simpan sebagai CSV UTF-8 dengan pemisah koma.
Pastikan ekstensi PHP zip dan SimpleXML aktif untuk impor XLSX.

KOORDINAT KEGIATAN
Ambil latitude dan longitude dari Google Maps (klik kanan titik lokasi lalu salin koordinat).
Radius dalam meter diatur per kegiatan.
Kegiatan harus aktif dan waktu absensi harus berada dalam jadwal jika jadwal diisi.

KAMERA DAN GPS
- Izinkan kamera dan lokasi pada browser.
- localhost dianggap secure context oleh browser modern.
- Kamera depan diminta melalui facingMode=user. Perangkat/browser tertentu dapat mengabaikan permintaan tersebut.
- Foto dikirim sebagai JPEG hasil tangkapan kamera. Tidak tersedia input galeri.
- GPS browser dapat dipalsukan; ini bukan sistem anti-kecurangan absolut.
- GPS accuracy dicatat tetapi pada versi awal tidak digunakan sebagai penolakan otomatis.
- Jangan gunakan HTTP publik untuk kamera/GPS; gunakan HTTPS.

BATASAN VERSI AWAL
- Dashboard admin, tambah/nonaktif anggota, impor XLSX/CSV, tambah/nonaktif kegiatan, validasi radius, cegah absensi ganda, laporan dan ekspor CSV tersedia.
- Pengeditan kegiatan/anggota, reset password dari UI, filter jadwal per jenjang, rekap tidak hadir, dan audit log belum termasuk versi awal.
- Tabel foto menyimpan nama file dan berkas disimpan di uploads/selfies. Lindungi akses foto di hosting sesuai kebijakan privasi.
- Uji dulu di XAMPP dan buat backup database sebelum update.


PEMBARUAN RESET ABSENSI UNTUK UJI COBA
- Menu baru: Admin > Reset Absensi.
- Menghapus seluruh baris tabel attendance dan foto selfie terkait saja.
- Data anggota, jenjang, kegiatan, dan pengaturan tidak dihapus.
- Backup folder dan database terlebih dahulu. Jangan mengimpor ulang database.sql ke database berisi data karena skrip instalasi dapat menghapus tabel.
