Update README.md
This commit is contained in:
parent
e199d75042
commit
7ac861cb66
138
README.md
138
README.md
@ -1,10 +1,8 @@
|
|||||||
# 🎓 Sistem Absensi Akademik - Universitas Bhayangkara Jakarta Raya
|
# Sistem Absensi Akademik - Universitas Bhayangkara Jakarta Raya
|
||||||
|
|
||||||
## 📋 Deskripsi
|
## 📋 Deskripsi
|
||||||
Aplikasi mobile berbasis Android untuk sistem absensi mahasiswa dengan validasi lokasi GPS dan verifikasi foto.
|
Aplikasi mobile berbasis Android untuk sistem absensi mahasiswa dengan validasi lokasi GPS dan verifikasi foto.
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🚀 Fitur Utama
|
## 🚀 Fitur Utama
|
||||||
|
|
||||||
### ✅ Sudah Diimplementasikan:
|
### ✅ Sudah Diimplementasikan:
|
||||||
@ -16,8 +14,6 @@ Aplikasi mobile berbasis Android untuk sistem absensi mahasiswa dengan validasi
|
|||||||
- 📄 **Riwayat Kehadiran** - History absensi mahasiswa
|
- 📄 **Riwayat Kehadiran** - History absensi mahasiswa
|
||||||
- ⚠️ **Notifikasi Ditolak** - Alert jika lokasi di luar radius atau error
|
- ⚠️ **Notifikasi Ditolak** - Alert jika lokasi di luar radius atau error
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 📁 Struktur File
|
## 📁 Struktur File
|
||||||
|
|
||||||
```
|
```
|
||||||
@ -29,13 +25,11 @@ id.ac.ubharajaya.sistemakademik/
|
|||||||
└── SessionManager.kt # Manajemen session login
|
└── SessionManager.kt # Manajemen session login
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🔧 Setup & Instalasi
|
## 🔧 Setup & Instalasi
|
||||||
|
|
||||||
### 1. **Buat File-File Berikut:**
|
### 1. Buat File-File Berikut:
|
||||||
|
|
||||||
**Struktur folder:**
|
Struktur folder:
|
||||||
```
|
```
|
||||||
app/src/main/java/id/ac/ubharajaya/sistemakademik/
|
app/src/main/java/id/ac/ubharajaya/sistemakademik/
|
||||||
├── LoginActivity.kt
|
├── LoginActivity.kt
|
||||||
@ -45,10 +39,10 @@ app/src/main/java/id/ac/ubharajaya/sistemakademik/
|
|||||||
└── SessionManager.kt
|
└── SessionManager.kt
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. **Update AndroidManifest.xml**
|
### 2. Update AndroidManifest.xml
|
||||||
Ganti file AndroidManifest.xml dengan yang sudah disediakan.
|
Ganti file `AndroidManifest.xml` dengan yang sudah disediakan.
|
||||||
|
|
||||||
### 3. **Dependencies (build.gradle)**
|
### 3. Dependencies (build.gradle)
|
||||||
Pastikan dependencies berikut sudah ada di `build.gradle.kts (Module: app)`:
|
Pastikan dependencies berikut sudah ada di `build.gradle.kts (Module: app)`:
|
||||||
|
|
||||||
```kotlin
|
```kotlin
|
||||||
@ -68,7 +62,7 @@ dependencies {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4. **Koordinat Kampus**
|
### 4. Koordinat Kampus
|
||||||
Di file `MainActivity.kt`, ganti koordinat kampus sesuai lokasi asli:
|
Di file `MainActivity.kt`, ganti koordinat kampus sesuai lokasi asli:
|
||||||
|
|
||||||
```kotlin
|
```kotlin
|
||||||
@ -77,42 +71,44 @@ val kampusLon = 106.816666 // Longitude kampus
|
|||||||
val maxRadius = 100.0 // Radius dalam meter
|
val maxRadius = 100.0 // Radius dalam meter
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🌐 Endpoint API yang Dibutuhkan
|
## 🌐 Endpoint API yang Dibutuhkan
|
||||||
|
|
||||||
### 1. **Login Endpoint**
|
### 1. Login Endpoint
|
||||||
```
|
**POST** `https://n8n.lab.ubharajaya.ac.id/webhook/login-mahasiswa`
|
||||||
POST https://n8n.lab.ubharajaya.ac.id/webhook/login-mahasiswa
|
|
||||||
|
|
||||||
Request Body:
|
**Request Body:**
|
||||||
|
```json
|
||||||
{
|
{
|
||||||
"npm": "12345",
|
"npm": "202310715277",
|
||||||
"password": "password123"
|
"password": "password123"
|
||||||
}
|
}
|
||||||
|
```
|
||||||
|
|
||||||
Response Success:
|
**Response Success:**
|
||||||
|
```json
|
||||||
{
|
{
|
||||||
"success": true,
|
"success": true,
|
||||||
"nama": "Arif R D",
|
"nama": "Lalu Muhammad Anggana Subhan",
|
||||||
"prodi": "Teknik Informatika"
|
"prodi": "Teknik Informatika"
|
||||||
}
|
}
|
||||||
|
```
|
||||||
|
|
||||||
Response Failed:
|
**Response Failed:**
|
||||||
|
```json
|
||||||
{
|
{
|
||||||
"success": false,
|
"success": false,
|
||||||
"message": "NPM atau Password salah"
|
"message": "NPM atau Password salah"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. **Absensi Endpoint** (Sudah Ada)
|
### 2. Absensi Endpoint (Sudah Ada)
|
||||||
```
|
**POST** `https://n8n.lab.ubharajaya.ac.id/webhook/23c6993d-1792-48fb-ad1c-ffc78a3e6254`
|
||||||
POST https://n8n.lab.ubharajaya.ac.id/webhook/23c6993d-1792-48fb-ad1c-ffc78a3e6254
|
|
||||||
|
|
||||||
Request Body:
|
**Request Body:**
|
||||||
|
```json
|
||||||
{
|
{
|
||||||
"npm": "12345",
|
"npm": "202310715277",
|
||||||
"nama": "Arif R D",
|
"nama": "Lalu Muhammad Anggana Subhan",
|
||||||
"latitude": -6.200000,
|
"latitude": -6.200000,
|
||||||
"longitude": 106.816666,
|
"longitude": 106.816666,
|
||||||
"jarak_dari_kampus": 50,
|
"jarak_dari_kampus": 50,
|
||||||
@ -122,16 +118,16 @@ Request Body:
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. **Riwayat Absensi Endpoint**
|
### 3. Riwayat Absensi Endpoint
|
||||||
```
|
**GET** `https://n8n.lab.ubharajaya.ac.id/webhook/riwayat-absensi?npm=202310715277`
|
||||||
GET https://n8n.lab.ubharajaya.ac.id/webhook/riwayat-absensi?npm=12345
|
|
||||||
|
|
||||||
Response:
|
**Response:**
|
||||||
|
```json
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"id": "1",
|
"id": "1",
|
||||||
"npm": "12345",
|
"npm": "202310715277",
|
||||||
"nama": "Arif R D",
|
"nama": "Lalu Muhammad Anggana Subhan",
|
||||||
"waktu": "14/01/2026 10:30:00",
|
"waktu": "14/01/2026 10:30:00",
|
||||||
"latitude": -6.200000,
|
"latitude": -6.200000,
|
||||||
"longitude": 106.816666,
|
"longitude": 106.816666,
|
||||||
@ -141,36 +137,32 @@ Response:
|
|||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 📱 Cara Menggunakan Aplikasi
|
## 📱 Cara Menggunakan Aplikasi
|
||||||
|
|
||||||
### **Login**
|
### Login
|
||||||
1. Buka aplikasi
|
1. Buka aplikasi
|
||||||
2. Masukkan NPM dan Password
|
2. Masukkan NPM dan Password
|
||||||
3. Klik tombol "Login"
|
3. Klik tombol "Login"
|
||||||
4. Jika berhasil, akan masuk ke halaman absensi
|
4. Jika berhasil, akan masuk ke halaman absensi
|
||||||
|
|
||||||
### **Melakukan Absensi**
|
### Melakukan Absensi
|
||||||
1. Pastikan GPS aktif
|
1. Pastikan GPS aktif
|
||||||
2. Aplikasi otomatis mengambil lokasi
|
2. Aplikasi otomatis mengambil lokasi
|
||||||
3. Klik "Ambil Foto" untuk foto selfie
|
3. Klik "Ambil Foto" untuk foto selfie
|
||||||
4. Klik "Kirim Absensi"
|
4. Klik "Kirim Absensi"
|
||||||
5. Sistem akan validasi:
|
5. Sistem akan validasi:
|
||||||
- ✅ **Valid** jika dalam radius 100m dari kampus
|
- ✅ Valid jika dalam radius 100m dari kampus
|
||||||
- ❌ **Ditolak** jika di luar radius
|
- ❌ Ditolak jika di luar radius
|
||||||
|
|
||||||
### **Lihat Riwayat**
|
### Lihat Riwayat
|
||||||
1. Klik icon History (jam) di toolbar
|
1. Klik icon History (jam) di toolbar
|
||||||
2. Lihat daftar riwayat absensi
|
2. Lihat daftar riwayat absensi
|
||||||
3. Status ditampilkan:
|
3. Status ditampilkan:
|
||||||
- ✅ Valid (hijau)
|
- ✅ Valid (hijau)
|
||||||
- ❌ Ditolak (merah)
|
- ❌ Ditolak (merah)
|
||||||
|
|
||||||
### **Logout**
|
### Logout
|
||||||
- Klik icon Logout di toolbar
|
1. Klik icon Logout di toolbar
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🔒 Keamanan
|
## 🔒 Keamanan
|
||||||
|
|
||||||
@ -179,11 +171,9 @@ Response:
|
|||||||
- **Location Validation**: Validasi radius GPS otomatis
|
- **Location Validation**: Validasi radius GPS otomatis
|
||||||
- **Photo Required**: Foto wajib untuk setiap absensi
|
- **Photo Required**: Foto wajib untuk setiap absensi
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## ⚙️ Pengaturan Validasi
|
## ⚙️ Pengaturan Validasi
|
||||||
|
|
||||||
**Validasi Radius (di MainActivity.kt):**
|
**Validasi Radius** (di `MainActivity.kt`):
|
||||||
```kotlin
|
```kotlin
|
||||||
val maxRadius = 100.0 // Ubah sesuai kebutuhan (dalam meter)
|
val maxRadius = 100.0 // Ubah sesuai kebutuhan (dalam meter)
|
||||||
```
|
```
|
||||||
@ -194,31 +184,27 @@ val kampusLat = -6.200000 // Ganti dengan koordinat kampus
|
|||||||
val kampusLon = 106.816666 // Ganti dengan koordinat kampus
|
val kampusLon = 106.816666 // Ganti dengan koordinat kampus
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🐛 Troubleshooting
|
## 🐛 Troubleshooting
|
||||||
|
|
||||||
### **GPS Tidak Terdeteksi**
|
### GPS Tidak Terdeteksi
|
||||||
- Pastikan GPS/Location aktif di HP
|
- Pastikan GPS/Location aktif di HP
|
||||||
- Coba klik "Refresh Lokasi"
|
- Coba klik "Refresh Lokasi"
|
||||||
- Pastikan permission lokasi sudah diberikan
|
- Pastikan permission lokasi sudah diberikan
|
||||||
|
|
||||||
### **Absensi Ditolak**
|
### Absensi Ditolak
|
||||||
- Cek jarak dari kampus di pesan error
|
- Cek jarak dari kampus di pesan error
|
||||||
- Pastikan berada dalam radius yang ditentukan
|
- Pastikan berada dalam radius yang ditentukan
|
||||||
- Koordinat kampus mungkin salah, cek lagi
|
- Koordinat kampus mungkin salah, cek lagi
|
||||||
|
|
||||||
### **Login Gagal**
|
### Login Gagal
|
||||||
- Cek koneksi internet
|
- Cek koneksi internet
|
||||||
- Pastikan server n8n aktif
|
- Pastikan server n8n aktif
|
||||||
- Cek endpoint login sudah benar
|
- Cek endpoint login sudah benar
|
||||||
|
|
||||||
### **Foto Tidak Muncul**
|
### Foto Tidak Muncul
|
||||||
- Pastikan permission kamera sudah diberikan
|
- Pastikan permission kamera sudah diberikan
|
||||||
- Coba ambil foto ulang
|
- Coba ambil foto ulang
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 📝 Testing Checklist
|
## 📝 Testing Checklist
|
||||||
|
|
||||||
- [ ] Login dengan NPM dan Password valid
|
- [ ] Login dengan NPM dan Password valid
|
||||||
@ -233,37 +219,35 @@ val kampusLon = 106.816666 // Ganti dengan koordinat kampus
|
|||||||
- [ ] Status valid/ditolak sesuai
|
- [ ] Status valid/ditolak sesuai
|
||||||
- [ ] Logout berfungsi
|
- [ ] Logout berfungsi
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🎯 Future Improvements
|
## 🎯 Future Improvements
|
||||||
|
|
||||||
- [ ] Face Recognition untuk validasi foto
|
- Face Recognition untuk validasi foto
|
||||||
- [ ] Notifikasi push untuk jadwal absensi
|
- Notifikasi push untuk jadwal absensi
|
||||||
- [ ] QR Code scanning
|
- QR Code scanning
|
||||||
- [ ] Offline mode dengan sync
|
- Offline mode dengan sync
|
||||||
- [ ] Export riwayat ke PDF
|
- Export riwayat ke PDF
|
||||||
- [ ] Multi-language support
|
- Multi-language support
|
||||||
- [ ] Dark mode
|
- Dark mode
|
||||||
- [ ] Fingerprint authentication
|
- Fingerprint authentication
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 👨💻 Developer
|
## 👨💻 Developer
|
||||||
|
|
||||||
**Arif R D**
|
**Lalu Muhammad Anggana Subhan**
|
||||||
NPM: 12345
|
NPM: 202310715277
|
||||||
Universitas Bhayangkara Jakarta Raya
|
Universitas Bhayangkara Jakarta Raya
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 📄 License
|
## 📄 License
|
||||||
|
|
||||||
Copyright © 2026 Universitas Bhayangkara Jakarta Raya
|
Copyright © 2026 Universitas Bhayangkara Jakarta Raya
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 📞 Support
|
## 📞 Support
|
||||||
|
|
||||||
Jika ada pertanyaan atau bug, hubungi tim IT:
|
Jika ada pertanyaan atau bug, hubungi tim IT:
|
||||||
- Email: it@ubharajaya.ac.id
|
|
||||||
- Phone: (021) xxx-xxxx
|
- **Email**: it@ubharajaya.ac.id
|
||||||
|
- **Phone**: (021) xxx-xxxx
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Version**: 1.0.0
|
||||||
|
**Last Updated**: 14 Januari 2026
|
||||||
Loading…
x
Reference in New Issue
Block a user