P-023 2022 E-commerce

Sier Sport Arena

Multi-venue sports facility booking platform for PT SIER

Dev LeadFullstack Developer
Multi-venue sports facility booking platform for PT SIER

Context

PT SIER (Surabaya Industrial Estate Rungkut) operates sports facilities as part of its industrial-estate amenities. Before this system, venue booking ran through manual coordination — phone calls and a shared schedule someone had to keep updating by hand. As the estate’s tenant base grew, that process stopped scaling: double-bookings and scheduling conflicts were becoming routine.

Technical challenge

The core difficulty wasn’t any single feature — it was keeping a single source of truth for venue availability consistent across two clients at once: the Laravel + Inertia web app for staff/admin use, and a separate Flutter mobile app for end users booking on the go. Both needed to see the same real-time slot state, and a chatroom feature meant the system also had to handle lower-latency, session-based communication alongside the request/response booking flow.

Architecture & decisions

Laravel served as the single backend for both clients, with Inertia powering the admin-facing web app directly against Laravel views/controllers and a versioned API layer serving the Flutter app. Centralizing booking-slot logic in one backend — rather than letting either client own its own availability rules — was the deliberate trade-off: it added integration work up front but removed an entire class of double-booking bugs that a split-logic approach would have invited.

Contribution

Led the project as Dev Lead and built across the stack: the venue and schedule management backend, the booking flow, and the chatroom feature connecting facility staff and renters.

Result

Facility booking moved from manual, phone-based coordination to a self-service flow across web and mobile, with schedule and booking management consolidated into one system for PT SIER’s operations staff.

Lesson

Building two clients against one backend from day one is more work up front than letting each client evolve its own shortcuts — but for anything involving shared, mutable state like booking slots, that discipline is what actually prevents the conflicts the system was built to solve.