Green gradient background
Back to Projects
Sports BookingSaaSMobile AppAutomated AccessOnline PaymentsSubscriptionsAI Assistant

PlayPass.ro: Bookings, Access and Payments for Sports Facilities

An operator dashboard that runs the whole arena - courts, bookings, subscriptions, payments, even the floodlights and the gate - and a mobile app where players find a venue, pick a slot and pay. Two apps, one database - and an AI assistant on every operator screen.

Table of Contents

Summary

From the notebook at the reception and the physical key on the gate to one platform: the operator runs every court from a single dashboard, players book and pay by themselves, and the access to the court follows the booking.

2 apps, 1 database

The operator dashboard and the player mobile app work on the same bookings, payments and courts.

Automated court access

Floodlights and the entrance gate are commanded from the dashboard, with every gate opening counted.

Online + reception payments

Card payments from the app reconcile in the same place as the ones collected at the counter.

Subscriptions & win-back

Recurring plans with expiry and arrears, plus email campaigns built from booking activity.

PlayPass: the operator dashboard's Today screen with the full navigation sidebar, alongside the player mobile app showing the venue search

The Challenge

"Bookings in a notebook, cash at the counter, a physical key for the gate - and no idea which clients stopped coming."

Context

A sports facility typically runs on phone-call bookings, cash and physical keys. The operator cannot see demand per time slot or per court, subscriptions are collected from memory, and there is no record of who actually used the courts.

The Problem

  • Manual operations: every booking takes a phone call, every entry to the court takes someone with a key, every payment takes the counter.
  • Invisible money: no view of revenue per court, demand per time slot, subscription arrears or how much of the income was paid in advance.
  • Silent churn: a client who stops booking simply disappears - there is no list of who went quiet and no way to reach them.

The Goal

One platform where the operator runs the whole arena from a single dashboard - courts, bookings, subscriptions, payments, access and incidents - and players book and pay by themselves from a mobile app, with court access following the booking automatically.

The Solution: Two Apps, One Database

We designed and built two applications that work on the same database: a dashboard for the people who run the arena, and a mobile app for the people who play in it.

PlayPass operator dashboard, Today screen: court cards with floodlight and gate commands, live counters for revenue, access, bookings and reserved hours, and the upcoming reservations list

The Today Screen - Running the Shift

The operator opens the shift and sees the whole arena on one screen: every court with its status, buttons to turn on the floodlights and open the gate remotely, and live counters for today's revenue, gate accesses, bookings and reserved hours. A system-health banner keeps open incidents in sight, and the next reservations line up on the right with their confirmation status.

Live OperationsRemote Gate & LightsSystem Health

A Calendar with Four Zoom Levels

Day, week, month and year views over a court-by-hour grid, with each court coloured by its sport and the bookings generated from subscriptions labelled as such. The operator can block any interval with a reason - maintenance, private event, hardware problem, bad weather - and a blocked slot immediately stops being bookable by players, until it is unblocked from the same dialog.

Day · Week · Month · YearInterval BlockingSubscription Labels
PlayPass operator dashboard, Reservations screen: the bookings table with client, phone, court, interval, source (operator or player) and status, plus day, week, month and year counters

Every Booking, One List, With Its Source

Bookings made by players from the app and bookings taken by the operator at the reception land in the same list, each marked with its source. The list is searchable by client and filterable by status, sport, court and interval, with counters for the day, the week, the month and the year - and payment problems surface directly in the status column. Each booking opens into its own page with a timeline of events, internal notes and the messages sent to the player - and the operator can create bookings for walk-ins, existing clients or new accounts, with weekly repetition, an optional organisation behind the booking and free-of-charge entries tracked separately.

Operator & Player SourcesFilters & SearchPayment StatusWalk-ins & Organisations
PlayPass operator dashboard, Subscriptions screen: monthly recurring revenue, active subscriptions, expiring and arrears counters, and the plan list with payment mode and mark-as-paid buttons

Subscriptions with Visible Recurring Revenue

Recurring plans per client and per court, with the monthly recurring revenue, the active count, upcoming expirations and arrears each on their own card. Every subscription carries its plan, payment mode and paid-until date, and the ones collected at the reception are marked as paid with one click. Two product models are supported: a fixed weekly slot on a given court, and hour packages - a number of entries per month, each worth a set number of minutes, valid on any court of the same type and paid with credits.

Recurring RevenueExpiry & ArrearsMark as PaidHour Packages

Client Profiles the Reception Can Trust

Every client has a profile with a trust score, no-show and cancellation counts, verified phone and email, internal notes and the full booking history. A price category - standard, member, student or company - prepares differentiated pricing, and the list separates accounts created by players from clients added at the reception, and the active from the inactive.

