3.6 KiB
3.6 KiB
Changelog
Semua perubahan penting pada proyek Aplikasi Absensi Akademik didokumentasikan dalam file ini.
[Unreleased] - Versi Terbaru (Redesign & Backend Integration)
Perubahan besar-besaran dilakukan pada arsitektur aplikasi, beralih dari aplikasi single-screen sederhana menjadi aplikasi manajemen akademik yang komprehensif dengan autentikasi dan validasi keamanan.
✨ Fitur Baru (Added)
- Sistem Autentikasi:
- Menambahkan layar Login dan Register.
- Integrasi JWT Authentication (penyimpanan token via
SharedPreferences). - Manajemen sesi pengguna (Auto-login jika token tersimpan).
- Manajemen Jadwal & Mata Kuliah:
- Menambahkan fitur pengambilan data Jadwal Kuliah hari ini dari database.
- Dropdown pemilihan mata kuliah saat melakukan absensi.
- Validasi Keamanan Tingkat Lanjut:
- Geofencing: Validasi lokasi dalam radius 500m dari koordinat kampus.
- Anti-Fake GPS: Logika deteksi aplikasi Mock Location untuk mencegah kecurangan.
- Face Detection: Integrasi CameraX + ML Kit (tersirat dalam logika kamera baru) untuk mewajibkan deteksi wajah saat status "HADIR".
- Fitur Kamera Kustom:
- Mengganti intent kamera bawaan (
MediaStore) dengan CameraX tertanam dalam UI. - Fitur overlay kamera untuk panduan posisi wajah/dokumen.
- Dukungan kamera depan (selfie) dan belakang (dokumen).
- Mengganti intent kamera bawaan (
- Riwayat & Profil:
- Menambahkan tab Riwayat Absensi untuk melihat log kehadiran dan bukti foto.
- Menambahkan tab Profil yang menampilkan data mahasiswa dan fitur Logout.
- Multi-Status Absensi:
- Dukungan untuk status HADIR, SAKIT, dan IZIN.
- Logika validasi berbeda untuk setiap status (Sakit/Izin tidak butuh radius lokasi).
🎨 Antarmuka & UX (Changed)
- UI Overhaul (Material3):
- Redesign total menggunakan Jetpack Compose Material3.
- Penerapan tema identitas kampus (Gold & Maroon).
- Penggunaan komponen UI modern:
Card,NavigationBar(Bottom Nav),Gradient Button.
- Navigasi:
- Implementasi Bottom Navigation Bar dengan 4 menu utama (Absensi, Kelas, Riwayat, Profil).
- Transisi antar layar (Login <-> Main <-> Register).
- Feedback User:
- Loading indicator saat proses API berjalan.
- Dialog error dan sukses yang lebih informatif dibandingkan
Toastsederhana.
⚙️ Teknis & Backend (Changed)
- Migrasi API:
- Sebelumnya: Mengirim data hardcoded langsung ke Webhook N8N via
HttpURLConnection. - Sekarang: Berkomunikasi dengan Backend Python Flask (
/api/auth,/api/absensi,/api/jadwal). Backend yang kemudian meneruskan data ke N8N.
- Sebelumnya: Mengirim data hardcoded langsung ke Webhook N8N via
- Struktur Kode:
- Refactoring dari Single Activity Monolith menjadi struktur modular.
- Pemisahan logic ke dalam:
AppConstants(Konfigurasi URL & Koordinat).UserPreferences(Manajemen sesi lokal).Data Classes(Mahasiswa, Jadwal, Riwayat).- Helper functions (Bitmap Converter, Distance Calculation).
🔥 Dihapus (Removed)
- Menghapus pengiriman data hardcoded (NPM "12345") pada fungsi
kirimKeN8n. - Menghapus penggunaan
MediaStore.ACTION_IMAGE_CAPTURE(Intent kamera eksternal). - Menghapus tampilan single-screen sederhana tanpa navigasi.
[Legacy] - Versi Awal (Sebelum Redesign)
Versi purwarupa (prototype) untuk pengujian fungsionalitas dasar.
Fitur
- Pengambilan titik koordinat GPS sederhana (
FusedLocationProvider). - Pengambilan foto menggunakan aplikasi kamera bawaan HP (
Intent). - Pengiriman data dummy langsung ke Webhook N8N.
- Tampilan UI dasar menggunakan
ColumndanButtonstandar.