04 / Sports Booking — Case Study

Sports Venue Booking & Matchmaking

A B2B2C sports platform live in Pakistan — consumer Flutter app, Next.js admin dashboard and a versioned NestJS API. Book venues, find matches, pay.

RoleTrainee Software Engineer · Slidey LLC
ScopeBackend, admin panel and Flutter app
TimelineNov 2024 — Feb 2025
StatusLive — App Store & Play Store
ShapeB2B2C · app + admin + API
Sportefy consumer app and admin dashboard
The Brief

Book venues, find matches, pay.

Players book courts, join matches and pay from a consumer app; venue operators and platform staff run everything from an admin dashboard — all on one versioned API that never breaks the mixed-version mobile install base.

Consumer Flutter app — booking, slots, QR check-in & wallet, offline-first with request replay
Realtime matchmaking & match chat — Supabase Realtime + Postgres row-level security
Next.js admin dashboard over a versioned /v1 API, one shared RBAC matrix (5 platform roles + venue-scoped staff)
Payments domain — pluggable gateway adapter (Paymob), wallet / credits ledger, promo codes, PDF booking confirmations
Architecture & Stack

Two clients, one versioned contract.

Clients
Flutter appiOS + Android · BLoC
Next.js 16 adminOps dashboard
Contract
/v1 RESTAdditive-only · OpenAPI gates
Core
NestJS 1148 modules · layered use-cases
Data
Prisma 7 · PostgreSQLOn Supabase
Supabase RealtimeMatch chat · RLS
PaymobPayments
Stack
Mobile
Flutter 3 · BLoC
Admin
Next.jsReactTailwind
Backend
NestJS 11Prisma 7PostgreSQL
Realtime · Pay
Supabase Realtime · RLSPaymob
Key Decisions
01Monorepo — NestJS backend & Next.js admin share one typed contract & RBAC package
02Additive-only /v1 contract + server-driven version gating — zero breaking releases across a mixed-version install base
03OpenAPI drift gates enforced in CI
Walkthrough

Across app and dashboard.

Consumer App · Flutter
Sportefy app home — credits and nearby venues
Home — credits & nearby venues
Sportefy slot booking and match setup
Slot booking & match setup
Sportefy checkout with credit pricing
Checkout — credit pricing
Admin Dashboard · Web
Sportefy manual bookings and reconciliation
Manual bookings & reconciliation
Sportefy availability and slot management
Availability & slot management

Screens captured from the live product — app v1.4.8 on the App Store & Play Store, and the production admin dashboard.

48Domain modules
190+/v1 endpoints
823Flutter tests

Live on the App Store and Play Store with a Next.js ops dashboard behind it — shipping continuously with zero breaking releases across a mixed-version mobile install base.

Next case study

Plexor — AI-Based Surveillance System

→