# WebGIS SPBU Pontianak — Backend + Frontend ## Struktur Project ``` spbu-webgis/ ├── backend/ │ ├── server.js ← Express server + semua API route │ ├── db.js ← Koneksi MySQL (pool) │ ├── .env ← Konfigurasi database (edit ini!) │ └── package.json ├── frontend/ │ ├── index.html ← Halaman peta utama │ └── admin.html ← Halaman CRUD data SPBU ├── schema.sql ← SQL untuk buat tabel manual (opsional) └── .gitignore ``` --- ## Cara Menjalankan ### 1. Pastikan MySQL berjalan dan buat database ```sql CREATE DATABASE spbu_pontianak CHARACTER SET utf8mb4; ``` ### 2. Edit konfigurasi database Buka `backend/.env` dan sesuaikan: ```env DB_HOST=localhost DB_PORT=3306 DB_USER=root DB_PASSWORD=password_anda ← ganti ini DB_NAME=spbu_pontianak PORT=3000 ``` ### 3. Install dependencies ```bash cd backend npm install ``` ### 4. Jalankan server ```bash # Mode biasa npm start # Mode development (auto-restart saat ada perubahan) npm run dev ``` ### 5. Buka di browser | URL | Keterangan | |-----|-----------| | http://localhost:3000/ | Peta WebGIS | | http://localhost:3000/admin.html | CRUD Data SPBU | | http://localhost:3000/api/spbu | JSON API | --- ## API Endpoint | Method | URL | Fungsi | |--------|-----|--------| | `GET` | `/api/spbu` | Ambil semua SPBU aktif | | `GET` | `/api/spbu/:id` | Ambil satu SPBU | | `POST` | `/api/spbu` | Tambah SPBU baru | | `PUT` | `/api/spbu/:id` | Update data SPBU | | `PATCH` | `/api/spbu/:id/override` | Update override status saja | | `DELETE` | `/api/spbu/:id` | Hapus SPBU (soft delete) | --- ## Catatan - Tabel MySQL dibuat otomatis saat server pertama kali dijalankan. - Data 9 SPBU di-seed otomatis jika tabel masih kosong. - Hapus SPBU bersifat **soft delete** (kolom `aktif = 0`), data tidak hilang dari database. - Override status tersimpan ke database dan bertahan setelah server restart.