# 🚀 Smart-Attendance: Sistem Absensi Mahasiswa Terintegrasi Cloud [![Android](https://img.shields.io/badge/Platform-Android-brightgreen.svg)](https://developer.android.com/) [![Kotlin](https://img.shields.io/badge/Language-Kotlin-blue.svg)](https://kotlinlang.org/) [![Jetpack Compose](https://img.shields.io/badge/UI-Jetpack%20Compose-orange.svg)](https://developer.android.com/jetpack/compose) [![SQLite](https://img.shields.io/badge/Database-SQLite-lightgrey.svg)](https://www.sqlite.org/) **Smart-Attendance** adalah platform absensi mahasiswa berbasis mobile yang menggabungkan keamanan database lokal dengan validasi geografis dan biometrik visual secara *real-time*. Aplikasi ini dikembangkan menggunakan **Jetpack Compose** untuk memberikan pengalaman pengguna yang modern dan responsif. --- ## 📸 Antarmuka Aplikasi (Mockup) | Layar Registrasi | Layar Login | Dashboard Absensi | | :---: | :---: | :---: | | ![Register](https://raw.githubusercontent.com/nabilasuwandira/Starter-EAS-2025-2026/main/register.png) | ![Login](https://raw.githubusercontent.com/nabilasuwandira/Starter-EAS-2025-2026/main/login.png) | ![Dashboard](https://raw.githubusercontent.com/nabilasuwandira/Starter-EAS-2025-2026/main/dashboard.png) | | *Pendaftaran Akun (Nama, NPM, Password)* | *Masuk Sistem menggunakan NPM* | *Validasi Lokasi & Foto Wajah* | > **Catatan:** Pastikan Anda menyimpan file gambar di folder root project dengan nama `register.png`, `login.png`, dan `dashboard.png` agar muncul di GitHub. --- ## 🌟 Fitur Utama - **Otentikasi SQLite**: Pendaftaran Akun (Nama, NPM, Password) dan Login aman yang tersimpan secara lokal di perangkat. - **Geo-Precision Tracking**: Mendeteksi lokasi presisi (Latitude & Longitude) menggunakan *Fused Location Provider API* dengan akurasi tinggi. - **Visual Proof Recognition**: Pengambilan foto wajah langsung melalui kamera aplikasi sebagai bukti kehadiran fisik yang valid. - **Sinkronisasi Cloud**: Data absensi (NPM, Nama, Koordinat, Mata Kuliah, dan Foto) otomatis terkirim ke **Google Sheets** via **n8n Webhook**. - **UI/UX Modern**: Desain antarmuka bersih dengan tema gradasi Hijau-Kuning yang segar sesuai standar Material Design 3. - **Refresh Lokasi**: Tombol manual untuk memperbarui koordinat GPS jika posisi dirasa kurang akurat. --- ## 🛠️ Stack Teknologi - **UI Framework**: Jetpack Compose (Declarative UI) - **Bahasa**: Kotlin - **Local Database**: SQLite (Manajemen profil pengguna) - **Location**: Google Play Services Location API - **Networking**: HttpURLConnection (JSON Data Transmission) - **Automation**: n8n.io (Integrasi Webhook ke Google Sheets) --- ## 🏗️ Struktur Data JSON (Payload) Data yang dikirimkan ke server memiliki struktur berikut: ```json { "npm": "202310715066", "nama": "Nabila Suwandira", "latitude": 37.421998, "longitude": -122.084000, "mata_kuliah": "Pemrograman Perangkat Bergerak", "timestamp": 1739456789000, "foto_base64": "/9j/4AAQSkZJRg..." } ``` --- ## 📱 Panduan Penggunaan 1. **Registrasi**: Buka aplikasi, pilih "Daftar Sekarang". Isi Nama Lengkap, NPM, dan Password. 2. **Login**: Masuk menggunakan NPM dan Password yang telah dibuat. 3. **Absensi**: - Pastikan GPS aktif. - Isi atau verifikasi **Mata Kuliah**. - Ambil foto wajah dengan menekan tombol **AMBIL FOTO**. - Tekan **KIRIM ABSENSI** untuk mengirim data ke server. 4. **Logout**: Tekan ikon profil di pojok kanan atas untuk keluar. --- ## 📡 Monitoring Data Verifikasi pengiriman data absensi secara langsung melalui: * **Log Real-time**: [ntfy.ubharajaya.ac.id/EAS](https://ntfy.ubharajaya.ac.id/EAS) * **Database Cloud**: [Spreadsheet Absensi Mahasiswa](https://docs.google.com/spreadsheets/d/1jH15MfnNgpPGuGeid0hYfY7fFUHCEFbCmg8afTyyLZs/edit?gid=0#gid=0) --- ## 🎓 Informasi Project **Nama**: Nabila Suwandira **NPM**: 202310715066 **Instansi**: Universitas Bhayangkara Jakarta Raya **Mata Kuliah**: Pemrograman Perangkat Bergerak **Tujuan**: Proyek Evaluasi Akhir Semester (EAS) 2025-2026