# 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 |