76 lines
3.7 KiB
Markdown
76 lines
3.7 KiB
Markdown
# 🎓 Sistem Akademik - Aplikasi Absensi Mahasiswa Pintar
|
|
|
|
## 📌 Deskripsi Proyek
|
|
Aplikasi **Sistem Akademik** adalah solusi absensi mobile modern yang dirancang untuk Mata Kuliah Pemrograman Mobile. Aplikasi ini mengedepankan keamanan dan validitas data dengan menggabungkan teknologi **Geofencing**, **Liveness Detection**, dan **Pencatatan Terintegrasi** untuk mencegah kecurangan absensi.
|
|
|
|
---
|
|
|
|
## 🚀 Fitur Utama
|
|
|
|
### 🔐 Manajemen Akun & Keamanan
|
|
- **Login Mahasiswa**: Autentikasi menggunakan NPM dan Nama Lengkap secara manual.
|
|
- **Logout Akun**: Fitur keluar untuk membersihkan sesi dan kembali ke halaman login.
|
|
- **Database Akun Lokal**: Aktivitas dan riwayat tersimpan secara privat sesuai NPM yang sedang login menggunakan Room Database.
|
|
|
|
### 📍 Validasi Lokasi (Geofencing)
|
|
- **Radius Kampus**: Absensi status "Hadir" hanya dapat dilakukan jika mahasiswa berada dalam radius **50 meter** dari pusat kampus (UBHARA Jaya Bekasi).
|
|
- **Masking Koordinat**: Koordinat yang dikirim ke server diberikan sedikit *offset* otomatis untuk menjaga privasi lokasi mahasiswa.
|
|
|
|
### 📸 Verifikasi Wajah (Liveness Detection)
|
|
- **Deteksi Kedip**: Syarat wajib berkedip untuk memverifikasi mahasiswa adalah orang asli (bukan foto/gambar).
|
|
- **Face Centering & Alignment**: Validasi posisi wajah wajib berada di **tengah layar** dan menghadap **lurus ke depan** sebelum sistem mengambil gambar.
|
|
- **Brightness Override**: Layar otomatis mencerahkan cahaya hingga 100% saat verifikasi untuk hasil foto wajah yang terang dan jelas.
|
|
- **Kondisional Kamera**:
|
|
- Status **Hadir**: Menggunakan sensor Liveness (ML Kit).
|
|
- Status **Ijin/Sakit**: Menggunakan kamera standar untuk dokumentasi bukti biasa.
|
|
|
|
### 🕒 Validasi Waktu & Jadwal
|
|
- **Sistem Jadwal Ketat**: Tombol kirim hanya aktif sesuai jam perkuliahan:
|
|
- **Pemrograman Perangkat Bergerak**: 13:30 - 16:00.
|
|
- **Keamanan Siber**: 16:15 - 18:45.
|
|
- **Input Keterangan (Opsional)**: Tersedia kolom input khusus untuk memberikan alasan tambahan jika mahasiswa memilih status **Ijin** atau **Sakit**.
|
|
|
|
### 📄 Riwayat Absensi
|
|
- **Penyimpanan Permanen**: Riwayat tersimpan di database lokal sehingga tidak hilang saat aplikasi ditutup atau perangkat di-restart.
|
|
- **Format Detail Per Baris**: Menampilkan informasi secara terstruktur:
|
|
1. Foto/Wajah yang diambil.
|
|
2. Waktu pengambilan absensi.
|
|
3. Nama Mata Kuliah & Ruangan.
|
|
4. Status Kehadiran.
|
|
5. **Teks Keterangan** (Muncul khusus jika Ijin/Sakit diisi).
|
|
6. Lokasi (Koordinat GPS).
|
|
|
|
---
|
|
|
|
## 🛠️ Detail Teknis
|
|
|
|
### Daftar Mata Kuliah & Ruangan
|
|
1. **Pemrograman Perangkat Bergerak**
|
|
- Jadwal: 13:30 - 16:00 | Ruangan: Grha Tanoto [W-104]
|
|
2. **Keamanan Siber**
|
|
- Jadwal: 16:15 - 18:45 | Ruangan: R. Said Soekanto [SS-405]
|
|
|
|
### Teknologi Utama
|
|
- **UI**: Jetpack Compose (Material 3) dengan fitur **Searchbar** pada dropdown mata kuliah.
|
|
- **Database**: Room Persistence Library (SQLite) untuk isolasi data per akun.
|
|
- **Vision**: Google ML Kit Face Detection.
|
|
- **Location**: Fused Location Provider API (GPS Presisi).
|
|
|
|
---
|
|
|
|
## 🔐 Izin Aplikasi (Permissions)
|
|
Aplikasi meminta izin secara otomatis saat pertama kali dijalankan:
|
|
- `ACCESS_FINE_LOCATION` (Lokasi akurat)
|
|
- `CAMERA` (Verifikasi wajah & foto bukti)
|
|
- `INTERNET` (Sinkronisasi ke sistem n8n)
|
|
|
|
---
|
|
|
|
## 📂 Link Terkait
|
|
- **Webhook Production**: `https://n8n.lab.ubharajaya.ac.id/webhook/23c6993d-1792-48fb-ad1c-ffc78a3e6254`
|
|
- **Pengecekan Excel**: [Data Absensi Google Sheets](https://docs.google.com/spreadsheets/d/1jH15MfnNgpPGuGeid0hYfY7fFUHCEFbCmg8afTyyLZs/edit?gid=0#gid=0)
|
|
- **Notifikasi Sistem**: [ntfy.sh/EAS](https://ntfy.ubharajaya.ac.id/EAS)
|
|
|
|
---
|
|
*Dibuat untuk Project Akhir Mata Kuliah Pemrograman Mobile 2025/2026.*
|