EAS-202310715297/README.md

3.9 KiB

📱 Aplikasi Absensi Akademik UBHARA Jaya

Mobile (Kotlin) & Backend (Python Flask)

Kotlin Jetpack Compose Python Flask MySQL n8n

📋 Lihat Changelog


📌 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)

Mockup Aplikasi Absensi

🎯 Tujuan & Capaian

Proyek ini bertujuan untuk melatih kemampuan Fullstack Mobile Development dengan fokus pada:

  1. REST API Architecture: Komunikasi aman antara Android dan Python Flask.
  2. Biometric Validation: Implementasi ML Kit untuk deteksi wajah.
  3. Security Awareness: Pencegahan kecurangan lokasi (Mock Location).
  4. 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"

  1. Mahasiswa memilih Jadwal Kelas aktif.
  2. Validasi Sistem:
    • 📍 Lokasi dalam radius 500m?
    • 🚫 Tidak ada aplikasi Fake GPS aktif?
  3. Validasi Wajah: Kamera terbuka, shutter hanya aktif jika wajah terdeteksi.
  4. Data (Lokasi + Foto Wajah) dikirim ke server.

🟡 2. Status "SAKIT / IZIN"

  1. Mahasiswa memilih status Sakit/Izin.
  2. Bypass Lokasi: Validasi radius dilewati.
  3. Dokumentasi: Kamera dokumen terbuka (Tanpa deteksi wajah).
  4. Foto surat/bukti dikirim ke server.

🔴 3. Logika Auto-Alfa (Server Side)

Background Process

  • Server memantau jadwal kuliah.
  • Jika jam_selesai < jam_sekarang dan 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