Trust ScorePrice CategoriesNo-Show History

Rescheduling: “I Couldn't Play” Becomes Retention

Players who missed a session send a request from the app; the operator decides and can grant rescheduling tokens - one token equals one hour of play at the court's base rate. Tokens can also be adjusted manually, and every adjustment lands in an audit log.

Request InboxPlay TokensAudit Log
PlayPass operator dashboard, Courts screen: court cards with photo, sport, surface and hourly price, plus totals for courts, active ones and the average price per hour

The Court Catalog

Every court is a card with its own photo, sport, surface and hourly price, switchable between card and list views and filterable by sport. The header keeps the totals in sight: how many courts exist, how many are active or unavailable, and the average price per hour across the arena.

Per-Court PricingPhotos & SurfacesCard / List Views

The Pricing Engine: the Most Specific Rate Wins

Each court carries its own weekly schedule and a base price that named rates can override - every rate defined by duration, day and time interval, so peak evenings, weekends and floodlit hours are priced exactly, and the most specific rate always wins. Subscription plans - fixed slots and hour packages alike - are defined in the same place, per court, and each court's own tab tracks its revenue, bookings and occupancy rate over time.

Day × Interval × DurationPeak RatesOccupancy per Court

Want a web platform like PlayPass.ro?

Reply within 48h. No strings attached.

PlayPass operator dashboard, Payments screen: revenue, successful transactions, average value and advance revenue cards above the monthly revenue evolution chart, with per-court revenue and demand panels below

Payment Analytics the Operator Can Act On

The payments screen turns collections into decisions: revenue evolution by month, successful transactions, the average transaction value and how much of the income was paid in advance. Below, revenue breaks down per court and the most requested time slots rank themselves - so prices and schedules follow the demand instead of guesswork. A needs-attention panel keeps the failed-payment rate, refunds in progress and the breakdown of failure reasons in sight, and the full transaction table - with method, receipt and invoice per row - exports to CSV.

Revenue EvolutionRevenue per CourtDemand by Time SlotCSV Export

Reports and Cash-Register Shifts

Two reports close the money loop, both printable and exportable to CSV: a bookings report with the collected amounts broken down by cash, POS and online - free-of-charge entries and organisations included - and a per-source revenue report that counts revenue at the date of payment, with refunds subtracted from the month they happened in. Cash-register shifts tie it all to the counter: opening balance, cash and card collected, the counted amount and the difference, shift by shift - opened straight from the Today screen's permanent button.

CSV & PrintCash / POS / OnlineShift Reconciliation
PlayPass operator dashboard, Incidents screen: open, critical, escalated and resolved counters above the incident table with type, severity, status, court, age and assignee

Incidents - Nothing Fails Silently

Failed payments, failed gate commands, no-shows - every problem becomes an incident with a type, a severity, a status and a person assigned to it. The counters separate what is open, critical, escalated and resolved this month, so a gate that refused to open at 9 PM is a tracked item the next morning, not a forgotten complaint.

Severity & StatusPer-Person AssignmentGate Command Tracking

Notifications and Operating Rules

The operator's inbox groups events by category - access and hardware, payments, bookings, clients, subscriptions - and a personal matrix decides, per event, whether it arrives in the app, as a push or by email, with pushes paused overnight. Alerts escalate to the manager after 15 minutes without a response, and the venue's rules - the cancellation window, the slot hold during payment, the allowed durations, the minimum notice and how far ahead players can book - are all settings, not conventions. Where the venue also sells through Playtomic, a reminder prompts the operator to block the interval there too.

Event × Channel MatrixEscalationNight Pause
PlayPass operator dashboard, Marketing screen: campaign composer with weekend-offer, win-back and announcement templates, next to audience segments for all, active and inactive clients

Marketing Built on Booking Activity

Email campaigns with ready-made templates - a weekend offer, a win-back message, an announcement - sent to audience segments the platform maintains by itself: all clients with marketing consent, the active ones who booked in the last 30 days, and the inactive ones with no booking in over 60 days. A test send goes to the operator first, and every campaign reports its own return: recipients, bookings generated and revenue attributed. Automations run by themselves - booking reminders by email and SMS at 24 hours and 2 hours before, promo codes sent automatically for empty nearby slots, and lifecycle triggers from the first-booking thank-you to the no-show follow-up - while promo codes come in three types (percentage, fixed amount, fixed hourly price) with usage caps and their own revenue attribution.

Campaign TemplatesAudience SegmentsPromo CodesCampaign ROIAutomations

A Team, Not Just an Owner

A permission matrix over six roles - reception, cashier, manager, full, accountant, owner - across twelve modules, with three levels per cell: access, view-only or none. Sensitive settings stay editable only by the owner, a custom profile picks modules per person, and the shift schedule routes alerts to whoever has the cash register open - or to the whole team if nobody does. Two further modules, academies and competitions, ship with the platform and are activated per venue on a feature flag.

