EAS-202310715297/CHANGELOG.md

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).
  • 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 Toast sederhana.

⚙️ 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.
  • 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 Column dan Button standar.