Files
luthfihadinugroho79 e950468760 add files
2026-06-10 19:42:59 +07:00

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*