bersihkan_file_kedua

This commit is contained in:
Mr.Haruna
2026-06-13 12:42:40 +07:00
parent 0c6dc907cd
commit ee88df68c8
2 changed files with 0 additions and 189 deletions
-96
View File
@@ -1,96 +0,0 @@
# Changelog — Transformasi WebGIS sesuai SKPL
Dokumen ini merangkum perubahan aplikasi dari **"WebGIS Smart City Pontianak"** menjadi **"WebGIS Pemetaan Kemiskinan Terpadu"** sesuai dokumen SKPL.
Status saat ini: **Fase A (Fondasi)** dan **Fase B (Visualisasi Peta)** selesai & teruji.
---
## 1. Sistem Role & Autentikasi
| Sebelum | Sesudah |
|---|---|
| 2 role: `admin`, `user` | 4 role SKPL: `publik`, `enumerator`, `operator`, `pimpinan` |
| Login dasar | + Lockout 5× percobaan gagal (KF-01) |
| — | Cek akun nonaktif (`is_active`) saat login |
| — | Catat `last_login` |
| Routing role hardcode | Routing dinamis per role via `roleHome()` |
| `requireRole('admin')` (exact) | RBAC fleksibel `requireAnyRole([...])` |
File: `config/auth_check.php`, `login.php`, `logout.php`, `index.php`
## 2. Struktur Folder & Halaman
- `user/` → di-rename menjadi `pimpinan/` (dashboard, peta, laporan)
- **Baru:** `enumerator/` — area petugas lapangan (mobile-friendly)
- **Baru:** `peta_publik.php` — peta tanpa login untuk masyarakat
- **Baru:** `admin/log.php` — halaman log aktivitas
## 3. Database
| Perubahan | Detail |
|---|---|
| `users` diperluas | + `email`, `is_active`, `wilayah_tugas`, `last_login`; ENUM role jadi 4 |
| Tabel baru `activity_log` | Audit trail aktivitas pengguna (KF-04) |
| Tabel baru `wilayah` | Polygon kelurahan + `jumlah_penduduk` untuk choropleth (KF-06) |
File migrasi:
- `database/migrations/001_fase_a_roles.sql`
- `database/migrations/002_wilayah.sql`
- `database/webgis_db.sql` (diperbarui untuk install baru)
## 4. Manajemen User (KF-02 / KF-03)
`admin/users.php` + `api/users.php` dirombak:
- Kelola 4 role
- Status aktif/nonaktif
- Email & wilayah tugas (enumerator)
- Proteksi akun utama (ID 1) & akun sendiri dari penghapusan
## 5. Log Aktivitas (KF-04)
- Helper `logActivity()` di `config/activity.php`
- Dicatat saat: login, logout, dan CRUD data (warga, user)
- Ditampilkan di `admin/log.php` (300 entri terbaru)
## 6. Visualisasi Peta (Fase B)
| Fitur SKPL | Implementasi |
|---|---|
| Choropleth (KF-06) | `api/wilayah.php` — gradasi warna % kemiskinan + legenda |
| Heatmap (KF-08) | `api/heatmap.php` — data agregat tanpa info pribadi |
| Layer switcher (KF-09) | Toggle choropleth & heatmap |
| Pencarian lokasi (KF-11) | Cari kelurahan, peta auto-`flyTo` |
Dipasang di: peta publik, peta operator, peta pimpinan.
File: `assets/js/public-map.js`, `assets/js/skpl-layers.js`
## 7. Branding & Keamanan API
- Branding "Smart City" → "WebGIS Kemiskinan / Pemetaan Kemiskinan"
- Guard mutasi API: role `admin``operator` (`requireOperatorForMutation` di `api/helpers.php`)
## 8. Perbaikan Bug
- Fungsi MySQL `ST_SRID()` (sintaks PostGIS) yang menyebabkan error diperbaiki di 5 file
- Pemuatan `.env` otomatis + perbaikan path cookie sesi
- Bug `window.APP_BASE` (binding `const` bukan properti window) di `skpl-layers.js` — diperbaiki
---
## Akun Testing (DB hasil migrasi)
| Role | Username | Password |
|---|---|---|
| Operator | `admin` | `admin123` |
| Pimpinan | `pengguna` | `user123` |
| Enumerator | `enumerator` | `user123` |
| Publik | (tanpa login) | — |
---
## Belum Dikerjakan (warisan lama / fase berikutnya)
- Data spasial smart-city (SPBU, jalan, kavling, rumah ibadah, kawasan kumuh) **masih ada** — rencana di-repurpose/dibuang pada modul Manajemen Data.
- Form input enumerator (`enumerator/input.php`) masih placeholder "Segera".
- Modul Manajemen Data, Analisis Spasial, Geotagging, dan Pelaporan PDF belum dibuat (lihat rencana di bawah / dokumen perencanaan).
-93
View File
@@ -1,93 +0,0 @@
# Rencana Tahap Lanjutan — WebGIS Pemetaan Kemiskinan SKPL
Lanjutan setelah Fase A (Fondasi) & Fase B (Visualisasi Peta) selesai.
Prinsip tetap: **fokus penuh ke SKPL** + **perluas bertahap**.
Modul SKPL yang tersisa: 3.3 Manajemen Data, 3.4 Analisis Spasial,
3.5 Geotagging & Survei, 3.6 Dashboard & Pelaporan.
Urutan disusun berdasarkan ketergantungan: **C → D → E → F**
(data kaya dulu, baru analisis & laporan).
---
## FASE C — Manajemen Data Kemiskinan (KF-12 s/d 18)
Fondasi data untuk semua modul berikutnya. Memperkaya `warga_miskin`.
| ID | Pekerjaan | KF |
|---|---|---|
| C1 | Perluas kolom `warga_miskin`: `nik_kk`, `alamat`, `wilayah_id`, `rt`, `rw`, `jumlah_jiwa`, `pekerjaan_kk`, `sumber_air`, `status_listrik`, `material_dinding`, `status_kepemilikan`, `status_verifikasi` | KF-12 |
| C2 | Tabel `jenis_bantuan` (PKH, BPNT, PBI-JK, BLT) + `bantuan_sosial` (status per RT, tgl mulai/berakhir) | KF-17 |
| C3 | Upload foto kondisi rumah (folder `uploads/`, kompres GD, 15 foto) | KF-13 |
| C4 | Form input/edit lengkap di operator + popup detail kaya di peta | KF-12/14 |
| C5 | Import CSV/Excel sesuai template Lampiran A + validasi & laporan error | KF-15 |
| C6 | Export CSV / Excel / PDF (data penuh & hasil filter) | KF-16 |
| C7 | Manajemen status bantuan per rumah tangga | KF-17 |
| C8 | Verifikasi data (status + bulk verification + penanda di peta) | KF-18 |
**Catatan:** sekaligus repurpose `rumah_ibadah`/`spbu` → tabel `fasilitas_publik`
(sekolah/puskesmas/pasar) untuk proximity, dan pensiunkan layer smart-city lama.
---
## FASE D — Geotagging & Form Enumerator (KF-24, 25, 26)
Membuat role Enumerator benar-benar fungsional.
| ID | Pekerjaan | KF |
|---|---|---|
| D1 | `enumerator/input.php` — form multi-langkah mobile + auto-GPS (`navigator.geolocation`) + koreksi manual di peta mini | KF-24/25 |
| D2 | Upload foto langsung dari kamera HP | KF-13 |
| D3 | Penugasan wilayah: enumerator hanya akses/input data di wilayah tugasnya | KF-26 |
| D4 | (Opsional, prioritas rendah) Notifikasi in-app tugas baru | KF-27 |
---
## FASE E — Analisis Spasial (KF-19 s/d 23)
Butuh data kaya dari Fase C + `fasilitas_publik`.
| ID | Pekerjaan | KF |
|---|---|---|
| E1 | Filter multi-kriteria (kecamatan, pendidikan, pekerjaan, status bantuan, sumber air, material, kepemilikan) — hasil langsung di peta + jumlah | KF-19 |
| E2 | Identifikasi zona prioritas (skor per kelurahan: % miskin + kepadatan + cakupan bantuan rendah) | KF-20 |
| E3 | Proximity analysis ke fasilitas publik + identifikasi warga "terisolasi" (radius dapat diatur) | KF-21 |
| E4 | Analisis cakupan bantuan (pie chart + choropleth per jenis bantuan) | KF-22 |
| E5 | Analisis tren waktu (line chart jumlah warga & cakupan) | KF-23 |
---
## FASE F — Dashboard & Pelaporan (KF-28 s/d 31)
| ID | Pekerjaan | KF |
|---|---|---|
| F1 | Dashboard eksekutif: kartu KPI + grafik (Chart.js) + peta ringkasan zona prioritas | KF-28 |
| F2 | Laporan per wilayah (tabel + grafik + peta) — cetak/unduh PDF | KF-29 |
| F3 | Laporan rekapitulasi penerima bantuan per jenis (PDF) | KF-30 |
| F4 | Grafik komparatif antar kecamatan (bar + radar) | KF-31 |
---
## Kebutuhan Non-Fungsional (NFR)
Sebagian implementasi, sebagian cukup didokumentasikan untuk final project:
- **Implementasi:** RBAC server-side (sudah), proteksi SQL Injection (PDO prepared — sudah), bcrypt cost 12 (sudah), validasi input, pesan error informatif, responsif mobile.
- **Dokumentasi saja (di luar lingkup realistis final project):** JWT HS256, 100 user konkuren, enkripsi NIK, backup harian otomatis, uptime 99%, integrasi DTKS.
---
## Library Tambahan yang Diperlukan
- **Chart.js 4.x** — grafik dashboard & laporan (Fase E/F)
- **PhpSpreadsheet** atau parser CSV manual — import/export Excel (Fase C)
- **Dompdf** atau **mPDF** — generate PDF laporan (Fase F)
- (Leaflet & leaflet.heat sudah dipakai)
---
## Rekomendasi Mulai
**Mulai dari Fase C (Manajemen Data)** karena membuka jalan untuk D, E, dan F
sekaligus memperkaya popup detail peta (KF-10) yang sekarang masih minim.