# WebGIS SPBU Laravel WebGIS SPBU adalah aplikasi Laravel untuk memetakan dan mengelola titik Stasiun Pengisian Bahan Bakar Umum (SPBU). Aplikasi ini mempertahankan tampilan Leaflet, Tailwind CDN, DaisyUI CDN, dan Font Awesome dari versi HTML/PHP lama, tetapi backend-nya sudah memakai route, controller, model, migration, dan seeder Laravel. ## Fitur - Landing page dengan peta latar. - Input SPBU dari klik peta. - Edit atribut SPBU. - Drag marker untuk memindahkan lokasi. - Hapus data SPBU. - Halaman daftar data, statistik, pencarian, quick list, dan mini map. ## Menjalankan Dengan Docker ```powershell docker compose up --build ``` Buka: ```text http://localhost:8000 ``` Container `app` akan otomatis: - membuat `.env` dari `.env.example` jika belum ada - menyinkronkan konfigurasi dari `docker-compose.yml` ke `.env` - generate `APP_KEY` jika belum tersedia - menunggu MySQL siap - menjalankan migration - menjalankan seeder - menjalankan Laravel di port `8000` Database MySQL berjalan di service `db` dengan volume `spbu-mysql-data`. ## Menjalankan Lokal Tanpa Docker Pastikan PHP 8.3, Composer, dan MySQL aktif. ```powershell composer install Copy-Item .env.example .env php artisan key:generate ``` Buat database MySQL: ```sql CREATE DATABASE spbu_baru CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` Sesuaikan `.env` jika user/password MySQL berbeda, lalu jalankan: ```powershell php artisan migrate --seed php artisan serve --host=127.0.0.1 --port=8000 ``` Buka `http://127.0.0.1:8000`. ## Endpoint API | Method | Endpoint | Fungsi | | --- | --- | --- | | `GET` | `/api/spbu` | Mengambil semua data SPBU | | `POST` | `/api/spbu` | Menyimpan data SPBU baru | | `PUT` | `/api/spbu/{id}` | Memperbarui data SPBU | | `DELETE` | `/api/spbu/{id}` | Menghapus data SPBU | ## Halaman - `/` - landing page - `/input` - input, edit, hapus, dan pindah marker - `/data` - daftar data, statistik, search, quick list, dan mini map ## Testing ```powershell php artisan test ``` ## Catatan Migrasi Source versi lama disimpan di folder `_legacy_original` untuk referensi. Folder itu tidak ikut masuk ke Docker image.