Skip to content

Sports · club & membership management

Club management software case study: Plugin, a tennis court booking app.

Courts booked by phone, paid for on paper. Plugin is club management software for courts, bookings and members: one tennis court booking web app replacing the call sheet, the pricing spreadsheet and the payments ledger a club had been running side by side.

A club does not need a booking system. It needs to stop three people selling the same court hour.

Plugin court calendar: a week of courts, booked slots and a member’s booking with payment status
Industry
Tennis club · membership & coaching
Platform
CodeIgniter · MySQL · Stripe
Engagement
Discovery → MVP → payment rollout
Scope
Courts, bookings, members, payments

Courts, memberships, coaching & paymentsLive in production

Fewer

Double-booked courts

1

System, not three

Self-serve

Booking and payment

Live

And still evolving

About the client


About the client

The Plugin solution was created for a tennis club that needed a reliable way to manage courts, coaching sessions, tournaments and memberships. As bookings increased and their pricing models grew more intricate, the existing manual and spreadsheet-based processes made it hard to keep operations under control.

Club staff had to juggle daily schedules for multiple courts, coaches and member types. They were also organised through separate channels and accounting systems, making reconciliation painful. The organisation wanted a single web-based product that could centralise bookings, handle flexible pricing, support online card payments and, most of all, free up time for the coaching staff to use on the game.

  • Sports / club & membership management
  • Bookings
  • Payments

Client at a glance

Business type
Tennis club & sports facility
Primary users
Multiple indoor and outdoor courts, coaches and admin staff
Key functions
Bookings, memberships, coaching sessions, tournaments
Previous system
A mix of calendars, phone calls, spreadsheets and paperwork
Our role
UX, architecture, build and ongoing enhancements

The challenge


Before Plugin

The challenge

Court bookings arrived by phone call, WhatsApp message and a paper sheet at reception. Whoever wrote last won, and members found out on arrival.

Membership tiers, peak and off-peak pricing and coaching packages all lived in a spreadsheet that only one person fully understood.

Payments were collected in person or by transfer, so reconciling who had paid for which court hour took most of a morning every week.

Key challenges we uncovered

  • Court bookings spread across phone calls, messages and a paper sheet at reception.
  • Complex pricing rules for peak, off-peak, member and guest rates that only one person understood.
  • Membership and coaching packages tracked separately from the court calendar.
  • Payments collected in person or by transfer, then reconciled by hand every week.
  • No reliable reporting on court utilisation, revenue or membership renewals.
  • Growing member expectation that booking a court should be possible on a phone at 10pm.

These challenges shaped the data model, the pricing engine and the order we built things in.

Goals & success criteria


Project goals & success criteria.

Clear goals up front let us make intentional trade-offs during UX and engineering, and define what "successful launch" actually meant for the club team.

  • Business goals

    • Give the club a single, accurate source of truth for courts, lanes and events.
    • Increase court utilisation and reduce idle time through better visibility and easier booking.
    • Simplify membership management so staff stop chasing and start onboarding.
    • Convert bookings and payments into a self-service action members complete themselves.
  • Product & technical goals

    • Design an intuitive schedule engine for courts that handles peak and off-peak pricing.
    • Implement flexible pricing rules for peak, off-peak, member and guest rates.
    • Integrate with Stripe and PayPal to support secure card and online payments.
    • Build on a maintainable PHP and MySQL foundation that the club can extend without a rewrite.

Success criteria

We agreed a phased rollout: launch courts and bookings first, prove double bookings had genuinely stopped, then add memberships, packages and online payments.

Our solution


Our solution

QalbIT designed and built Plugin as one central hub for the club's daily operations: court bookings, memberships, coaching sessions and payments in a single application.

We started by analysing how the club actually operates in practice: which courts are booked when, how coaches are allocated, how memberships are renewed and where the true admin cost sits. Based on that we designed a schedule engine with configurable pricing rules, a membership model that mirrors the club's real tiers, and a payment flow members can complete on a phone at the door.

Behind the UI we made court, coach, member and package data explicit and related, so reporting and pricing changes became configuration rather than code.

See how it works →

Key solution pillars

  • End-to-end delivery

    Discovery, UX, build, payment integration and support.

  • Modular PHP foundation

    Pricing and rules as configuration, not hard-coded logic.

  • Stripe & PayPal

    Members pay at the point of booking, on any device.

  • Responsive by default

    Courtside phone and reception desktop, same system.

Product features & UX


Key product features & UX highlights.

