9.4 KiB
9.4 KiB
WebGIS - Sistem Informasi Geografis untuk Pengentasan Kemiskinan
Aplikasi web berbasis map untuk visualisasi, manajemen, dan analisis data kemiskinan di wilayah Pontianak.
🚀 Quick Start
Prerequisites
- PHP 7.4+
- Web Browser (Chrome, Firefox, Edge)
- Git
Installation
# 1. Clone or download repository
cd /workspaces/project92e4821824385
# 2. Start PHP development server
php -S localhost:8000
# 3. Open in browser
# Navigate to: http://localhost:8000
# 4. Login with demo credentials
# Email: admin@system.local
# Password: admin123
📋 Features
✅ Authentication & Access Control
- Role-based login system (Admin, Petugas, Pimpinan)
- Session management dengan automatic timeout
- Secure password hashing dengan bcrypt
✅ Dashboard Analytics
- Real-time KPI cards (total households, avg poverty score, assistance rate)
- Status breakdown (verification status)
- Priority ranking (intervention priority levels)
- Area-wise statistics breakdown
✅ User Management (Admin Only)
- Create new users dengan role assignment
- Edit user roles
- Deactivate users (soft delete)
- User list dengan status indicators
✅ Spatial Data Management
- Multi-layer interactive map dengan Leaflet.js
- Map layers: Points (households), Roads, Parcels, Choropleth (Pontianak areas)
- Drag-drop marker repositioning
- Point search dan filtering
✅ Household Data
- Create household records dengan poverty assessment
- Income, employment status, housing condition tracking
- Household ranking by poverty score
- Verification status tracking
✅ Poverty Scoring System
- Automatic computation of SKR (socioeconomic score)
- SAG (geographic accessibility score)
- SPI (intervention priority score)
- Priority level assignment (Very High → Low)
✅ Verification & Assistance Tracking
- Record field verification results
- Track assistance distribution (food, cash, health, education, etc.)
- Delivery status monitoring
- Evidence & confidence scoring
✅ Export & Reporting
- GeoJSON export untuk spatial analysis
- Suitable untuk integration dengan GIS tools
🎨 Technology Stack
| Component | Technology |
|---|---|
| Frontend | Vanilla HTML5, CSS3, JavaScript |
| Map Library | Leaflet.js (OpenStreetMap compatible) |
| Backend | PHP 7.4+ |
| Database | SQLite 3.0+ |
| API | RESTful JSON APIs |
| Session | PHP Sessions (cookie-based) |
📁 Project Structure
project92e4821824385/
├── api/ # 40+ PHP endpoints
│ ├── config.php # Database config & auth functions
│ ├── login.php # Login endpoint
│ ├── logout.php # Logout endpoint
│ ├── get_users.php # User list
│ ├── create_user.php # Create user
│ ├── update_user.php # Update user role
│ ├── delete_user.php # Deactivate user
│ ├── get_dashboard_summary.php
│ ├── get_area_breakdown.php
│ └── ... (30+ more endpoints for spatial/household data)
│
├── js/
│ └── app.js # Main application logic (~2300 lines)
│
├── css/
│ └── style.css # Responsive styling
│
├── db/
│ └── markers.db # SQLite database (auto-created)
│
├── index.html # Main entry point
├── API_REFERENCE.md # Detailed API documentation
├── USER_GUIDE.md # User manual for all roles
├── IMPLEMENTATION_SUMMARY.md # Tech stack & features
└── README.md # This file
👥 User Roles & Permissions
Admin 👑
- Full system access
- User management (create, edit, delete)
- Data input and editing
- View analytics and dashboard
- Compute poverty scores
Petugas (Data Officer) 📝
- Input/edit household data
- View map and statistics
- Verify households
- Record assistance distribution
- Cannot manage users
Pimpinan (Manager) 👔
- View-only dashboard access
- View priority rankings
- Cannot input or modify data
🔐 Default Credentials
Email: admin@system.local
Password: admin123
Role: Admin
📖 Documentation
- API Reference: See
API_REFERENCE.mdfor all endpoint Documentation - User Guide: See
USER_GUIDE.mdfor complete usage instructions - Implementation: See
IMPLEMENTATION_SUMMARY.mdfor technical details
🗄️ Database
Auto-initialization
- Database schema automatically created on first run
- 11+ tables with proper relationships
- Indexes on performance-critical columns
- Cascade delete policies
Tables
users- User accounts & authenticationhouseholds- Family poverty datahousehold_scores- SKR, SAG, SPI calculationsassistance_distributions- Bantuan trackingverification_logs- Verification historymarkers, roads, land_parcels- Spatial datapontianak_areas, area_statistics- Administrative boundariesmasjids, need_points- Location datascore_metadata- Scoring configuration
🔌 API Endpoints (40+)
Authentication
- POST
/api/login.php- Login - POST
/api/logout.php- Logout - GET
/api/get_current_user.php- Current user info
User Management (Admin)
- GET
/api/get_users.php- List users - POST
/api/create_user.php- Create user - PUT
/api/update_user.php- Update role - DELETE
/api/delete_user.php- Deactivate user
Analytics
- GET
/api/get_dashboard_summary.php- Dashboard KPIs - GET
/api/get_area_breakdown.php- Area statistics
Household Management
- POST
/api/save_household.php- Create household - GET
/api/get_households.php- List households - PUT
/api/update_household.php- Update household - DELETE
/api/delete_household.php- Delete household - POST
/api/compute_household_scores.php- Compute scores - GET
/api/get_household_ranking.php- Priority ranking
Verification & Assistance
- POST
/api/save_verification_log.php- Record verification - GET
/api/get_verification_logs.php- Verification history - POST
/api/save_assistance_distribution.php- Record assistance - GET
/api/get_assistance_distributions.php- Assistance history
Spatial Data (20+)
- Points, Roads, Parcels, Pontianak Areas (CRUD operations)
- Choropleth data aggregation
- GeoJSON export
⚙️ Configuration
Server Requirements
- PHP 7.4 or higher
- Web server (Apache, Nginx, phpd built-in)
- Write permissions for
/db/folder
Optional Production Setup
- Set up HTTPS/SSL certificate
- Configure proper session timeout
- Set up automated backups
- Enable database WAL mode for concurrency
🚀 Production Deployment
Using Apache
<VirtualHost *:80>
ServerName system.local
DocumentRoot /var/www/project
<Directory /var/www/project>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Using Nginx
server {
listen 80;
server_name system.local;
root /var/www/project;
location ~\.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
📊 Performance
- Page Load: < 3 seconds (on 10 Mbps connection)
- API Response: < 500ms for most endpoints
- Map Rendering: Real-time interactivity
- Scoring Computation: < 1 second for 100 households
🛠️ Development Guide
Adding New Endpoint
- Create new file in
/api/folder:your_endpoint.php - Include
config.phpfor database access - Use
requireLogin()orrequireRole()for access control - Return JSON response
Example:
<?php
header('Content-Type: application/json');
require_once 'config.php';
requireRole(['Admin', 'Petugas']);
// Your code here
die(json_encode(['success' => true, 'data' => $result]));
?>
Modifying Frontend
- Edit
js/app.jsfor logic changes - Edit
css/style.cssfor styling - Edit
index.htmlfor structure/layout - Refresh browser to see changes (no build required)
🐛 Troubleshooting
Login Issues
- Verify email:
admin@system.local - Verify password:
admin123 - Check browser cookies are enabled
- Clear cache and try again
Map Not Loading
- Check browser console for errors (F12)
- Verify internet connection (for Leaflet CDN)
- Try refreshing page
Database Issues
- Ensure
/db/folder has write permissions - Check PHP error logs
- Delete
db/markers.dbto reset (will lose data)
Performance Issues
- Check browser performance (F12 > Performance tab)
- Monitor server CPU/memory usage
- Consider adding pagination for large datasets
📝 Changelog
Version 1.0 (May 2026)
- ✅ Complete authentication system
- ✅ Dashboard with real-time analytics
- ✅ User management for admins
- ✅ Household data management with scoring
- ✅ Interactive Leaflet map
- ✅ Verification and assistance tracking
- ✅ GeoJSON export capability
- ✅ Comprehensive API (40+ endpoints)
- ✅ User guide and API documentation
📞 Support
For issues, questions, or feature requests:
- Check documentation in
USER_GUIDE.md - Review API documentation in
API_REFERENCE.md - Check browser console for error messages
- Contact system administrator
📜 License
Academic Project - Universitas Tanjungpura Mata Kuliah: Sistem Informasi Geografis Dosen: Dr. Ir. Yus Sholva, ST., MT.
👨💻 Authors
Frederick Ferdyand Halim - Developer Semester Genap 2024/2025
Last Updated: 9 Mei 2026 Status: Production Ready v1.0