HikePass: Integrated Mountain Booking & Climbing Security Platform
Sistem ekosistem full-stack terintegrasi untuk mengelola reservasi pendakian gunung, verifikasi check-in/check-out perlengkapan, pelacakan riwayat pendaki secara real-time, serta portal direktori event & paket wisata. Menggunakan arsitektur dual-backend berbasis Laravel dan Node.js Express.
Latar Belakang & Solusi Proyek
Pengelolaan perizinan keamanan pendaki gunung di pos gerbang masuk sering mengalami penumpukan antrean karena proses administrasi manual. Ditambah lagi, pelacakan log perlengkapan bawaan, status check-in/check-out aktif, dan riwayat pendakian yang terfragmentasi menyulitkan petugas memantau keselamatan pendaki secara real-time.
HikePass mengotomatisasi siklus keselamatan pendakian dari hulu ke hilir. Menggunakan antarmuka SPA berbasis Vue 3 yang responsif, beban operasional didistribusikan ke dua API backend: Laravel untuk memproses transaksi sensitif (Autentikasi OTP, Reservasi, Check-in/Check-out, dan Riwayat Pendakian), serta Node.js Express untuk menyajikan konten dinamis ber-throughput tinggi (Paket Wisata dan Berita/Event).
State Machine Integrity & Dynamic Multi-Backend Integration
Dalam sistem keselamatan pendakian, integritas alur status pendaki (Reservasi → Check-In → Check-Out → Riwayat) sangat krusial. Jika pendaki melakukan check-in tanpa reservasi yang valid, atau check-out sebelum check-in, data keselamatan menjadi kacau. Selain itu, aplikasi harus mengambil data secara efisien dari dua backend terpisah (Laravel untuk data transaksional pendakian dan Node.js untuk artikel/paket wisata) tanpa mengalami inkonsistensi autentikasi atau latensi tinggi saat rendering halaman.
Mengembangkan arsitektur state machine yang ketat di tingkat database relasional melalui foreign key constraints terstruktur (Reservasi → Checkin → Checkout → History) dan validasi request bertingkat di Laravel (menggunakan unique checks dan date boundary validations). Komunikasi dengan dual backend dioptimalkan di sisi Vue 3 menggunakan Axios HTTP client interceptors dengan token Sanctum, serta manajemen async state terpusat yang memisahkan caching data statis Node.js dari data transaksional Laravel.
- Strict State Machine: Menjamin transisi status pendaki di database berjalan berurutan dengan relasi model one-to-one yang kokoh (misalnya, melarang checkout ganda untuk satu check-in).
- Dual-Backend Gateway Connection: Menyinkronkan pemanggilan endpoint Laravel (Port 8000) dan Node.js (Port 5000) secara non-blocking menggunakan Vue 3 Composables.
- Temporal Validation: Menerapkan validasi tanggal check-out dinamis yang secara otomatis melarang tanggal sebelum tanggal check-in (after_or_equal:checkin_date).
Workflow Architecture
Urutan eksekusi transaksi, validasi sesi autentikasi, dan pipeline sinkronisasi data real-time pada arsitektur sistem.
Client Side Routing & Auth Check
Vue Router memeriksa kecocokan token Sanctum di localStorage sebelum mengizinkan admin masuk ke dashboard.
Dual-Backend API Dispatch
Aplikasi membagi request data: data kuota dan status pendakian dikirim ke Laravel, sedangkan artikel dan paket wisata ditarik dari Node.js.
Transactional State Transition
Admin memproses check-in; Laravel mengunci status reservasi, memvalidasi daftar perlengkapan, dan menyimpannya di tabel checkins.
History Archival
Saat check-out selesai, data dikirim ke endpoint histories/checkout untuk diarsipkan secara permanen dan membebaskan kuota pendakian.
Tech Stack
Rasional pemilihan fondasi teknologi, bahasa pemrograman, database, dan protokol integrasi eksternal.
Vue 3 (Vite) & Vue Router
Membangun dashboard operasional gerbang pos pendakian berbasis Single Page Application (SPA) yang cepat, menangani navigasi antar modul kuota dan verifikasi SIMAKSI tanpa reload halaman.
Laravel 11 & PHP 8.2
Core API engine yang memproses data sensitif seperti reservasi tiket, validasi check-in/check-out massal di pos masuk, dan pengiriman kode verifikasi OTP secara atomic.
Laravel Sanctum
Menyediakan sistem autentikasi token stateless yang aman untuk memverifikasi hak akses staf gerbang pos dan membatasi izin pengubahan kuota gunung hanya untuk role administrator.
Node.js & Express.js
Microservice terpisah yang dirancang khusus untuk melayani permintaan konten statis ber-throughput tinggi seperti katalog paket wisata alam dan artikel panduan keselamatan.
MySQL Engine
Menyimpan skema relasional kuota harian jalur gunung, riwayat check-in pendaki, dan daftar verifikasi barang bawaan plastik guna mengeliminasi sampah di kawasan konservasi.
Chart.js
Menyajikan grafik analitik tren kunjungan pendaki tahunan, sebaran provinsi asal pendaki, dan rekapitulasi PNBP tiket masuk secara visual dan interaktif bagi pengelola taman nasional.
Core Capabilities
Rincian fitur fungsional utama, kemampuan penanganan transaksi, dan mekanisme keandalan sistem.
OTP-Protected Authentication
Verifikasi pendaftaran dan reset password menggunakan kode OTP 6-digit yang dikirimkan via email untuk menjamin keamanan akun pendaki.
Gear & Member Verification
Pencatatan data barang bawaan pendaki saat check-in untuk dicocokkan kembali saat check-out guna meminimalkan sampah di gunung.
Complete Climbing History
Pengarsipan data pendakian otomatis setelah check-out selesai untuk analisis demografi pendaki dan riwayat perjalanan yang aman.
Dynamic Revenue & User Charts
Dashboard admin interaktif dengan grafik tahunan berbasis Chart.js untuk memantau pendapatan total, jumlah pendaki aktif, dan pengguna baru.
Streamlining Mountain Reservations & Safety Operations
Tampilan dashboard admin yang responsif untuk mengontrol kuota gunung, memverifikasi check-in/check-out, serta memantau status keamanan pendaki.
HijauKu
Portal front-end responsif dan ringan yang dirancang untuk mendigitalisasi pengelolaan sampah lingkungan. Membantu warga menghitung nilai konversi sampah daur ulang, katalog kategori sampah, serta pengiriman form pengambilan sampah.
