# WebGIS Pengentasan Kemiskinan v3.0 ## Kota Pontianak β€” Berbasis Komunitas & Rumah Ibadah Sistem WebGIS berbasis PHP + MySQL + Leaflet.js untuk pemetaan, pendataan, dan distribusi bantuan sosial kepada penduduk miskin di Kota Pontianak. --- ## πŸ“ Struktur Folder ``` webgis_v3/ β”œβ”€β”€ index.php ← Halaman utama (SPA: login + semua fitur) β”œβ”€β”€ config.php ← Konfigurasi database & helper functions β”œβ”€β”€ database.sql ← Skema database + data demo β”œβ”€β”€ .htaccess ← Konfigurasi Apache (keamanan + routing) β”œβ”€β”€ uploads/ ← Foto laporan masyarakat └── api/ β”œβ”€β”€ auth.php ← Login / logout / cek sesi β”œβ”€β”€ penduduk.php ← CRUD data penduduk + validasi pendidikan β”œβ”€β”€ keluarga.php ← CRUD data keluarga (KK) β”œβ”€β”€ rumah_ibadah.php ← CRUD rumah ibadah β”œβ”€β”€ bantuan.php ← Master bantuan + histori + prioritas otomatis β”œβ”€β”€ laporan.php ← Laporan masyarakat + upload foto β”œβ”€β”€ chat.php ← Chat antar pengurus β”œβ”€β”€ stats.php ← Dashboard KPI + GeoJSON untuk peta β”œβ”€β”€ pelatihan.php ← Manajemen pelatihan keterampilan β”œβ”€β”€ user.php ← Manajemen user & role (superadmin) └── log.php ← Log aktivitas sistem ``` --- ## πŸš€ Cara Menjalankan di XAMPP ### Langkah 1 β€” Ekstrak & Taruh di htdocs ``` Ekstrak ZIP β†’ salin folder webgis_v3 ke: C:\xampp\htdocs\webgis_v3\ ``` ### Langkah 2 β€” Start XAMPP Buka XAMPP Control Panel β†’ Start **Apache** dan **MySQL** ### Langkah 3 β€” Import Database 1. Buka browser β†’ `http://localhost/phpmyadmin` 2. Klik tab **SQL** di bagian atas 3. Salin seluruh isi file `database.sql` 4. Tempel ke kotak SQL β†’ klik **Go** Database `webgis_kemiskinan` akan terbuat otomatis dengan semua tabel dan data demo. ### Langkah 4 β€” Cek config.php (jika perlu) ```php define('DB_HOST', 'localhost'); define('DB_USER', 'root'); // default XAMPP define('DB_PASS', ''); // default XAMPP = kosong define('DB_NAME', 'webgis_kemiskinan'); ``` ### Langkah 5 β€” Buka Aplikasi ``` http://localhost/webgis_v3 ``` --- ## πŸ‘₯ Akun Demo | Role | Username | Password | Akses | |------|----------|----------|-------| | πŸ‘‘ Super Admin | `superadmin` | `password` | Semua fitur + manajemen user | | πŸ›οΈ Pimpinan | `pimpinan1` | `password` | Dashboard monitoring (read-only) | | πŸ•Œ Pengurus RI | `pengurus1` | `password` | Input data + distribusi bantuan | | πŸ•Œ Pengurus RI | `pengurus2` | `password` | Input data + distribusi bantuan | | πŸš‘ Relawan | `relawan1` | `password` | Survey lapangan + laporan | | πŸ‘€ Masyarakat | `masyarakat1` | `password` | Lihat peta + buat laporan | > Laporan masyarakat bisa dikirim **tanpa login** (klik chip "Lapor Tanpa Login" di halaman login). --- ## πŸ—„οΈ Struktur Database (13 Tabel) | Tabel | Deskripsi | |-------|-----------| | `role` | 5 role sistem | | `user` | Akun pengguna + relasi ke role & rumah ibadah | | `rumah_ibadah` | Data masjid, gereja, vihara, klenteng, pura | | `keluarga` | Data Kartu Keluarga (KK) | | `penduduk` | Data penduduk lengkap (NIK, umur otomatis, profil umur) | | `pelatihan` | Program pelatihan keterampilan | | `riwayat_pelatihan` | Peserta per pelatihan | | `bantuan` | Master program bantuan (PKH, BPNT, BLT, dll) | | `histori_bantuan` | Riwayat penyaluran bantuan per penduduk | | `laporan` | Laporan kondisi warga dari masyarakat | | `chat` | Pesan koordinasi antar pengurus | | `log_aktivitas` | Audit trail semua aktivitas sistem | --- ## ⚑ Fitur Utama ### πŸ—ΊοΈ WebGIS Interaktif - Peta gelap (dark mode) berbasis OpenStreetMap + CartoDB - **3 warna marker**: πŸ”΄ Miskin | 🟑 Rentan | 🟒 Mampu - Marker laporan masyarakat dengan kode urgensi - Layer toggle per kategori - Radius distribusi adjustable (100–1000m) - Popup detail klik marker ### πŸ‘₯ Manajemen Data Penduduk - NIK 16 digit sebagai primary key - **Umur dihitung otomatis** dari tanggal lahir (MySQL Generated Column) - **Profil umur otomatis**: Balita / Anak / Remaja / Dewasa / Lansia - Validasi pendidikan vs umur: - Usia 7–15 β†’ peringatan jika tidak sekolah - Usia 16–18 β†’ peringatan jika tidak sekolah - Relasi ke Kartu Keluarga ### 🏠 Manajemen Keluarga - Data KK lengkap (No KK, RT/RW, kelurahan, kecamatan) - Relasi ke rumah ibadah terdekat - Daftar anggota keluarga dengan detail kondisi ### 🎁 Sistem Bantuan - **Prioritas otomatis**: miskin + sakit = SANGAT TINGGI; lansia sendiri = SANGAT TINGGI - Deteksi warga yang belum pernah menerima bantuan - Histori penyaluran bantuan per individu yang transparan - Catat distribusi langsung dari halaman bantuan ### πŸ“’ Laporan Masyarakat - Bisa dikirim **tanpa login** - Upload foto dokumentasi (JPG/PNG, maks 5MB) - 4 tingkat urgensi: Rendah / Sedang / Tinggi / πŸ†˜ Darurat - Alur status: Pending β†’ Diverifikasi β†’ Diproses β†’ Selesai - Koordinat laporan via klik peta atau GPS ### πŸ’¬ Chat Koordinasi - Chat realtime antar pengurus rumah ibadah - Polling otomatis setiap 8 detik - Notifikasi dot merah jika ada pesan baru - Pesan broadcast ke semua pengurus ### πŸ“Š Dashboard & Statistik - KPI card: total penduduk, KK, miskin, rentan, laporan aktif - Progress bar distribusi per rumah ibadah - Analisis singkat di sidebar --- ## πŸ”’ Keamanan - Input sanitasi (anti XSS) di semua endpoint - Prepared statements PDO (anti SQL Injection) - Session-based auth dengan cookie HttpOnly - Role-based access control (RBAC) di backend - Block akses langsung ke `config.php` dan `database.sql` via `.htaccess` - Block eksekusi PHP di folder `uploads/` --- ## πŸ› οΈ Teknologi | Komponen | Teknologi | |----------|-----------| | Backend | PHP 7.4+ (PDO, Sessions) | | Database | MySQL 5.7+ / MariaDB 10.3+ | | Peta | Leaflet.js v1.9.4 | | Tile Map | CartoDB Dark Matter (OpenStreetMap) | | Geocoding | Nominatim API (OSM) | | Frontend | Vanilla JS ES6+, CSS3 Variables | | Font | Plus Jakarta Sans + DM Mono | --- ## πŸ“ Catatan Pengembangan Lanjutan 1. **Backend database**: Tambah `localStorage` atau backend sinkronisasi untuk multi-device 2. **Export laporan**: Tambah ekspor PDF/Excel menggunakan mPDF atau PhpSpreadsheet 3. **Notifikasi push**: Integrasikan Firebase Cloud Messaging untuk notifikasi laporan darurat 4. **PWA offline**: Service Worker untuk penggunaan lapangan tanpa internet 5. **Integrasi DTKS**: Sinkronisasi dengan Data Terpadu Kesejahteraan Sosial Kemensos RI --- *Dikembangkan sebagai tugas Rekayasa Perangkat Lunak β€” Program Studi Informatika* *WebGIS Pengentasan Kemiskinan Berbasis Komunitas dan Rumah Ibadah β€” Kota Pontianak*