diff --git a/README.md b/README.md index 5f8f24f..b4ca8e1 100644 --- a/README.md +++ b/README.md @@ -1,101 +1,78 @@ -# πŸ“± Aplikasi Absensi Akademik Berbasis Koordinat dan Foto (Mobile) +# πŸ“± Aplikasi Absensi Akademik Berbasis GPS & Foto ## πŸ“Œ Deskripsi Proyek -Proyek ini merupakan **Tugas Project Akhir Mata Kuliah Pemrograman Mobile** yang bertujuan untuk membangun **aplikasi akademik berbasis mobile** dengan fokus pada **fitur absensi menggunakan data koordinat (GPS) dan pengambilan foto mahasiswa**. +Project ini dibuat sebagai **Tugas Akhir / UAS Mata Kuliah Pemrograman Mobile**, bertujuan untuk membuat aplikasi **absensi berbasis Android** dengan teknologi: -Aplikasi ini dirancang untuk meningkatkan **validitas kehadiran mahasiswa**, dengan memastikan bahwa absensi hanya dapat dilakukan apabila mahasiswa: -1. Berada pada **lokasi yang telah ditentukan**, dan -2. Melakukan **pengambilan foto (selfie) secara langsung saat absensi** +- Pengambilan **lokasi GPS (latitude & longitude)** secara realtime +- Pengambilan **foto mahasiswa saat absensi** sebagai bukti +- Validasi absensi berdasarkan *location* dan *foto* +- Menampilkan **riwayat absensi** mahasiswa +- Menggunakan **Jetpack Compose** + **Material 3** +- Tersedia fitur **Light / Dark Mode**, **Logout**, dan **Dropdown pilihan mata kuliah** :contentReference[oaicite:1]{index=1} --- ## 🎯 Tujuan Proyek -- Mengimplementasikan **Location-Based Service (LBS)** pada aplikasi mobile -- Mengintegrasikan **kamera perangkat** untuk dokumentasi absensi -- Mencegah kecurangan absensi (titip absen) -- Mengembangkan aplikasi mobile akademik berbasis Android -- Melatih kemampuan perancangan dan implementasi aplikasi mobile +Tujuan utama aplikasi: + +- Mengimplementasikan layanan **absensi berbasis lokasi & foto** +- Validasi absensi agar mahasiswa tidak **titip absen** +- Memberikan pengalaman penggunaan yang baik dengan UI Compose +- Meningkatkan pemahaman dan penguasaan Android modern dengan Compose :contentReference[oaicite:2]{index=2} --- -## πŸš€ Fitur Utama -- πŸ” **Login Pengguna (Mahasiswa)** -- πŸ“ **Pengambilan Koordinat Lokasi (Latitude & Longitude)** -- 🏫 **Validasi Lokasi Absensi (Radius Area)** -- πŸ“Έ **Pengambilan Foto Mahasiswa Saat Absensi** -- πŸ•’ **Pencatatan Waktu Absensi** -- πŸ“„ **Riwayat Kehadiran Mahasiswa** -- ⚠️ **Notifikasi Absensi Ditolak jika Tidak Valid** +## βœ… Fitur Utama +Aplikasi ini memiliki fitur-fitur berikut: + +### 🧩 Authentication +βœ”οΈ Login dengan NPM & password +βœ”οΈ Ikon login custom dari `drawable` +βœ”οΈ Show/Hide password dengan animasi ikon mata πŸ‘οΈ +βœ”οΈ Light / Dark Theme toggle + +### πŸ“ Absensi +βœ”οΈ Ambil **lokasi GPS** otomatis dengan izin lokasi +βœ”οΈ Ambil **foto mahasiswa** dari kamera +βœ”οΈ Validasi absensi berdasarkan lokasi dan foto +βœ”οΈ Pilihan **mata kuliah** sebelum absensi +βœ”οΈ Tampilkan waktu absensi +βœ”οΈ Riwayat absensi dengan detail (nama, NPM, foto, lokasi) + +### πŸ“€ Logout +βœ”οΈ Logout untuk kembali ke halaman login +βœ”οΈ Session login akan berakhir dan mencegah tombol back kembali ke Main :contentReference[oaicite:3]{index=3} --- -## πŸ—ΊοΈ Mekanisme Absensi Berbasis Lokasi dan Foto -1. Mahasiswa melakukan **login** -2. Memilih menu **Absensi** -3. Sistem meminta: - - Izin **akses lokasi** - - Izin **akses kamera** -4. Aplikasi mengambil: - - πŸ“ **Koordinat lokasi mahasiswa** - - πŸ“Έ **Foto mahasiswa secara real-time** -5. Sistem melakukan validasi: - - Lokasi berada dalam **radius absensi** - - Foto berhasil diambil -6. Jika valid β†’ **Absensi berhasil** -7. Jika tidak valid β†’ **Absensi ditolak** +## πŸ›  Teknologi yang Digunakan +| Teknologi | Keterangan | +|-----------|------------| +| **Android Studio** | IDE utama pengembangan | +| **Kotlin** | Bahasa pemrograman | +| **Jetpack Compose** | UI modern deklaratif | +| **Material3** | UI komponen modern | +| **Google Location Services** | Ambil lokasi pengguna | +| **Camera API / CameraX** | Ambil foto langsung dari kamera | +| **Fused Location Provider** | Lokasi realtime | :contentReference[oaicite:4]{index=4} --- -## πŸ“Έ Pengambilan Foto Saat Absensi -- Foto diambil menggunakan **kamera depan (selfie)** -- Foto hanya dapat diambil **saat proses absensi** -- Foto disimpan sebagai **bukti kehadiran** -- Foto dapat digunakan untuk: - - Verifikasi manual oleh dosen - - Dokumentasi akademik +## 🎨 Tampilan UI +– Login dengan ikon +– Tombol Logout +– Validasi lokasi dan foto saat absensi +– Riwayat absensi dengan gambar & detail lokasi + +> *(Screenshot bisa ditambahkan di bawah section ini)* --- -## πŸ› οΈ Teknologi yang Digunakan -- **Platform** : Android -- **Bahasa Pemrograman** : Kotlin / Java -- **Location Service** : - - Google Maps API - - Fused Location Provider -- **Camera API** : CameraX / Camera2 -- **Database** : Firebase / SQLite / MySQL -- **Storage** : Firebase Storage / Local Storage -- **IDE** : Android Studio +## πŸš€ Cara Menjalankan +1. **Clone repository** + ```bash + git clone https://git.lab.ubharajaya.ac.id/202310715220-MUHAMMAD-FADZEL-HADEAN-RUKRUS/EAS-202310715220-MuhammadFadzelHR.git ---- - -## πŸ” Izin Aplikasi (Permissions) -Aplikasi memerlukan izin berikut: -- `ACCESS_FINE_LOCATION` -- `ACCESS_COARSE_LOCATION` -- `CAMERA` -- `INTERNET` -- `WRITE_EXTERNAL_STORAGE` (jika diperlukan) - ---- - -## πŸ“‚ Mockup -![mockup](Mockup.png) -gambar mockup dibuat oleh AI - -## Catatan: -- Starter project ini dibuat berbantukan AI -- Kembangkan project dari starter yang sudah disediakan, jangan membuat dari awal. -- Untuk koordinat bisa ditambah/kurangi angka tertentu agar tidak memunculkan koordinat rumah masing-masing, data awal tetap dari GPS. - -## Pengecekan: -- https://ntfy.ubharajaya.ac.id/EAS -- https://docs.google.com/spreadsheets/d/1jH15MfnNgpPGuGeid0hYfY7fFUHCEFbCmg8afTyyLZs/edit?gid=0#gid=0 - -## Webhook: -- test: https://n8n.lab.ubharajaya.ac.id/webhook-test/23c6993d-1792-48fb-ad1c-ffc78a3e6254 -- production: https://n8n.lab.ubharajaya.ac.id/webhook/23c6993d-1792-48fb-ad1c-ffc78a3e6254 - -## AUTHOR +## πŸ‘€ Author - Muhammad Fadzel Hadean Rukrus -- NPM : 202310715220 \ No newline at end of file +- NPM: 202310715220 \ No newline at end of file