3.9 KiB
3.9 KiB
📱 Aplikasi Absensi Akademik UBHARA Jaya
Mobile (Kotlin) & Backend (Python Flask)
📌 Deskripsi Proyek
Proyek ini merupakan Tugas Project Akhir Mata Kuliah Pemrograman Mobile yang mengimplementasikan sistem absensi akademik berbasis Client-Server.
Sistem ini dirancang untuk validitas tinggi dengan mengintegrasikan:
- ✅ Geofencing (GPS) untuk validasi lokasi kampus.
- ✅ Face Detection (CameraX) untuk validasi biometrik kehadiran.
- ✅ Anti-Fraud untuk mendeteksi penggunaan Fake GPS.
- ✅ Otomatisasi pelaporan real-time ke N8N Webhook.
📸 Tampilan Aplikasi (Mockup)
🎯 Tujuan & Capaian
Proyek ini bertujuan untuk melatih kemampuan Fullstack Mobile Development dengan fokus pada:
- REST API Architecture: Komunikasi aman antara Android dan Python Flask.
- Biometric Validation: Implementasi ML Kit untuk deteksi wajah.
- Security Awareness: Pencegahan kecurangan lokasi (Mock Location).
- Database Logic: Penanganan status otomatis (Auto-Alfa) di sisi server.
🚀 Fitur Utama
| Fitur | Deskripsi |
|---|---|
| 📱 Sisi Mobile | • Smart Attendance: Validasi radius & wajah real-time. • Anti-Fraud: Deteksi & blokir Fake GPS. • Mode Izin/Sakit: Upload bukti dokumen tanpa validasi radius. • Riwayat: Log kehadiran lengkap dengan foto bukti. |
| 💻 Sisi Backend | • JWT Auth: Keamanan token pada setiap request. • Auto-Alfa: Menandai "TIDAK HADIR" otomatis jika telat. • N8N Integration: Kirim data valid ke webhook untuk notifikasi. • Image Compression: Optimasi penyimpanan foto (Base64). |
🗺️ Mekanisme Alur Absensi
🟢 1. Status "HADIR"
- Mahasiswa memilih Jadwal Kelas aktif.
- Validasi Sistem:
- 📍 Lokasi dalam radius 500m?
- 🚫 Tidak ada aplikasi Fake GPS aktif?
- Validasi Wajah: Kamera terbuka, shutter hanya aktif jika wajah terdeteksi.
- Data (Lokasi + Foto Wajah) dikirim ke server.
🟡 2. Status "SAKIT / IZIN"
- Mahasiswa memilih status Sakit/Izin.
- Bypass Lokasi: Validasi radius dilewati.
- Dokumentasi: Kamera dokumen terbuka (Tanpa deteksi wajah).
- Foto surat/bukti dikirim ke server.
🔴 3. Logika Auto-Alfa (Server Side)
Background Process
- Server memantau jadwal kuliah.
- Jika
jam_selesai < jam_sekarangdan tidak ada data masuk ➔ Input otomatis "TIDAK HADIR".
🛠️ Tech Stack
| Komponen | Teknologi |
|---|---|
| Mobile Platform | Android (Kotlin) |
| UI Framework | Jetpack Compose (Material3) |
| Camera & AI | CameraX + ML Kit (Face Analysis) |
| Backend | Python Flask |
| Database | MySQL |
| Integrasi | N8N Webhook |
| AI Assistant | Gemini & Claude (Development Tools) |
⚙️ Konfigurasi & Instalasi
Prasyarat
- Python 3.x
- Android Studio (Ladybug/Latest)
- Koneksi jaringan yang sama (Laptop & HP)
1. Setup Backend
Pastikan server berjalan pada jaringan lokal:
# Install dependencies
pip install -r requirements.txt
# Jalankan server
python app.py
