🚀 Smart-Attendance: Sistem Absensi Digital Terintegrasi Cloud
Smart-Attendance adalah platform absensi mahasiswa berbasis mobile yang menggabungkan keamanan database lokal dengan validasi biometrik visual dan geografis secara real-time. Proyek ini dirancang untuk memastikan validitas kehadiran mahasiswa dengan alur kerja yang sepenuhnya otomatis dari perangkat Android hingga ke sistem manajemen data cloud.
📸 Mockup Aplikasi
Berikut adalah pratinjau desain antarmuka pengguna (UI) dari aplikasi Smart-Attendance:
Gambar di atas merupakan representasi visual dari layar Login, Registrasi, dan Dashboard Absensi.
🌟 Fitur Utama
- Otentikasi SQLite: Pendaftaran dan masuk akun yang aman dengan validasi NPM unik langsung dari database lokal perangkat.
- Geo-Precision Tracking: Mendeteksi lokasi presisi (Latitude & Longitude) menggunakan Fused Location Provider API dengan prioritas akurasi tinggi.
- Visual Proof Recognition: Integrasi kamera untuk pengambilan foto wajah (selfie) secara real-time sebagai bukti fisik kehadiran.
- Auto-Sync Integration: Sinkronisasi data otomatis ke Google Sheets melalui jembatan n8n Automation Webhook.
- Manajemen Mata Kuliah: Fitur pemilihan atau penginputan mata kuliah yang fleksibel saat melakukan absensi.
- Material Design 3: UI modern dengan gradasi warna profesional (Hijau Tua, Kuning, Putih) dan komponen kartu yang intuitif.
🛠️ Stack Teknologi
| Komponen | Teknologi yang Digunakan |
|---|---|
| Framework UI | Jetpack Compose (Modern Toolkit) |
| Bahasa Pemrograman | Kotlin (100%) |
| Location Services | Google Play Services (Fused Location) |
| Database Lokal | SQLite (Manajemen User & Kredensial) |
| Networking | Java HttpURLConnection (JSON Payload) |
| Automation Tool | n8n.io (Webhook Workflow) |
| Cloud Storage | Google Sheets (Database Akhir) |
🏗️ Arsitektur Data
1. Database Schema (SQLite)
Tabel users menyimpan data profil mahasiswa di memori internal:
nama(TEXT): Nama lengkap mahasiswa.npm(TEXT - UNIQUE): Identitas utama mahasiswa.password(TEXT): Kata sandi akses akun.
2. Payload Data (JSON)
Setiap paket absensi yang dikirim memiliki struktur data berikut:
{
"npm": "20210710001",
"nama": "Nabila Suwandira",
"latitude": -6.229728,
"longitude": 106.989250,
"mata_kuliah": "Pemrograman Perangkat Bergerak",
"timestamp": 1739456789000,
"foto_base64": "/9j/4AAQSkZJRg..."
}
📱 Panduan Penggunaan
- Daftar Akun: Masuk ke menu "Daftar Sekarang", isi Nama, NPM, dan Password.
- Login: Masuk menggunakan NPM dan Password yang telah didaftarkan.
- Berikan Izin: Berikan izin akses Lokasi dan Kamera saat diminta oleh sistem.
- Verifikasi Lokasi: Pastikan koordinat GPS muncul dengan benar. Gunakan tombol Refresh jika posisi kurang akurat.
- Ambil Selfie: Klik "AMBIL FOTO" untuk membuka kamera dan ambil foto wajah dengan jelas.
- Submit Absensi: Klik "KIRIM ABSENSI". Sistem akan memberikan notifikasi jika data telah diterima oleh server.
🔧 Instalasi & Persiapan
- Clone repositori ini.
- Buka project di Android Studio (Ladybug 2024.2.1) atau versi terbaru.
- Pastikan dependensi di
build.gradle.ktssudah tersinkronisasi. - Lakukan Build & Run ke perangkat fisik Android (Min API 28 / Android 9.0).
📡 Monitoring Real-Time
Admin dapat memantau status absensi secara langsung melalui:
- Live Notification: ntfy.ubharajaya.ac.id/EAS
- Database Sheets: Sheet Kehadiran Mahasiswa
🎓 Informasi Project
Nama: Nabila Suwandira
Program Studi: Teknik Informatika
Instansi: Universitas Bhayangkara Jakarta Raya
Mata Kuliah: Pemrograman Perangkat Bergerak
Project: Evaluasi Akhir Semester (EAS) 2025-2026
