9bd5506f4f
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
201 lines
8.5 KiB
Markdown
201 lines
8.5 KiB
Markdown
# Fitur & Role yang Belum Ada di Project WebGIS
|
||
|
||
> Berdasarkan perbandingan dokumen SKPL (`D1041231009_RadityaIndraPutranto_SKPL_SIG.docx`) dengan implementasi aktual project.
|
||
>
|
||
> **Terakhir diperbarui:** 2026-06-05 — ditambahkan saran fitur dari dosen (anggota keluarga, riwayat bantuan, permohonan transfer).
|
||
|
||
---
|
||
|
||
## 🔐 1. Sistem Autentikasi & Role
|
||
|
||
### 1.1 Komponen:
|
||
|
||
- [x] **Model User** — `App\Models\User` dengan `HasRoles` (Spatie)
|
||
- [x] **Migration `users`** — Tabel users + password_reset_tokens
|
||
- [x] **Halaman Login** — `resources/views/auth/login.blade.php`
|
||
- [x] **AuthController** — Login/logout dengan session regeneration
|
||
- [x] **Middleware Auth** — Semua route dilindungi, API di-enforce di backend
|
||
- [x] **Role-Based Access Control (RBAC)** — Spatie Laravel Permission v8, 4 role aktif
|
||
|
||
### 1.2 Empat role:
|
||
|
||
| # | Role | Kode SKPL | Status |
|
||
|---|---|---|---|
|
||
| 1 | **Administrator Sistem** | A-01 s/d A-05 | ⚠️ A-01 selesai, A-02–A-05 belum (lihat bagian 2) |
|
||
| 2 | **Pengurus Rumah Ibadah** | I-01 s/d I-06 | ⚠️ Bisa CRUD ibadah, tapi belum ada ownership |
|
||
| 3 | **Petugas Pendataan (Operator)** | P-01 s/d P-05 | ⚠️ Bisa CRUD miskin, belum ada form edit & verifikasi |
|
||
| 4 | **Pemangku Kebijakan** | K-01 s/d K-04 | ⚠️ View-only sudah, dashboard & ekspor lanjutan belum |
|
||
|
||
### 1.3 Gap ownership yang ditemukan saat implementasi:
|
||
|
||
- [x] **Ownership Rumah Ibadah** — `pengurus_ibadah` seharusnya hanya bisa edit/hapus data ibadah miliknya sendiri. Saat ini bisa edit/hapus **semua** ibadah. Butuh kolom `user_id` di tabel `rumah_ibadah` + policy/gate untuk enforce ownership.
|
||
|
||
---
|
||
|
||
## 🛠️ 2. Fitur Administrator (A-01 s/d A-05)
|
||
|
||
| Kode | Fitur | Status |
|
||
|---|---|---|
|
||
| A-01 | **Manajemen Pengguna** — CRUD user, assign role, reset password | ✅ Selesai |
|
||
| A-02 | **Bulk Delete** — Hapus data massal | ✅ Selesai |
|
||
| A-02 | **Import CSV** — Import data dari file CSV | ✅ Selesai |
|
||
| A-03 | **Konfigurasi Sistem** — Batas wilayah, radius min/max, legenda peta | ✅ Selesai (center peta, zoom, radius min/max) |
|
||
| A-04 | **Log Aktivitas** — Mencatat dan menampilkan log aktivitas pengguna | ✅ Selesai |
|
||
| A-04 | **Statistik Penggunaan** — Ringkasan penggunaan sistem | ✅ Selesai |
|
||
| A-04 | **Notifikasi Perubahan Data** — Notif jika data ditambah/diubah | ✅ Selesai (polling 30 detik) |
|
||
| A-05 | **Backup & Restore** — Backup database manual, jadwal backup otomatis | ✅ Selesai (backup manual + terjadwal harian + restore dari file) |
|
||
|
||
---
|
||
|
||
## ✏️ 3. Fitur Edit Data (Multiple Roles)
|
||
|
||
Data bisa ditambah dan dihapus. Untuk lokasi: drag marker (ibadah & miskin) dan ubah radius (ibadah saja) sudah bisa. Namun **belum ada form edit** untuk field lainnya.
|
||
|
||
| Fitur | Role terkait | Status |
|
||
|---|---|---|
|
||
| **Form Edit Rumah Ibadah** — Edit nama, jenis, pengurus, telepon, jemaah, keterangan | I-06, A-02 | ✅ Selesai |
|
||
| **Form Edit Keluarga Miskin** — Edit nama KK, jumlah jiwa, pekerjaan, pendapatan, kondisi | P-02, A-02 | ✅ Selesai |
|
||
|
||
---
|
||
|
||
## 📊 4. Fitur Analisis & Dashboard (Pemangku Kebijakan)
|
||
|
||
| Kode | Fitur | Status |
|
||
|---|---|---|
|
||
| K-02 | **Dashboard Statistik Lengkap** — Perbandingan antar wilayah, tren waktu | ✅ Selesai |
|
||
| K-03 | **Analisis Kesenjangan (Gap Analysis)** — Identifikasi wilayah miskin yang kurang terjangkau rumah ibadah | ✅ Selesai |
|
||
| K-04 | **Ekspor Laporan Terfilter** — Ekspor khusus per radius/wilayah untuk laporan resmi | ✅ Selesai |
|
||
|
||
---
|
||
|
||
## 🖨️ 5. Fitur Cetak & Ekspor Lanjutan
|
||
|
||
| Fitur | Role terkait | Status |
|
||
|---|---|---|
|
||
| **Cetak Laporan Wilayah** — Print daftar keluarga miskin dalam radius rumah ibadah | I-04 | ✅ Selesai |
|
||
| **Ekspor PDF** — Format laporan resmi | K-04 | ✅ Selesai |
|
||
| **Ekspor per Radius** — Data yang terfilter per analisis radius | I-04, K-04 | ✅ Selesai |
|
||
|
||
---
|
||
|
||
## 🎓 6. Saran Fitur dari Dosen (Di Luar SKPL)
|
||
|
||
Fitur-fitur berikut diusulkan setelah SKPL final dan belum ada dalam dokumen spesifikasi awal.
|
||
|
||
### 6.1 Data Anggota Keluarga (Tabel Baru: `anggota_keluarga`)
|
||
|
||
Saat ini `rumah_miskin` hanya menyimpan jumlah KK dan jumlah jiwa secara agregat. Fitur ini menambahkan data **per-orang** di dalam rumah tangga.
|
||
|
||
| Sub-fitur | Keterangan | Status |
|
||
|---|---|---|
|
||
| **Data Umur** | Simpan tanggal lahir tiap anggota, hitung umur otomatis | ❌ Belum |
|
||
| **Riwayat Pendidikan** | Tingkat pendidikan tiap anggota (tidak sekolah / SD / SMP / SMA / D3 / S1+) | ❌ Belum |
|
||
| **Status Hidup** | Status `hidup` / `meninggal` per-anggota, bisa diupdate petugas | ❌ Belum |
|
||
|
||
**Skema yang disarankan (`anggota_keluarga`):**
|
||
|
||
| Kolom | Tipe | Keterangan |
|
||
|---|---|---|
|
||
| `id` | BIGINT PK | |
|
||
| `id_rumah` | FK → rumah_miskin | |
|
||
| `nama` | VARCHAR | |
|
||
| `hubungan` | ENUM | kepala_keluarga, istri, anak, lainnya |
|
||
| `tanggal_lahir` | DATE | untuk hitung umur |
|
||
| `pendidikan` | ENUM | tidak_sekolah, sd, smp, sma, d3, s1_plus |
|
||
| `status_hidup` | ENUM | hidup, meninggal |
|
||
| timestamps | | |
|
||
|
||
**Dampak implementasi:** Perlu form tambah/edit anggota di halaman `/data` (nested di dalam detail rumah miskin), dan statistik umur di dashboard.
|
||
|
||
---
|
||
|
||
### 6.2 Riwayat Bantuan (Tabel Baru: `riwayat_bantuan`)
|
||
|
||
Mencatat setiap bantuan yang telah diberikan rumah ibadah kepada keluarga miskin — membentuk jejak audit distribusi bantuan.
|
||
|
||
| Kolom | Tipe | Keterangan |
|
||
|---|---|---|
|
||
| `id` | BIGINT PK | |
|
||
| `id_rumah` | FK → rumah_miskin | penerima bantuan |
|
||
| `ibadah_id` | FK → rumah_ibadah nullable | pemberi bantuan |
|
||
| `jenis_bantuan` | VARCHAR | contoh: sembako, uang, pakaian |
|
||
| `keterangan` | TEXT | deskripsi bebas |
|
||
| `tanggal_bantuan` | DATE | |
|
||
| `dicatat_oleh` | FK → users | |
|
||
| timestamps | | |
|
||
|
||
**Dampak implementasi:** Tombol "Catat Bantuan" di popup marker / tabel data, halaman riwayat per-keluarga, dan statistik total bantuan di dashboard.
|
||
|
||
**Status:** ❌ Belum
|
||
|
||
---
|
||
|
||
### 6.3 Permohonan Transfer Antar Rumah Ibadah (Tabel Baru: `permohonan_transfer`)
|
||
|
||
Ketika kapasitas jangkauan rumah ibadah sudah penuh, pengurus dapat mengajukan permohonan agar sebagian keluarga miskin dialihkan ke rumah ibadah lain yang masih mencukupi.
|
||
|
||
**Alur:**
|
||
1. Pengurus Ibadah A melihat analisis radius → kapasitas melebihi batas
|
||
2. Pengurus mengajukan permohonan transfer → pilih keluarga miskin + pilih rumah ibadah tujuan
|
||
3. Pengurus Ibadah B menerima notifikasi → menyetujui atau menolak
|
||
4. Administrator bisa memantau semua permohonan
|
||
|
||
| Kolom | Tipe | Keterangan |
|
||
|---|---|---|
|
||
| `id` | BIGINT PK | |
|
||
| `dari_ibadah_id` | FK → rumah_ibadah | pengaju |
|
||
| `ke_ibadah_id` | FK → rumah_ibadah | tujuan |
|
||
| `id_rumah` | FK → rumah_miskin | keluarga yang diajukan |
|
||
| `alasan` | TEXT | |
|
||
| `status` | ENUM | pending, disetujui, ditolak |
|
||
| `catatan_respons` | TEXT nullable | dari pengurus penerima |
|
||
| `diajukan_oleh` | FK → users | |
|
||
| `diproses_oleh` | FK → users nullable | |
|
||
| timestamps | | |
|
||
|
||
**Dampak implementasi:** Halaman `/permohonan` (list + form submit + approve/reject), badge notifikasi di navbar pengurus, dan log aktivitas untuk setiap perubahan status.
|
||
|
||
**Status:** ❌ Belum
|
||
|
||
---
|
||
|
||
### Estimasi Kompleksitas
|
||
|
||
| Fitur | Kompleksitas | Estimasi |
|
||
|---|---|---|
|
||
| Data anggota keluarga (umur + pendidikan + status hidup) | Tinggi | 1 plan penuh |
|
||
| Riwayat bantuan | Menengah | 1 plan penuh |
|
||
| Permohonan transfer antar rumah ibadah | Sangat Tinggi | 1–2 plan |
|
||
|
||
---
|
||
|
||
## 📋 Ringkasan
|
||
|
||
| Kategori | Selesai | Belum |
|
||
|---|---|---|
|
||
| Autentikasi & RBAC | ✅ 6/6 komponen | — |
|
||
| Role Pengguna | ✅ 4/4 role | — |
|
||
| Ownership pengurus_ibadah | ✅ 1/1 | — |
|
||
| Fitur Admin | ✅ 8/8 | — |
|
||
| Fitur Edit Data | ✅ 2/2 | — |
|
||
| Fitur Analisis/Dashboard | ✅ 3/3 | — |
|
||
| Fitur Cetak/Ekspor | ✅ 3/3 | — |
|
||
| Fitur Saran Dosen | — | ❌ 3 fitur baru (di luar SKPL) |
|
||
| **Total sisa (SKPL)** | | **0 — Semua fitur SKPL selesai ✅** |
|
||
| **Total saran dosen** | | **~3 plan** |
|
||
|
||
---
|
||
|
||
## 🗺️ Urutan Plan yang Disarankan
|
||
|
||
| Plan | Isi | Prioritas |
|
||
|---|---|---|
|
||
| ~~Plan 1~~ | ~~Auth & RBAC~~ | ✅ Selesai |
|
||
| ~~Plan 2~~ | ~~Form Edit Rumah Ibadah & Keluarga Miskin + Ownership~~ | ✅ Selesai |
|
||
| ~~Plan 3~~ | ~~Manajemen Pengguna (Admin: CRUD user, assign role)~~ | ✅ Selesai |
|
||
| ~~Plan 4~~ | ~~Dashboard Statistik + Gap Analysis (Pemangku Kebijakan)~~ | ✅ Selesai |
|
||
| ~~Plan 5~~ | ~~Ekspor PDF + Ekspor per Radius + Cetak Laporan~~ | ✅ Selesai |
|
||
| ~~Plan 6~~ | ~~Fitur Admin lanjutan (Bulk delete, CSV import, Log, Backup)~~ | ✅ Selesai |
|
||
| ~~Plan 7~~ | ~~Statistik, Backup Terjadwal, Notifikasi, Restore~~ | ✅ Selesai |
|
||
| ~~A-03~~ | ~~Konfigurasi Sistem (center peta, zoom, radius min/max)~~ | ✅ Selesai |
|