pantau-bbm
Aplikasi web untuk memantau harga BBM Indonesia per wilayah
Aplikasi web untuk memantau harga BBM Indonesia per wilayah
Aplikasi web untuk memantau harga BBM Indonesia per wilayah
PantauBBM adalah aplikasi web untuk memantau harga BBM Indonesia per wilayah. Aplikasi ini menampilkan harga terkini, pencarian wilayah, tren harga, histori perubahan, serta admin panel untuk sinkronisasi data dan pengelolaan konten publik.
Website: https://pantaubbm.viasco.my.id/
PantauBBM bukan situs resmi Pertamina, MyPertamina, atau pemerintah Indonesia.
| Layer | Teknologi |
|---|---|
| Backend | Laravel 12, PHP 8.2 |
| Frontend | Vue 3, Inertia.js, Vite |
| Styling | Tailwind CSS |
| Auth | Laravel Breeze |
| Routing helper | Ziggy |
| HTTP client | Axios, Laravel HTTP Client |
| Testing | PHPUnit |
| Tooling | Laravel Pint, Laravel Pail |
| Database | MySQL / PostgreSQL / SQLite |
Data harga BBM diambil dari Bensin API.
Source code API: nasgunawann/bensin-api
Konfigurasi utama:
FUEL_API_BASE_URL=https://nasgunawann.github.io/bensin-api
FUEL_API_TIMEOUT=15
FUEL_API_RETRY_ATTEMPTS=3
FUEL_API_RETRY_SLEEP_MS=500
FUEL_API_USER_AGENT="PantauBBM/1.0"
Lihat detail integrasi di docs/05-api-integration.md dan sync engine di docs/06-sync-engine.md.
git clone <repo-url>
cd harga-bensin
composer install
npm install
cp .env.example .env
php artisan key:generate
Minimal konfigurasi .env:
APP_NAME=PantauBBM
APP_URL=http://localhost
APP_TIMEZONE=Asia/Jakarta
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=pantaubbm
DB_USERNAME=root
DB_PASSWORD=
php artisan migrate --seed
Seeder membuat:
ADMIN_*Terminal 1:
php artisan serve
Terminal 2:
npm run dev
Buka aplikasi di http://localhost:8000.
Atur credential admin lewat .env:
ADMIN_NAME=Administrator
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=password
ADMIN_REGISTRATION_ENABLED=false
Login admin lewat /login, lalu buka /admin/dashboard.
Sinkronisasi bisa dijalankan dari admin dashboard atau command scheduler.
Contoh manual lewat Artisan:
php artisan fuel:sync
Jadwal sync dikontrol dari env/settings:
FUEL_SYNC_SCHEDULE_CRON="0 */6 * * *"
FUEL_SYNC_LOCK_STORE=file
FUEL_SYNC_LOCK_SECONDS=600
FUEL_SYNC_CACHE_STORE=file
npm run build
Untuk deployment Laravel umum:
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan test
npm run build
Jika memakai formatter Laravel Pint:
./vendor/bin/pint
app/
├── Http/Controllers
├── Models
└── Services
resources/js/
├── Components
├── Layouts
└── Pages
database/
├── migrations
└── seeders
docs/
└── *.md
Dokumentasi proyek ada di folder docs/.
docs/01-project-overview.md — gambaran proyekdocs/02-branding-design-system.md — brand dan design systemdocs/03-functional-requirements.md — kebutuhan fiturdocs/04-database-design.md — desain databasedocs/05-api-integration.md — integrasi Bensin APIdocs/06-sync-engine.md — engine sinkronisasidocs/07-routing-navigation.md — routing dan navigasidocs/08-frontend-architecture.md — arsitektur frontenddocs/09-backend-architecture.md — arsitektur backenddocs/10-seo-strategy.md — strategi SEOdocs/11-deployment.md — deploymentdocs/roadmap.md — roadmapRingkasan dokumentasi ada di README-docs.md.
| Key | Fungsi |
|---|---|
APP_TIMEZONE |
Timezone aplikasi, default Asia/Jakarta |
FUEL_API_BASE_URL |
Base URL Bensin API |
FUEL_API_TIMEOUT |
Timeout request API |
FUEL_SYNC_SCHEDULE_CRON |
Jadwal sync |
ADMIN_EMAIL |
Email admin awal |
ADMIN_PASSWORD |
Password admin awal |
ADMIN_REGISTRATION_ENABLED |
Aktif/nonaktif registrasi publik |
Proyek ini memakai lisensi MIT.