Belajar Development Fullstack Ojek Online Customer App, Driver App, dan Operator Web Dashboard dalam satu ekosistem dengan Flutter & Laravel.
Demo aplikasi yang akan kita bangun bersama
Harga terendah di awal, naik seiring waktu.
31 Agt 2026 — 03 Sep 2026
Rp 499.000
Rp 199.000
Rp 175.000
Hemat tambahan Rp 24.000 dari harga umum
04 Sep 2026 — 14 Sep 2026
Rp 499.000
Rp 349.000
Rp 299.000
Hemat tambahan Rp 50.000 dari harga umum
09 Sep 2026 dan seterusnya
Harga Normal
Rp 499.000
Harga alumni dan umum sama di fase ini.
Di fase ini harga alumni dan umum sama.
Ambil FIC Batch 24 saja, atau sekalian bundling dengan satu program Academy JagoFlutter. Satu kali bayar, dua akses langsung aktif.
Single
Course FIC Batch 24 Fullstack Ojek Online saja.
Rp 499.000
Harga Normal — harga umum
Bundling
FIC Batch 24 + FFC Fundamental Flutter Course.
Rp 375.000
Harga satuan Rp 698.000 — hemat 46%
Bundling
FIC Batch 24 + Academy JagoFlutter Batch 4 — BengkelPro.
Rp 499.000
Harga satuan Rp 1.299.000 — hemat 62%
Bundling
FIC Batch 24 + Academy Batch 3 — Fullstack Online Store (Next.js + Flutter).
Rp 499.000
Harga satuan Rp 1.449.000 — hemat 66%
Bundling
FIC Batch 24 + Academy Batch 2 — GajiPro HRIS SaaS.
Rp 599.000
Harga satuan Rp 2.298.000 — hemat 74%
Harga paket bundling bersifat tetap — tidak digabung dengan diskon alumni.
Customer App, Driver App, dan Panel Operasi web — semuanya terhubung ke satu backend Laravel. Ini tampilan aplikasi yang akan kita bangun bersama.
Pesan ojek dengan tarif yang tampil sebelum order, pilih titik jemput & tujuan di peta, pantau pencarian driver secara realtime, sampai pembatalan beralasan.
Toggle online/offline, terima tawaran order yang masuk dengan hitung mundur, sampai rincian pendapatan dan potongan komisi setiap trip selesai.
Panel operasi: peta live driver, ringkasan KPI harian, order bermasalah yang perlu ditangani, verifikasi driver baru & topup saldo, sampai pengaturan tarif, radius dispatch, dan wilayah layanan.
Semua sesi dimulai jam 20.00 WIB. Tidak bisa hadir? Rekaman tetap bisa diakses.
Rabu, 09 September 2026 · 20.00 WIB
Bedah cara kerja aplikasi ride-hailing dari sisi backend: siapa aktornya, bagian mana yang panas, dan apa yang harus tahan restart. Setup Laravel 13 + MySQL + Redis + Sanctum. Struktur .claude/rules sebagai kontrak kerja dengan AI — ini yang bikin AI tidak ngawur. Migration inti: users, drivers, orders. Enum OrderStatus sebagai satu sumber label + warna untuk web & Flutter.
Jumat, 11 September 2026 · 20.00 WIB
Sanctum token untuk 2 persona, middleware role: + driver.context, dan kenapa token driver tidak boleh dipakai customer. Trait ApiResponse supaya bentuk respons seragam. API Resource: kirim int + _formatted, status + label + color, ISO-8601. GET /config sebagai remote-config buat Flutter.
Rabu, 16 September 2026 · 20.00 WIB
FareCalculator (haversine x1,3, bulat 500), POST /orders/estimate, POST /orders. Kenapa tarif adalah snapshot — mengubah pricing_rules tidak boleh mengubah order yang sedang berjalan. OrderStateMachine: satu peta transisi, bukan if bertebaran. Kode order ORD-YYYYMMDD-XXXX dengan lockForUpdate di tabel sequences.
Kamis, 17 September 2026 · 20.00 WIB
Sesi paling berat, dan paling seru. Redis GEO: GEOADD lng, lat (jebakan klasik), GEOSEARCH BYRADIUS, state idle|offered|busy, heartbeat TTL 30 detik. DispatchOrderJob → offer → OfferTimeoutJob → radius melebar bertahap → no_driver. Filter kandidat murah-dulu-mahal-belakangan.
Jumat, 18 September 2026 · 20.00 WIB
Buktikan dulu bug-nya: dua driver menerima order yang sama. Lalu perbaiki dua lapis — Redis SET NX sebagai gerbang cepat, lockForUpdate sebagai kebenaran akhir. Lanjut ke WalletService sebagai satu-satunya penulis saldo, wallet_transactions append-only, balance_before/after sambung-menyambung. OrderSettlementService: tunai vs saldo, idempotent.
Rabu, 23 September 2026 · 20.00 WIB
Kenapa klien tidak boleh polling. Reverb + channel private-order.{id}, private-driver.{id}, private-user.{id}. routes/channels.php sebagai permukaan serang — tanpa otorisasi ketat, siapa pun bisa menguping lokasi penumpang lain. broadcastAs() bertitik supaya Flutter & JS pakai string yang sama. Endpoint terpanas POST /driver/location: tulis Redis, broadcast kalau ada order aktif, selesai — tanpa query DB.
Jumat, 25 September 2026 · 20.00 WIB
Blade + Tailwind 4 + Alpine, tanpa Filament/Livewire. Shell sidebar 236px + status strip, komponen <x-order.strip>, tabel grid baris tetap. Verifikasi driver & topup — kenapa amount klaim tidak pernah ditimpa, karena itu jejak untuk sengketa. Penutup: privasi nomor HP, rate limit, php artisan test + pint sebagai gerbang selesai, deploy + queue worker.