Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
8.5 KiB
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:
- Model User —
App\Models\UserdenganHasRoles(Spatie) - Migration
users— Tabel users + password_reset_tokens - Halaman Login —
resources/views/auth/login.blade.php - AuthController — Login/logout dengan session regeneration
- Middleware Auth — Semua route dilindungi, API di-enforce di backend
- 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:
- Ownership Rumah Ibadah —
pengurus_ibadahseharusnya hanya bisa edit/hapus data ibadah miliknya sendiri. Saat ini bisa edit/hapus semua ibadah. Butuh kolomuser_iddi tabelrumah_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:
- Pengurus Ibadah A melihat analisis radius → kapasitas melebihi batas
- Pengurus mengajukan permohonan transfer → pilih keluarga miskin + pilih rumah ibadah tujuan
- Pengurus Ibadah B menerima notifikasi → menyetujui atau menolak
- 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 |
|---|---|---|
| ✅ Selesai | ||
| ✅ Selesai | ||
| ✅ Selesai | ||
| ✅ Selesai | ||
| ✅ Selesai | ||
| ✅ Selesai | ||
| ✅ Selesai | ||
| ✅ Selesai |