190 lines
6.5 KiB
Markdown
190 lines
6.5 KiB
Markdown
# WebGIS Pontianak v2.0
|
|
## Sistem Informasi Geografis Penduduk Miskin Kota Pontianak
|
|
|
|
---
|
|
|
|
## 📁 Struktur Proyek
|
|
|
|
```
|
|
webgis-v2/
|
|
├── index.php # Entry point (auto-redirect by role)
|
|
├── login.php # Halaman login (semua role)
|
|
├── daftar.php # Registrasi akun masyarakat
|
|
│
|
|
├── dashboard/
|
|
│ ├── masyarakat.php # Dashboard: Masyarakat
|
|
│ ├── pengurus.php # Dashboard: Pengurus Rumah Ibadah
|
|
│ └── pemerintah.php # Dashboard: Pemerintah (read-only)
|
|
│
|
|
├── api/
|
|
│ ├── auth.php # Login, logout, register, session
|
|
│ ├── penduduk.php # CRUD data KK & GeoJSON
|
|
│ ├── anggota.php # CRUD anggota keluarga & pendidikan
|
|
│ ├── rumah_ibadah.php # CRUD rumah ibadah & GeoJSON
|
|
│ ├── laporan.php # Laporan masyarakat & verifikasi
|
|
│ ├── bantuan.php # Histori bantuan & statistik
|
|
│ ├── pesan.php # Komunikasi antar rumah ibadah
|
|
│ └── notifikasi.php # Notifikasi real-time
|
|
│
|
|
├── includes/
|
|
│ └── config.php # DB config, helpers, session
|
|
│
|
|
├── assets/
|
|
│ ├── css/style.css # Global stylesheet
|
|
│ ├── js/app.js # Global JS utilities
|
|
│ └── uploads/ # Foto & dokumen upload
|
|
│
|
|
└── database_baru.sql # Schema database lengkap
|
|
```
|
|
|
|
---
|
|
|
|
## 🚀 Cara Install
|
|
|
|
### 1. Import Database
|
|
```sql
|
|
CREATE DATABASE webgis_pontianak CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
USE webgis_pontianak;
|
|
-- Import file: database_baru.sql
|
|
```
|
|
|
|
### 2. Konfigurasi Database
|
|
Edit `includes/config.php`:
|
|
```php
|
|
define('DB_HOST', 'localhost');
|
|
define('DB_USER', 'root'); // sesuaikan
|
|
define('DB_PASS', ''); // sesuaikan
|
|
define('DB_NAME', 'webgis_pontianak');
|
|
```
|
|
|
|
### 3. Buat Password Default
|
|
Jalankan script PHP ini sekali untuk update password `password123`:
|
|
```php
|
|
<?php
|
|
require 'includes/config.php';
|
|
$hash = password_hash('password123', PASSWORD_DEFAULT);
|
|
$conn->query("UPDATE users SET password_hash='$hash'");
|
|
echo "Password updated!";
|
|
?>
|
|
```
|
|
|
|
### 4. Akses Aplikasi
|
|
Buka `http://localhost/webgis-v2/` di browser.
|
|
|
|
---
|
|
|
|
## 👤 Akun Default
|
|
|
|
| Username | Password | Role |
|
|
|----------------|---------------|---------------------|
|
|
| `admin` | password123 | Admin |
|
|
| `pengurus_mj` | password123 | Pengurus Masjid Jami|
|
|
| `pengurus_mm` | password123 | Pengurus Mujahidin |
|
|
| `pengurus_gk` | password123 | Pengurus Katedral |
|
|
| `pemda_ptk` | password123 | Pemerintah |
|
|
| `ahmad_yusuf` | password123 | Masyarakat |
|
|
|
|
---
|
|
|
|
## 🔑 Fitur Per Role
|
|
|
|
### 👤 Masyarakat
|
|
- Login / Daftar akun mandiri
|
|
- Lihat peta sebaran penduduk
|
|
- **Kirim laporan:** kelahiran, kematian, pindah, dll
|
|
- Lihat data keluarga & anggota (dengan umur otomatis dari tanggal lahir)
|
|
- Lihat riwayat pendidikan anggota keluarga
|
|
- Lihat histori bantuan yang diterima keluarga
|
|
- Terima notifikasi real-time
|
|
|
|
### 🕌 Pengurus Rumah Ibadah
|
|
- Semua fitur di atas, plus:
|
|
- **Manajemen penduduk binaan:** tambah, edit, hapus KK
|
|
- **Manajemen anggota keluarga** beserta riwayat pendidikan
|
|
- **Verifikasi laporan** masyarakat → otomatis update status anggota
|
|
- **Catat bantuan:** detail lengkap dengan kondisi, foto, nominal
|
|
- Histori bantuan dengan **rumah ibadah mitra**
|
|
- **Kirim/terima pesan** antar rumah ibadah
|
|
- Tambah rumah ibadah baru ke sistem
|
|
- Notifikasi auto saat laporan masuk ke wilayah binaan
|
|
|
|
### 🏛️ Pemerintah (Read-only)
|
|
- Dashboard analytics lengkap dengan Chart.js
|
|
- KPI: total KK, jiwa, sangat miskin, miskin, bantuan, ibadah
|
|
- **Grafik:** distribusi per kecamatan, status ekonomi, bantuan per jenis, kontribusi ibadah, status laporan
|
|
- Peta GIS interaktif dengan filter
|
|
- Tabel penduduk lengkap + **export CSV**
|
|
- Transparansi penyaluran bantuan
|
|
- Monitoring laporan masyarakat
|
|
|
|
---
|
|
|
|
## 🗺️ Fitur GIS
|
|
|
|
- **Peta Leaflet** dengan tile OpenStreetMap
|
|
- Marker per penduduk (warna berbeda per status ekonomi)
|
|
- Marker per rumah ibadah (ikon sesuai jenis)
|
|
- **Radius layanan** tiap rumah ibadah (lingkaran)
|
|
- **Auto-assign:** laporan masyarakat otomatis diteruskan ke rumah ibadah yang radius-nya mencakup lokasi KK
|
|
- **Haversine:** jarak KK ke rumah ibadah terdekat dihitung otomatis saat input
|
|
|
|
---
|
|
|
|
## 📡 API Endpoints
|
|
|
|
```
|
|
GET api/auth.php?action=stats → Statistik publik (login page)
|
|
POST api/auth.php → Login
|
|
POST api/auth.php?action=register → Register masyarakat
|
|
GET api/auth.php?action=logout → Logout
|
|
|
|
GET api/penduduk.php?action=geojson → GeoJSON semua penduduk
|
|
GET api/penduduk.php?action=dashboard → Statistik dashboard
|
|
POST api/penduduk.php → Tambah KK (multipart)
|
|
PUT api/penduduk.php → Update KK
|
|
|
|
GET api/anggota.php?action=list&id_penduduk=X → List anggota KK
|
|
POST api/anggota.php → Tambah anggota
|
|
PUT api/anggota.php → Update/ubah status hidup
|
|
|
|
GET api/rumah_ibadah.php?action=geojson → GeoJSON ibadah
|
|
GET api/rumah_ibadah.php?action=list → List ibadah (dropdown)
|
|
POST api/rumah_ibadah.php → Tambah ibadah
|
|
|
|
GET api/laporan.php?action=list → List laporan (filter wilayah auto)
|
|
POST api/laporan.php?action=kirim → Kirim laporan (masyarakat)
|
|
PUT api/laporan.php?action=verifikasi → Verifikasi laporan (pengurus)
|
|
|
|
GET api/bantuan.php?action=list → Histori bantuan
|
|
GET api/bantuan.php?action=statistik → Statistik bantuan
|
|
POST api/bantuan.php → Catat bantuan baru
|
|
PUT api/bantuan.php → Update bantuan
|
|
|
|
GET api/pesan.php?action=inbox → Pesan masuk (pengurus)
|
|
GET api/pesan.php?action=outbox → Pesan terkirim
|
|
POST api/pesan.php → Kirim pesan antar ibadah
|
|
PUT api/pesan.php?action=inbox → Balas pesan
|
|
|
|
GET api/notifikasi.php → Semua notifikasi user
|
|
PUT api/notifikasi.php → Tandai baca
|
|
```
|
|
|
|
---
|
|
|
|
## 🔧 Kebutuhan Server
|
|
- PHP 7.4+ dengan ekstensi `mysqli`, `session`
|
|
- MySQL / MariaDB 5.7+
|
|
- Apache/Nginx dengan `mod_rewrite`
|
|
- PHP `fileinfo` untuk upload gambar
|
|
|
|
---
|
|
|
|
## 📦 Dependensi Eksternal (CDN — tidak perlu install)
|
|
- Leaflet.js 1.9.4 (peta interaktif)
|
|
- Chart.js 4.4.0 (grafik dashboard pemerintah)
|
|
- Google Fonts: Sora
|
|
|
|
---
|
|
|
|
*WebGIS Pontianak v2.0 — Sistem Terintegrasi Penanggulangan Kemiskinan*
|