Mobile App Development for Swimming Pool/Aquapark
A pool and aquapark are fundamentally different products within same venue type. Pool: lanes, sessions, memberships, section schedule. Aquapark: entrance tickets, attractions with queues, timed wristbands, family packages. Often one facility combines both — app must reflect this.
Load Management and Lane Booking
A pool with lanes is slot distribution task in two dimensions: session time + lane number. Semantically like airplane seat booking, only lanes differ (slow / medium / fast).
Realtime occupancy display: how many people in water now, are lanes free — via WebSocket or Firestore snapshots(). Turnstile systems (access control) give passage events — integration via REST API or MQTT depending on vendor. Popular in Russia: PERCo, Parsec, Sigur — each has own API, different integration.
Electronic Tickets and QR
QR code entry — aquapark standard. QR generation: server-side (qr_flutter on client for display only), signed JWT token with exp (expiration), ticket_id and user_id. Turnstile scans → server validates signature → approves.
For aquaparks: timed RFID wristbands — mobile app here as addition, not replacement. Logic: wristband tied to account, client tops up via app (Apple Pay / Google Pay), vendors scan NFC.
Family Packages and Child Tickets
One adult buys tickets for whole family — standard scenario. At data level: Order contains multiple Ticket, each with age_group (adult / child / infant). Discounts applied server-side (don't trust client price calculation). Child's QR displays in parent's app — child with smartphone not required.
Attractions and Aquapark Queues
Virtual queue — optional but competitive feature. Client "reserves spot" in slide queue via app, gets notification "your turn in 5 minutes". Implementation: server queue (Redis RPUSH/LPOP), FCM notification on approach. Critical: if client didn't show in 3 min — spot expires, next in queue gets push.
Tech Stack
Flutter + Riverpod. Offline access to purchased tickets — mandatory, aquapark often has poor internet. QR stored in Hive with TTL = expiration date. Payments: Stripe / YooKassa with Apple Pay and Google Pay. Firebase Analytics for purchase funnel analysis (where users drop off).
Timeline
MVP (session schedule, booking, QR tickets, memberships): 10–14 weeks. Full aquapark with queues, RFID integration, family packages: 18–26 weeks. Cost calculated after analyzing access control integration requirements.