6 Roles × 12 ModulesView-Only LevelShift-Aware Alerts
PlayPass operator dashboard, Courts screen with the AI assistant panel open: the assistant answers the day's bookings as a per-court list of time intervals, then proposes sending offers for the free slots and waits for the operator to confirm

An AI Assistant on Every Screen

A side panel available anywhere in the dashboard answers in natural language from the arena's real data - bookings, free slots per court with their prices - rendered as structured cards in the conversation, with voice input and saved conversations. It proposes contextual actions, from sending offers for the free slots it just listed to blocking an interval, and every action runs only after the operator confirms it - opening the gate requires the owner's confirmation. A daily summary lands in the operator's inbox every morning.

Natural LanguageConfirmed ActionsDaily Summary
PlayPass player app, Home tab: venue search with sport filters, a venue card with photo, address and starting price, and the open matches nearby section
Home - find a venue by sport, open matches nearby
PlayPass player app, time picker: 60, 90 or 120 minutes, one or two courts, a day strip and the list of available intervals each with its price
Booking - duration, day and interval, price up front
PlayPass player app, Support tab: who to contact for access, payment or booking problems, the venue contact per booking, phone and email support and the FAQ list
Support - venue contact per booking, FAQ
PlayPass player app, Account tab: profile with verified phone, saved payment methods and payment history, subscriptions and the player's self-assessed skill level
Account - payments, subscriptions, skill level

The Player Mobile App

Four tabs that cover a player's whole path to the court: Home - search venues by location and sport, with open matches nearby; booking - pick the duration (60, 90 or 120 minutes), one or two courts, the day and the interval, each with its price shown up front; Support - the venue's contact attached to every booking, plus phone, email and an FAQ; Account - saved cards and payment history, subscriptions and a self-assessed skill level from beginner to competitive.

4 TabsPrice Before BookingOpen Matches

Features Delivered

Automated Court Access

Floodlights and the entrance gate commanded from the dashboard, daily access counters, and failed gate commands tracked as incidents.

Online & Reception Payments

Card payments from the app and cash at the counter reconcile in one place, with advance revenue tracked separately.

Subscriptions

Two recurring models - fixed weekly slots and hour packages valid on any court of the same type - with expiry, arrears and payment mode tracked.

Open Matches & Skill Levels

Players see open matches near them and carry a self-assessed skill level, so strangers can fill a court at a compatible level.

Incident Management

Failed payments, gate command failures and no-shows become incidents with severity, status and a person responsible.

Email Marketing & Promo Codes

Weekend-offer and win-back templates, self-maintained audience segments, promo codes with usage caps - and bookings and revenue attributed per campaign.

AI Assistant with Confirmed Actions

Natural-language answers from the arena's data on any screen, contextual actions executed only after operator confirmation, and a daily summary.

Per-Court Pricing Engine

Weekly schedules, a base price and named rates by day, interval and duration - the most specific rate wins, floodlit hours included.

Reports & Cash Reconciliation

Bookings and per-source revenue reports with CSV export and print, plus cash-register shifts reconciled down to the counted difference.

Roles & Permissions

Six roles across twelve modules with access, view-only or none per cell - and the sensitive settings editable only by the owner.

Rescheduling Tokens

Missed-session requests from the app turn into play tokens at the court's base rate, with every adjustment recorded in an audit log.

Notification Matrix & Alerts

Per-event delivery over app, push or email with an overnight pause, plus hardware alerts that escalate to the manager after 15 minutes.

Results

Players serve themselves, end to end

Find the venue, pick the slot, pay by card, get on the court - without a phone call and without someone walking over with a key.

The operator runs the arena from one screen

Courts, gates, floodlights, bookings, subscriptions, payments and incidents - one dashboard instead of a notebook, a cash box and a keychain.

Demand and churn become visible

Revenue per court, the most requested time slots and the clients who went quiet - each a list the operator can act on, including win-back campaigns sent from the same platform.

Technical Spotlight

// Architecture

Operator platform and player app on one shared database

// Web

Operator dashboard covering bookings, subscriptions, payments, incidents and marketing

// Mobile

Player app for finding venues, booking slots, paying and getting support

// Access

Remote floodlight and gate commands, access counters, failed commands tracked as incidents

// Payments

Online card payments plus at-reception collection, subscriptions with expiry and arrears

// AI

A conversational assistant over live arena data, with tool actions gated by operator confirmation

// Platform

Installable PWA, light and dark themes, multi-location reporting and CSV exports throughout

Want a similar project?

Want a web platform like PlayPass.ro?

Reply within 48h. No strings attached.