Jostar.id
Portfolio
Mobile App · 2026

App Ojol Lokal — Food Delivery 4 Role

Platform pesan-antar makanan ala GoFood/GrabFood yang menggabungkan empat peran — Pelanggan, Driver, Merchant, dan Admin — dalam satu codebase Flutter (Android & iOS). Backend Firebase dengan 17 Cloud Functions production menangani alur order end-to-end: dari browse merchant, checkout dengan map picker, auto-broadcast ke driver terdekat, tracking real-time, sampai payout otomatis ke merchant & driver. Dilengkapi defenses skala komersial — transaction atomic, security rules berlapis, dan dispute resolution.

Kunjungi Website
Platform
Android · iOS
Tahun
2026
Industri
Food Delivery / On-Demand
Peran
Full-cycle: arsitektur, app Flutter 4 role, backend Firebase & Cloud Functions

Tampilan aplikasi

Klik gambar untuk memperbesar — geser kiri/kanan untuk berpindah.

Pelanggan — beranda: promo, kategori & merchant terdekat
Pelanggan — keranjang multi-item per toko
Pelanggan — checkout: alamat, voucher & ongkir
Pelanggan — status order 6 tahap + ETA real-time
Pelanggan — live tracking driver di peta
Pelanggan — chat real-time dengan driver
Pelanggan — rating driver & merchant
Pelanggan — address book & map picker
Driver — dashboard: toggle online & order terdekat
Driver — detail order: pickup, delivery & navigasi
Driver — saldo, riwayat pendapatan & withdraw
Driver — verifikasi KTP / SIM / STNK
Merchant — dashboard: buka/tutup & order masuk
Merchant — kelola menu & stok per item
Admin — dashboard: GMV, komisi & payout
Admin — verifikasi & approval driver

Fitur utama

4 role dalam 1 APK

Pelanggan, Driver, Merchant, dan Admin berbagi satu aplikasi dengan routing type-safe + role guard (GoRouter).

Checkout dengan map picker

Auto-detect lokasi GPS atau pin manual di Google Maps, address book tersimpan, dan catatan untuk driver.

Tracking driver real-time

Marker live driver di peta sejak accept (ke toko) hingga sampai ke pelanggan, lengkap dengan ETA estimasi tiba.

Auto-broadcast ke driver terdekat

Order siap diambil otomatis disebar ke 8 driver terdekat via FCM; re-broadcast radius 15 km bila >2 menit belum diambil.

Background location driver

Foreground service Android + iOS background mode menjaga posisi driver tetap terlacak walau app di-background.

Pembayaran fleksibel

Saldo dompet, transfer, QRIS, dan e-wallet via Midtrans/Xendit — tinggal switch gateway lewat .env.

Payout & komisi otomatis

(Subtotal − komisi) masuk saldo merchant dan ongkir masuk saldo driver saat delivered — idempotent, anti double-credit.

Panel admin lengkap

Approve merchant & driver, set komisi/ongkir, kelola voucher & banner, approve withdraw, dispute resolution, dan laporan keuangan.

Sorotan teknis

Bagian canggih di balik layar yang membuat sistem ini bekerja mulus.

  • Race-protected accept: Firestore transaction mencegah dua driver merebut order yang sama, dengan validasi status suspend real-time.
  • Tarif ongkir distance-based: jarak Haversine merchant → pelanggan dengan base fee, per-km, dan min/max yang konfigurable admin.
  • Webhook Midtrans/Xendit idempotent + amount validation, dengan fallback polling bila webhook miss.
  • Order timeout sweeper: scheduled Cloud Function tiap 5 menit auto-cancel order nyangkut + refund saldo & quota voucher otomatis.
  • Security rules field-level: user tidak bisa mengubah balance/role sendiri, driver tidak bisa unsuspend dirinya.
  • 17 Cloud Functions production (broadcast, payment, payout, dispute, sweeper) dengan dokumentasi handover untuk operator non-teknis.

Tech stack

FlutterDartRiverpodGoRouterFirebase AuthFirestoreCloud Functions (TypeScript)Cloud StorageFCMGoogle Maps SDKMidtrans / Xendit

Mau aplikasi seperti ini untuk bisnismu?

Kami sudah pernah membangun sistem seperti App Ojol Lokal dari nol sampai dipakai. Ceritakan kebutuhanmu — konsultasi awal gratis, tanpa komitmen.