And it’s not just about trampolines

Melbourne’s premier indoor adventure park.

as Full Stack Developer

Melbourne’s premier, large-scale indoor adventure park in Rowville, Melbourne, offering over 100+ interconnected trampolines, a high-ropes course, climbing walls, and a ninja warrior course.

How it was?

Working on the booking system for Rush HQ turned out to be one of those projects where every piece looks simple on its own - until you start putting them together. The place itself is huge: several halls of different sizes, each with its own capacity, layout, and allowed activities. Some halls can be merged into bigger spaces, but not all combinations make sense (or are even physically possible). Others are reserved only for corporate events, while some are open for everything from team-building sessions to kids' birthday parties.

Rush Trampoline Hall

I was responsible for designing and developing the booking logic - the part that decides who can book what, when, and how. On top of basic scheduling, guests could add extra products and services when making a booking: trampoline socks, cakes, meals, and more, with quantities that influenced the total price. Add to that a flexible discount-coupon system with limits per usage, per person, and even per product - and things got complex quickly.

One of the biggest challenges was optimizing how groups were allocated to halls. The goal was to fill spaces efficiently without causing overbooking or leaving awkward gaps that made later scheduling nearly impossible. I ended up writing an algorithm that tried to “pack” groups into the layout automatically, preferring combinations that left the least unused capacity while respecting all the hall restrictions and time slots.

We also had to make sure cancellations worked smoothly - when someone canceled, their slot needed to become available again immediately, without breaking ongoing group allocations or overlapping schedules.

In the end, the system became both flexible and smart enough to handle the park's real-world complexities - from a small group of kids jumping around to a big corporate team event spanning half the building. It was one of those projects where backend logic turned out to be just as adventurous as the attraction itself.

Achievements

User experience:

The booking interface was redesigned to make date and time selection extremely simple and intuitive. Visitors could immediately see available slots, capacities, and options without getting lost in filters or complex steps. This reduced drop-off rates and made the process feel effortless for first-time users.

Reservations page

Performance improvements:

Booking data was strategically cached to keep response times very short, even during peak hours. This made the overall user flow feel smoother and significantly reduced server load.

Business impact:

With fewer booking errors and better hall utilization (higher occupancy at any given time), the venue’s overall revenue increased. On top of that, upselling additional products and services during the booking flow — like socks, cakes, or meals — led to a noticeable spike in secondary sales.

Code structure and reusability:

We reused existing components wherever possible and created new generic ones when necessary. This made the system modular and easier to maintain, while also reducing development time for future features.

Database optimization:

Large, heavy tables were split into smaller and normalized ones, improving clarity and logic of data organization. For high-demand columns, proper indexing strategies were applied, which noticeably sped up complex queries and improved overall scalability.

This project ended up being a full-stack lesson in how real-world data and user behavior can be balanced through both engineering and UX — and how making booking “simple” for users often means solving something very complex underneath.

Technology Stack

Frontend

HTMLCSSJavaScriptjQueryVue.jsBootstrap 3

Backend

PHP 5.6Yii 1MySQL 5.7

Tools & DevOps

GitBitbucket