WORK//02
Playspace
Book indoor turf, VR, trampoline and PC gaming slots in real time.
- Type
- Cross-platform mobile app
- Platform
- iOS & Android · Flutter
- Role
- Mobile developer: UI, state management and Firebase integration
- Year
- 2025
Overview
Playspace is a cross-platform app for discovering and booking recreational venues: indoor turf for football and cricket, PC gaming hubs, VR experiences and trampoline parks. It is built with Flutter and backed by Firebase.
The goal was to replace phone calls and walk-ins with a booking flow where you can see what's actually free, reserve a slot and get reminded before it starts.
The problem
Small venues usually manage bookings by phone or WhatsApp. Customers can't see availability, and staff spend time on double bookings and no-shows.
What I built
- Venue discovery by category, with photos, details and an interactive map
- Real-time slot availability and pricing on a calendar
- Booking confirmation with a QR code, plus modify and cancel options
- Booking reminders, updates and offers through push notifications
- Profiles with booking history and Firebase sign-in
Architecture & key decisions
Firestore for live availability
Slots live in Cloud Firestore, so every open client sees a booking the moment it's made. That's what makes real-time availability work without polling.
Provider for app state
Provider keeps the signed-in user, the selected venue and the booking in progress in one place, so screens stay simple widgets.
Firebase Cloud Messaging for reminders
Reminders and booking updates go out as push notifications instead of relying on the user to check the app.
Challenges
One codebase, two platforms
Maps, notifications and authentication each need platform-specific setup on iOS and Android. Flutter keeps the UI shared while the native configuration stays small and documented.
Outcome
A working booking flow from discovery to confirmation on both iOS and Android, and practical experience with Flutter, Firebase and real-time data. That experience fed straight into my Flutter iOS internship.