From 5ba8853bda70971ede1b909d6dcab7b95d2b4b33 Mon Sep 17 00:00:00 2001 From: nabilasuwandira <202310715066@mhs.ubharajaya.ac.id> Date: Wed, 14 Jan 2026 18:16:56 +0700 Subject: [PATCH] README.md --- README.md | 100 ++++++++++++++++++++++++------------------------------ 1 file changed, 45 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index e6c4a37..f8b2b19 100644 --- a/README.md +++ b/README.md @@ -1,89 +1,79 @@ -# 🚀 Smart-Attendance: Sistem Absensi Mahasiswa Terintegrasi Cloud +# 🚀 Smart-Attendance: Sistem Absensi Digital 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. +**Smart-Attendance** adalah aplikasi Android inovatif yang dirancang untuk mengotomatisasi proses absensi mahasiswa. Aplikasi ini memastikan validitas data kehadiran dengan menggabungkan tiga pilar verifikasi: **Identitas Digital (SQLite)**, **Geografis (GPS)**, dan **Biometrik Visual (Kamera)**. Seluruh data disinkronkan secara *real-time* ke **Google Sheets** melalui sistem automasi **n8n**. --- -## 📸 Antarmuka Aplikasi (Mockup) +## 📸 Pratinjau Antarmuka (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. +| ![Register](./register.png) | ![Login](./login.png) | ![Dashboard](./dashboard.png) | +| *Registrasi Akun Baru (Nama, NPM, Password)* | *Autentikasi Aman Berbasis NPM* | *Validasi Lokasi, Foto & Mata Kuliah* | --- ## 🌟 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. +- **Otentikasi SQLite Lokal**: Sistem pendaftaran dan masuk yang mandiri, menyimpan data kredensial secara aman di memori internal perangkat. +- **Presisi Lokasi GPS**: Mengintegrasikan *Google Fused Location Provider* untuk mendapatkan koordinat Latitude & Longitude dengan akurasi tinggi (6 digit desimal). +- **Verifikasi Visual (Selfie)**: Mengambil foto wajah secara langsung sebagai bukti kehadiran fisik yang tidak dapat dimanipulasi dari galeri. +- **Sinkronisasi Cloud Otomatis**: Pengiriman data menggunakan protokol JSON melalui Webhook n8n yang langsung terhubung ke database Google Sheets. +- **Antarmuka Modern (Material 3)**: Desain UI responsif menggunakan Jetpack Compose dengan tema gradasi warna profesional (Hijau, Kuning, Putih). +- **Fitur Refresh Lokasi**: Memungkinkan pengguna memperbarui koordinat GPS secara manual untuk akurasi maksimal sebelum melakukan absensi. --- ## 🛠️ 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) +| Sektor | Teknologi | +| :--- | :--- | +| **Bahasa Pemrograman** | [Kotlin](https://kotlinlang.org/) | +| **Framework UI** | [Jetpack Compose](https://developer.android.com/jetpack/compose) | +| **Database Lokal** | SQLite (Room/OpenHelper) | +| **Layanan Lokasi** | Google Play Services Location (Fused Location) | +| **Networking** | Java HttpURLConnection & JSONObject | +| **Backend/Automation** | n8n.io Webhook Workflow | +| **Database Cloud** | Google Sheets | --- -## 🏗️ Struktur Data JSON (Payload) +## 🏗️ Arsitektur Aliran Data -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..." -} -``` +1. **Input**: Mahasiswa memasukkan Nama, NPM, Mata Kuliah, serta mengambil foto wajah dan titik lokasi. +2. **Processing**: Aplikasi mengonversi foto ke format **Base64** dan mengemas seluruh data ke dalam objek **JSON**. +3. **Transmission**: Data dikirim via jaringan Internet ke URL Webhook n8n. +4. **Storage**: Server n8n mengolah data dan memasukkannya secara rapi ke baris kolom di Google Sheets. --- ## 📱 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. +1. **Pendaftaran**: Buka aplikasi, pilih "Daftar Sekarang", masukkan Nama Lengkap, NPM, dan Password Anda. +2. **Masuk**: Gunakan NPM dan Password yang telah dibuat untuk masuk ke Dashboard. +3. **Izin Perangkat**: Berikan izin **Akses Lokasi** dan **Kamera** agar aplikasi berfungsi dengan benar. +4. **Proses Absen**: + - Pastikan koordinat lokasi muncul (Gunakan tombol **Refresh** jika perlu). + - Verifikasi nama **Mata Kuliah** yang muncul. + - Tekan **AMBIL FOTO** dan lakukan selfie. + - Tekan **KIRIM ABSENSI**. +5. **Konfirmasi**: Tunggu pesan "Absensi diterima server" muncul di layar. --- -## 📡 Monitoring Data +## 📊 Monitoring & Validasi -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) +Data kehadiran dapat dipantau langsung oleh Admin/Dosen melalui: +* **Live Log**: [ntfy.ubharajaya.ac.id/EAS](https://ntfy.ubharajaya.ac.id/EAS) +* **Database Kehadiran**: [Link Spreadsheet Google Sheets](https://docs.google.com/spreadsheets/d/1jH15MfnNgpPGuGeid0hYfY7fFUHCEFbCmg8afTyyLZs/edit?gid=0#gid=0) --- -## 🎓 Informasi Project +## 🎓 Informasi Akademik -**Nama**: Nabila Suwandira -**NPM**: 202310715066 -**Instansi**: Universitas Bhayangkara Jakarta Raya -**Mata Kuliah**: Pemrograman Perangkat Bergerak -**Tujuan**: Proyek Evaluasi Akhir Semester (EAS) 2025-2026 +* **Nama Mahasiswa**: Nabila Suwandira +* **NPM**: 202310715066 +* **Program Studi**: Teknik Informatika +* **Instansi**: Universitas Bhayangkara Jakarta Raya +* **Mata Kuliah**: Pemrograman Perangkat Bergerak +* **Tujuan**: Proyek Evaluasi Akhir Semester (EAS) TA 2025-2026