Files
D1041231009-WebGIS-PovertyMap/missing_features.md
T
2026-06-05 04:41:13 +07:00

201 lines
8.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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-02A-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 | 12 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 |