Skip to content
View case studies
Sports & Community2024India

Tennis Khelo

Court bookings, ladders and coaching for a city's tennis scene.

Role
Full Stack Product Engineer
Industry
Sports & Community
Client
Product Company
Market
India
Duration
5 months
Status
Live
Overview

What it is

A platform that connects players, courts and coaches in one place, slot booking, skill-matched opponents, competitive ladders and academy management, all running off a single scheduling core.

Problem

What was going wrong

Court bookings ran through phone calls and a WhatsApp group. Double bookings were routine, coaches had no way to publish availability, and casual players had nobody at their level to play against.

  • Remove double bookings entirely
  • Let coaches and academies manage their own schedules
  • Match players by skill so casual games are worth playing
  • Take payments online instead of at the gate
Solution

How it was built

One scheduling engine backs every booking type (court, coaching slot and ladder fixture), so availability is computed once and cannot disagree between surfaces. Slot reservations take a short-lived Redis lock while payment completes, then commit to MySQL. Razorpay handles payment, and a rating system seeds ladder matchmaking.

Challenges

The parts that were hard

01

Two people tapping the same 6pm slot

WhyPeak-hour slots get several simultaneous requests, and an optimistic check-then-write leaves a window where both requests pass the check.

FixA Redis lock is taken on the slot key before payment starts and released on success, failure or timeout, so exactly one request can ever reach the write.

02

Cancellations that had to be fair to both sides

WhyRefund rules differed by how close to the slot the cancellation happened, and getting it wrong meant either angry players or angry court owners.

FixRefund policy became a declarative rule set evaluated at cancellation time, so owners could change their own windows without a deployment.

Outcome

What changed

  • Booking conflicts eliminated by moving reservations behind a single locked write path
  • Coaches gained self-service scheduling instead of routing every request through the venue
  • Court owners got utilisation visibility they previously had no way to measure
Takeaway

What I'd carry forward

Scheduling looks like CRUD until two people want the same minute. Deciding early that availability has exactly one owner saved every feature that came after it.

Start here

Have a product idea, or one that stalled?

Tell me what you’re building and who it’s for. If I’m the wrong fit I’ll say so on the first call and point you somewhere better.

Based in Jaipur, India (GMT+5:30). Replies within one business day.