Everything a club needs to manage courts, members, pricing and payments in one platform.

  1. Court schedule grid

    A colour-coded grid showing courts and coaches, filterable by day, court and resource type.

  2. Booking & rescheduling flows

    Real-time availability checks, automated conflict prevention and clean rescheduling without double allocation.

  3. Memberships & packages

    Membership tiers, prepaid coaching packages and expiry rules, applied automatically at booking time.

  4. Flexible pricing rules

    Peak, off-peak, member and guest rates configured by the club rather than hard-coded by us.

  5. Online payments integration

    Stripe and PayPal support so members pay when they book, and reconciliation happens by itself.

  6. Admin dashboard

    At-a-glance view of today's bookings, coach utilisation, payments taken and outstanding balances.

  7. Reporting foundation

    Utilisation, revenue and membership reports that give management something to plan with.

  8. Responsive UI

    Booking on a phone at the courtside works as well as booking on a desktop at reception.

Architecture & stack


Architecture & technology stack.

The technology stack is deliberately simple, maintainable and aligned with the club's long-term roadmap: powerful enough for today's needs without locking the product into unnecessary complexity.

  • Backend & infrastructure

    • PHP (CodeIgniter) application layer for court and coach domain logic, bookings, memberships and payments.
    • MySQL database with well-defined tables for courts, sessions, members, packages and transactions.
    • Stripe and PayPal integrations for secure card and online payments.
    • Role-based access control and audit trails for staff, coaches and administrators.
  • Frontend & UX

    • Responsive web UI that works on courtside phones and reception desktops alike.
    • Clear scheduling grid with intuitive filtering by court, coach and resource.
    • Reusable components for schedules, availability, booking states and forms.
    • Progressive enhancement to keep core flows usable even on slower connections.
  • CodeIgniter
  • PHP
  • MySQL
  • Bootstrap
  • jQuery
  • Stripe
  • PayPal
  • REST API

We chose a stack the club can hire for locally and extend without us: no bespoke framework, no proprietary runtime, nothing that needs a specialist to keep running.

Delivery process & collaboration


Delivery process & collaboration.

We used a transparent, iterative delivery model with enough structure to keep momentum, and enough flexibility to adjust as we learnt from real usage.

  1. 01

    Discovery & operations mapping

    Workshops with club management and front-desk staff to map how the club actually runs, before we designed anything.

    2 weeks
  2. 02

    UX flows & interface design

    Design of the court schedule grid, booking flows, membership screens and admin dashboards using the QalbIT design system.

    3 weeks
  3. 03

    MVP implementation

    Core court, booking and membership functionality built and hardened, with demos every two weeks.

    8 weeks
  4. 04

    Payment integration & pilot

    Stripe and PayPal integrated, then a pilot on a subset of courts and members before a wider club-wide rollout.

    3 weeks
  5. 05

    Rollout & continuous improvement

    Full rollout to all courts and membership types, plus ongoing enhancements to reporting and pricing rules.

    Ongoing

Engagement model used

A fixed-scope MVP covering courts and bookings, then a lighter ongoing engagement for payments, memberships and reporting once the club had validated the core.

  • Fixed-scope MVPWritten scope, milestone billing
  • Pilot before rolloutA subset of courts and members first
  • Ongoing iterationPricing rules and reporting after launch

Results & impact


Results & impact.

From manual court chaos to a structured, data-informed tennis club management platform.

  • FewerDouble-booked courts
  • Self-serveBooking and payment
  • LiveAnd still evolving

Story behind the numbers

By moving from a scattered set of manual processes to a purpose-built web application, the club gained control over courts and memberships. Staff now spend time on the club and its members rather than reconciling ledgers, and management finally has utilisation data to plan the season with.

Client perspective

"I've work with this company on many web projects and mobile project and always they were very helpful and understand fast what we need and they develop what we ask in a good delay and price. I recommend this company for any project you have"

Managing Director, also the client behind the Snappy Stats case study · François C.

Start here


A club management platform built around your courts, members and pricing.

Tell us how your club runs today and where it breaks. You get a written scope, an architecture recommendation and a price range within 48 hours.

  • A written scope with the exclusions listed
  • Pricing rules you configure, not we hard-code
  • The name of the engineer who would lead it
  • Free, and yours to keep either way

Get your free estimate

Three quick questions: scope, approach and a price range back within 48 hours. No sales call required first.

What do you need built?
When do you want to start?
Where should we send the estimate?

Answer all three questions above, then send.

NDA-friendly · IP yours from day one

Next step


Still taking bookings by phone?

Send two lines about how your club runs. You get a written scope, timeline and price range within 48 hours, free, and yours either way.

Keep exploring