BallBooking
BallBooking connects players and racket-sports clubs. Players find courts nearby, book in three steps and split the payment with friends. Clubs get a court-grid scheduler, dynamic pricing and a tournament engine.
Overview
BallBooking is a platform for racket sports (padel, tennis and pickleball) with two sides. Players find clubs near them, book a court in three steps, split the cost with their partners, and post their results. Club owners get a management dashboard that removes double bookings, collects payments automatically and fills off-peak hours.
The player app is available today as an installable web app, with native iOS and Android releases on the way.
Key Features
- Instant Booking: Club discovery by location and sport, then a three-step booking flow.
- Split Payments: The court fee is split four ways. Each player pays their share from a link, and unpaid holds are released automatically.
- Club Management: A drag-and-drop court-grid scheduler, dynamic pricing for peak hours, weekends and members, and revenue reports.
- Tournaments: Single-elimination, round-robin and group-stage brackets, scheduled with no court overlaps.
- Community: Follows, match score cards with player ratings, and an activity feed.
- Multilingual: Spanish, English and Portuguese.
Security & Hardening
- Multi-tenant isolation: each club’s data is isolated at the database level, and automated tests prove that one club cannot read another’s.
- Integrity in the database: double bookings are impossible because the database itself refuses overlapping reservations, not just the app.
- Passwordless sign-in: one-time codes and single sign-on, so there are no passwords to leak or reuse.
- Privacy-preserving contact discovery: finding friends never uploads raw phone numbers, and lookups are rate-limited.
- No card data on our servers: payments are handled by a PCI DSS–compliant payment processor.
How It’s Built
- Test-Driven Development: red → green → refactor throughout, with contract tests for the adapters.
- Hexagonal architecture: a pure domain core shared by the player and admin apps, with infrastructure behind ports.
- Continuous deployment: every merge to the main branch is tested and released automatically.
- Architecture Decision Records: from tenancy and authentication to internationalization and search.