Jostar.id
Portfolio
Web App · 2026

Kolaborasi — Jersey Rental

Kolaborasi is an e-commerce platform for renting sports jerseys online, live at sewajersey.id. Built from one Flutter codebase running on Web, Android, and iOS, with a Firebase + Cloud Functions backend and online payments via Xendit. The system handles rental-period-based stock availability, automatic map-based delivery fee calculation, tiered discounts, vouchers, and 10-stage order status tracking.

Visit Website
Platform
Web · Android · iOS
Year
2026
Industry
Sports / Rental
Role
Full-cycle: architecture, Flutter frontend, Firebase & Cloud Functions backend

App screenshots

Click an image to zoom — swipe left/right to browse.

Product catalog (desktop)
Product detail & rental period
Rental cart
Checkout (mobile)
Delivery address & map

Key features

Real-time catalog & availability

Pick rental dates and the system hides products whose stock is fully booked for that period — computed from overlapping active order dates.

Per-day rental + minimum order

Day-based rentals with a 6-item minimum, size selection (S–4XL), and per-variant stock.

Automatic map-based delivery fees

Pick an address via Google Maps or GPS; distance is computed automatically (Haversine) and the fee = distance × per-km rate.

Pickup & delivery scheduling

Self-pickup or delivery options, with automatic checks against admin-blocked dates.

Tiered discounts & vouchers

Automatic discounts based on rental duration, plus a validated voucher system for price cuts or free delivery.

Xendit payments

Online payments via Virtual Account, e-wallets, QRIS, and credit cards — invoices created through Cloud Functions.

10-stage tracking

Order statuses from PENDING to COMPLETED, with a countdown payment-waiting page and status polling.

Full admin panel

Product & variant management, vouchers, discount tiers, delivery schedules, banners, and real-time store settings.

Technical highlights

The advanced parts behind the scenes that make this system run smoothly.

  • Per-variant stock availability via date-range overlap checks, with an anti-race-condition token for repeated filter calls.
  • Dynamic delivery fees: address geocoding → Haversine distance from store coordinates → per-km rate with a minimum fee.
  • Cloud Functions: createXenditInvoice, xenditCallback, and releaseExpiredOrders to auto-release stock from expired orders.
  • Per-period stock locks (lockStart/lockEnd) prevent double-booking the same jersey on overlapping dates.
  • PENDING orders are deleted automatically if invoice creation fails — preventing ghost orders from holding stock.
  • Responsive single codebase: two-column desktop layout, bottom-bar mobile checkout, with stock & price caching.

Tech stack

FlutterDartFirebase FirestoreCloud FunctionsFirebase StorageFirebase AuthXenditGoogle MapsGeolocatorProvider

Want an app like this for your business?

We've built systems like Kolaborasi from scratch all the way to production. Tell us what you need — the initial consultation is free, no strings attached.