← Back
Rupa · 2024 · unreleased

Bookings and billing for a billiard club

The story

A complete club platform, built and tested, waiting for the club to open.

A members' app, a staff dashboard and the system behind them for a planned billiard club: tables, tournaments, seasons and billing, ready before opening day.

Worth noting

  • · Built to production quality, tested, not yet in use
  • · Members book tables and enter tournaments from their phone
  • · Staff run tables, seasons and billing from one dashboard

The problem

A planned billiard club wanted its whole operation on a platform from the first day: members reserving tables, entering tournaments and following their matches, and staff managing tables, tournaments, billing and league seasons.

Outcome

Built, tested and ready for production. The club has not opened, so the system is not yet in use. It stays in the portfolio as the way we build systems meant to run for years; the decisions behind it still stand even though the launch has not happened.

What we built

Members use a native app on iOS and Android to reserve a table, sign up for a tournament and see their history. Staff work from a dashboard: reservations, tournament brackets from sign-up to final standings, league seasons with their calendars and participants, and how much each table was played and billed. Operators and managers get different access, and one sign-in works across the app and the dashboard. Every important event, from a reservation to a failed login, goes to one searchable log.

What it covers

Table reservations, tournaments with bracket display, league seasons, table-session billing, member accounts, staff roles, native mobile app, staff dashboard, central log.

How we approached it

We treated it as a system that would run for years. Member sign-in across two apps, password reset and role-based access are hard to get right, so we used a proven identity system instead of writing our own. Running a club means answering why a member's reservation did not go through, so every event goes to one searchable log instead of server files. The core was structured for long iteration, with new features arriving across years of operation.

In use

Have a similar problem?

Tell us how your operation works today. We'll tell you what we'd build.

Get in touch