Files
UAS_WEBGIS_IhyaUlumuddinHar…/CHANGELOG_SKPL.md
T
2026-06-13 11:24:58 +07:00

97 lines
3.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.
# 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).