Turf Booking & Management Platform — The Hub
A sports arena in Tangail, Bangladesh: public site live, plus a Django REST + React booking and management platform with bKash and Portpos payments.
Visit the live site1 / 2
The challenge
The Hub is Tangail's only premium sports arena — a floodlit turf ground open 06:00 to midnight, seven days a week. Every slot was booked by phone, which meant double bookings, no record of who owed what, cash handling on match nights, and an operator who had to be reachable to sell anything. Taking payment online in Bangladesh means bKash first — the wallet most players actually use — with a card gateway alongside it, and payment state has to stay consistent with slot state even when a customer abandons a checkout.
The solution
We built a full-stack booking and management platform: a Django REST Framework API over PostgreSQL, with a React frontend on the public site. Customers register with a phone number or email, browse the slot grid across the arena's operating hours, hold a slot and pay through bKash or Portpos; webhook-driven confirmation moves a booking from held to confirmed, so an abandoned checkout releases the slot instead of blocking it. The operator side covers slot and pricing configuration, booking and cancellation management, and payment reconciliation. The public marketing site — facilities, location, operating hours, contact — ships alongside it and is live now, with the online booking flow behind a phased launch while the arena keeps taking reservations by phone.
The impact
The arena has a public front door and a real booking system behind it, instead of a phone number and a notebook. Slot inventory, customer accounts, payments and cancellations live in one PostgreSQL-backed system, and the bKash + Portpos integration lets players pay with the wallet they already have. This is the most backend-heavy build in our portfolio: API design, payment webhooks, and keeping money and inventory consistent.
Technologies used
related case studies
Explore more case studies
Let's talk


