Jostar
Portfolio
Web App · 2026

Kolaborasi — Sewa Jersey

Kolaborasi adalah platform e-commerce untuk menyewa jersey olahraga secara online, hidup di sewajersey.id. Dibangun dengan satu codebase Flutter yang berjalan di Web, Android, dan iOS, dengan backend Firebase + Cloud Functions dan pembayaran online via Xendit. Sistemnya menangani ketersediaan stok berbasis periode sewa, kalkulasi ongkir otomatis dari peta, diskon berjenjang, voucher, hingga pelacakan status pesanan 10 tahap.

Kunjungi Website
Platform
Web · Android · iOS
Tahun
2026
Industri
Olahraga / Rental
Peran
Full-cycle: arsitektur, frontend Flutter, backend Firebase & Cloud Functions

Fitur utama

Katalog & ketersediaan real-time

Pilih tanggal sewa, lalu sistem menyembunyikan produk yang stoknya sudah penuh di periode itu — dihitung dari overlap tanggal pesanan aktif.

Sewa per hari + minimum order

Penyewaan berbasis durasi hari dengan minimum 6 item, pemilihan ukuran (S–4XL), dan stok per varian.

Ongkir otomatis berbasis peta

Pilih alamat lewat Google Maps atau GPS; jarak dihitung otomatis (Haversine) dan ongkir = jarak × tarif per km.

Antar-jemput & jadwal

Opsi ambil sendiri atau antar-jemput, dengan pengecekan tanggal yang diblokir admin secara otomatis.

Diskon berjenjang & voucher

Diskon otomatis berdasarkan lama sewa, plus sistem voucher potongan harga atau gratis ongkir dengan validasi.

Pembayaran Xendit

Pembayaran online via Virtual Account, e-wallet, QRIS, dan kartu kredit — invoice dibuat lewat Cloud Functions.

Pelacakan 10 tahap

Status pesanan dari PENDING hingga COMPLETED, dengan halaman tunggu pembayaran ber-countdown dan polling status.

Panel admin lengkap

Manajemen produk & varian, voucher, diskon tier, jadwal antar, banner, dan pengaturan toko secara real-time.

Sorotan teknis

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

  • Cek ketersediaan stok per varian via overlap rentang tanggal, dengan token anti race-condition saat filter dipanggil berulang.
  • Kalkulasi ongkir dinamis: geocoding alamat → jarak Haversine dari koordinat toko → tarif per km dengan ongkir minimum.
  • Cloud Functions: createXenditInvoice, xenditCallback, dan releaseExpiredOrders untuk auto-release stok pesanan kedaluwarsa.
  • Stock lock per periode (lockStart/lockEnd) mencegah double-booking jersey yang sama di tanggal yang tumpang tindih.
  • Order PENDING otomatis dihapus jika pembuatan invoice gagal — mencegah ghost order menahan stok.
  • Responsive satu codebase: layout dua kolom di desktop, bottom-bar checkout di mobile, dengan caching stok & harga.

Tampilan aplikasi

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

Katalog produk (desktop)
Detail produk & periode sewa
Keranjang sewa
Checkout (mobile)
Alamat & peta pengiriman

Tech stack

FlutterDartFirebase FirestoreCloud FunctionsFirebase StorageFirebase AuthXenditGoogle MapsGeolocatorProvider

Siap mulai project kamu?

Konsultasi awal gratis. Cerita kebutuhanmu, kita bantu cari solusi yang paling masuk akal untuk bisnis kamu.