Pickle Grounds
Court booking & payments platform
The live booking system for an indoor pickleball facility in Davao City: customers pick hourly court slots, pay by GCash and get confirmed by staff, while the owner runs everything from a full admin panel.

Book a court
Pick your hours
Tap free hours to select
- courts on one live grid
- 5courts on one live grid
- database security checks
- 423database security checks
- double bookings possible
- 0double bookings possible
- customer booking rush load-tested
- 200customer booking rush load-tested
01 — The brief
A new facility needed online booking before opening day: hourly slots across five courts, GCash payments the staff can verify, different prices for prime time, and an admin panel the owner can run without a developer.
02 — What we built
FOR CUSTOMERS
- Tap hourly tiles per court; Google sign-in or an email link
- Pay by GCash QR, upload the screenshot, get notified when confirmed
- My bookings with cancellations, balances and receipts
- Normal and Prime pricing shown before checkout
FOR STAFF
- Live courts × hours dashboard and payment verification queue
- Internal bookings up to a year ahead, recurring by weekday
- Downpayments, cash payments, balances and voids
- Closures, booking window and prices without touching code
UNDER THE HOOD
- Every business rule enforced in SQL, not just the UI
- Role-based access: admin, super admin and a separate fee account
- Rate limiting at the edge and in the database
- Customer exports and marketing consent handled per RA 10173
03 — Boss fights
The hard problems, and how we beat them.
- BOSS 1
No double bookings, ever
A unique index in Postgres makes one person per court-hour a database fact. Tested with 25 simultaneous requests for the same slot: exactly one wins, every time.
Cleared!
- BOSS 2
Deploys that don't interrupt anyone
Every release is backward-compatible across the switch, so a customer mid-checkout or staff mid-verification keeps working while a new version goes live.
Cleared!
- BOSS 3
Opening-day traffic
Availability is served from the CDN, cached per date for 5 seconds, so a crowd checking the same day shares one database query. Load-tested with a 200-customer booking rush.
Cleared!
04 — Project tags
- Industry
- Sports & Recreation
- Services
- Booking & ReservationsPayments IntegrationAdmin DashboardsSecurity & Access ControlPerformance Engineering
- Outcomes
- Launch-Day ReadyZero Double BookingsSelf-Service Booking