From 778eefcae7605bd4ef1f4f616aa3f1f3ab554867 Mon Sep 17 00:00:00 2001 From: nabilasuwandira <202310715066@mhs.ubharajaya.ac.id> Date: Wed, 14 Jan 2026 18:03:11 +0700 Subject: [PATCH] README.md --- README.md | 94 +++++++++++++++++++++++-------------------------------- 1 file changed, 39 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index d5275eb..e6c4a37 100644 --- a/README.md +++ b/README.md @@ -1,65 +1,56 @@ -# 🚀 Smart-Attendance: Sistem Absensi Digital Terintegrasi Cloud +# 🚀 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 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. +**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. --- -## 📸 Mockup Aplikasi +## 📸 Antarmuka Aplikasi (Mockup) -Berikut adalah pratinjau desain antarmuka pengguna (UI) dari aplikasi Smart-Attendance: +| 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* | -![Mockup Aplikasi](Mockup.png) - -*Gambar di atas merupakan representasi visual dari layar Login, Registrasi, dan Dashboard Absensi.* +> **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 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. +- **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 -| 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) | +- **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) --- -## 🏗️ Arsitektur Data +## 🏗️ Struktur Data JSON (Payload) -### 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: +Data yang dikirimkan ke server memiliki struktur berikut: ```json { - "npm": "20210710001", + "npm": "202310715066", "nama": "Nabila Suwandira", - "latitude": -6.229728, - "longitude": 106.989250, + "latitude": 37.421998, + "longitude": -122.084000, "mata_kuliah": "Pemrograman Perangkat Bergerak", "timestamp": 1739456789000, "foto_base64": "/9j/4AAQSkZJRg..." @@ -70,36 +61,29 @@ Setiap paket absensi yang dikirim memiliki struktur data berikut: ## 📱 Panduan Penggunaan -1. **Daftar Akun**: Masuk ke menu "Daftar Sekarang", isi Nama, NPM, dan Password. -2. **Login**: Masuk menggunakan NPM dan Password yang telah didaftarkan. -3. **Berikan Izin**: Berikan izin akses **Lokasi** dan **Kamera** saat diminta oleh sistem. -4. **Verifikasi Lokasi**: Pastikan koordinat GPS muncul dengan benar. Gunakan tombol **Refresh** jika posisi kurang akurat. -5. **Ambil Selfie**: Klik "AMBIL FOTO" untuk membuka kamera dan ambil foto wajah dengan jelas. -6. **Submit Absensi**: Klik "KIRIM ABSENSI". Sistem akan memberikan notifikasi jika data telah diterima oleh server. +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. --- -## 🔧 Instalasi & Persiapan +## 📡 Monitoring Data -1. Clone repositori ini. -2. Buka project di **Android Studio (Ladybug 2024.2.1)** atau versi terbaru. -3. Pastikan dependensi di `build.gradle.kts` sudah tersinkronisasi. -4. 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](https://ntfy.ubharajaya.ac.id/EAS) -* **Database Sheets**: [Sheet Kehadiran Mahasiswa](https://docs.google.com/spreadsheets/d/1jH15MfnNgpPGuGeid0hYfY7fFUHCEFbCmg8afTyyLZs/edit?gid=0#gid=0) +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 -**Program Studi**: Teknik Informatika +**NPM**: 202310715066 **Instansi**: Universitas Bhayangkara Jakarta Raya **Mata Kuliah**: Pemrograman Perangkat Bergerak -**Project**: Evaluasi Akhir Semester (EAS) 2025-2026 +**Tujuan**: Proyek Evaluasi Akhir Semester (EAS) 2025-2026