Case study

Turf and coaching bookings for Malaysian sports venues

A booking platform for turfs, classes and coaches, with a player-matching feature that holds partial bookings while a group fills up.

  • Flutter
  • Node.js
  • Express
  • MongoDB
  • React
Client
PlayMatch
Industry
Sports & leisure
Location
Malaysia
Year
2025
Turf and coaching bookings for Malaysian sports venues
01

The challenge

Turf bookings were handled over WhatsApp and a paper diary, which meant double bookings, no-shows and no record of who had paid. Separately, individual players who wanted a game could not find one — a five-a-side pitch sat empty because no single person wanted to pay for the whole slot.

02

What we built

We built a platform covering turf, class and coach bookings across a Flutter app for players, a React admin for venues, and a Node and MongoDB backend. The player-matching feature lets someone book a partial slot, which is then held with a countdown while other players join; if the group does not fill in time the hold releases and the payment is reversed. Wallet balances, calendar integration and WhatsApp confirmations round it out.

03

What changed

Venues have a single record of bookings and payments, and slots that would previously have gone unsold can now be filled by players who do not already have a full group.

How it was built

The stack we chose and why it suited this problem rather than a default.

  • Flutter
  • Node.js
  • Express
  • MongoDB
  • React

More work

Different industries, same engineering standard.

Have a project like this one?

Send us the problem and we will come back within one working day with an honest read on scope, approach and cost — including whether we are the right team for it.