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