ProjectsApril 8, 2024

Badminton Court Booking System

Badminton Court Booking System
The court owner was running all bookings through LINE. Customers would message to check availability, the owner would block the slot in a notebook, then reply to confirm. Simple in theory — but in practice it created daily problems:
  • Double-bookings: Two customers booked the same court at the same time, neither knew until they showed up
  • No-shows: No reminders meant customers sometimes forgot, leaving courts empty and revenue lost
  • Manual payment tracking: Bank transfers had to be verified one by one, and it was easy to lose track
  • No visibility: No way to see occupancy trends, peak hours, or daily revenue without manual counting
The owner was spending 2–3 hours every day just managing messages and fixing booking conflicts. A web-based booking platform with a customer-facing side and an admin dashboard — designed around how a badminton facility actually operates day to day. Customer side
  • Browse courts and check live availability on a calendar
  • Book a slot, pay online, and receive an automatic booking confirmation
  • Get an automatic reminder before the session
Admin side
  • Full booking calendar with real-time updates
  • Override, reschedule, or cancel any booking with notes
  • Revenue dashboard showing daily, weekly, and monthly totals
  • Customer history and booking records
  • Real-time availability — the calendar updates instantly so there is no way for two customers to book the same slot
  • Online payments — customers pay at booking; no more manual transfer verification or chasing payments
  • Automated reminders — sent before each session without any action needed from the owner; no-shows dropped significantly after launch
  • Admin dashboard — everything visible in one place: upcoming bookings, revenue, and customer history, accessible from any device
  • Next.js — frontend and API routes
  • PostgreSQL — booking data, customer records, payment history
  • Stripe — payment processing
  • Resend — automated email notifications and reminders
  • Ubuntu + Nginx — self-hosted on VPS for full control and no vendor lock-in
Since launch the owner has reclaimed the hours previously spent managing messages and fixing conflicts. Double-bookings are gone. No-shows have dropped. Revenue is now visible in real time rather than requiring manual calculation at the end of each day. The system runs with minimal maintenance, and the owner has asked to expand it with a membership system and court rental packages for regular players.
Interested in a similar system for your badminton court? Book a call or try it free for a month.

Related projects

Match Management System

Match Management System

A management system for organizing match schedules, tracking participants, handling approvals, and keeping operations in one place.