The problem
Group fitness runs on capacity: a spin class has 22 bikes, a boxing batch has 16 bags, and when the 23rd person shows up somebody trains angry. Most gyms still manage this on a whiteboard or a WhatsApp broadcast — members can't see whether a class is full until they arrive, trainers don't know their headcount in advance, and no-shows silently burn prime-time slots. IronHouse moves the schedule onto members' phones. The home screen lists today's classes with a capacity bar per class that fills as bookings land; full classes lock with a waitlist option. Tapping a class opens the detail: trainer profile with certification and rating, intensity level, expected calorie burn and the equipment list, plus the plain-English rules (warm-up is mandatory, late entry closed). Booking is one tap; "My slots" holds upcoming reservations with cancellation, and the membership card screen carries the member ID the desk scans. Trainers get a headcount before the session starts. The build is Kotlin with a Firebase backend for realtime capacity — a clean, viva-friendly mobile + BaaS architecture.
Browses today's schedule, books class slots, manages My Slots and shows the digital membership card.
Follow the working sequence
How it works
- The gym admin publishes the weekly class timetable: class, trainer, time, capacity and category.
- Members open the app to today's schedule; capacity bars show exactly how full each class is.
- Tapping a class shows the trainer, intensity, calorie estimate and equipment; the member books with one tap.
- The booking writes to the realtime backend inside a transaction — the capacity bar updates for all members instantly.
- If a class is full, the member joins the waitlist and is auto-promoted when someone cancels.
- "My slots" lists upcoming bookings; cancelling more than 3 hours ahead is free and immediately frees the spot.
- At the gym, the member shows the digital membership card; the desk verifies the booking. No-shows are recorded against the policy.
Tech stack:
- Kotlin (Android app language)
- Android Studio (build & layout tooling)
- Firebase Realtime Database / Firestore (live capacity sync)
- Firebase Authentication (member sign-in)
- Material Design 3 components
- MVVM architecture (ViewModel + StateFlow)
- Firebase Cloud Messaging (class reminders, waitlist alerts)
- Git version control
| Parameter | Value |
|---|---|
| Platform | Android 8.0 (API 26) and above (design target) |
| Booking transaction | Atomic capacity check + reserve |
| Cancellation window | Free up to 3 hours before class (configurable) |
| Waitlist | Auto-promotion on cancellation |
| No-show rule | 2/month pauses prime-time booking 1 week (configurable) |
| Realtime sync | Capacity bars update live for all members |
| Auth | Phone/email sign-in via Firebase Auth |
| Build | Single APK via Android Studio |
Project features
- [Today's class schedule] Every class with time, trainer and category chips (Strength, Cardio, Yoga, Combat) for filtering.
- [Live capacity bars] Each class shows booked-vs-capacity as a bar that fills in real time; full classes lock and offer a waitlist.
- [Class detail screen] Trainer profile (certification, experience, rating), intensity, calorie estimate, level and equipment list.
- [One-tap slot booking] Reserve a spot instantly; the capacity bar updates for everyone via realtime sync.
- [Membership card] Digital card with member ID, plan name and validity for desk verification.
- [My slots] Upcoming bookings with free cancellation up to 3 hours before class; cancellations free the spot immediately.
- [No-show policy engine] Two no-shows in a month pause prime-time booking for a week — enforced in backend rules, not trust.
- [Trainer headcount view] Trainers see expected attendance per session before it starts.
What is included
- Complete Kotlin Android app source code
- Firebase backend schema and security rules (capacity transactions, roles)
- Member app (schedule, detail, booking, membership card, my slots)
- Trainer headcount view
- Waitlist and no-show policy logic
- Project report PDF (problem, architecture, data model, transaction design, testing)
- PPT presentation for final review
- Viva Q&A preparation document (realtime sync, transactions, FCM, MVVM)
Limitations & prerequisites
- Class timetable is published by the gym admin; there is no self-service trainer scheduling portal as shipped.
- Payments for memberships are recorded, not processed — payment gateway integration is an optional extension.
- The no-show policy needs desk check-in marking to record attendance honestly; it trusts the check-in flow.
- Realtime capacity depends on connectivity; the app queues a booking retry when offline and confirms on reconnect.
- One gym location per backend project — multi-branch is future scope.
Frequently Asked Questions
How are overbookings prevented?
The reserve action runs as an atomic backend transaction that re-checks remaining capacity before writing the booking — two members tapping the last spot cannot both succeed.
What happens on the waitlist?
When a booked member cancels, the first waitlisted member is auto-promoted and notified; the capacity bar updates for everyone.
Does it work without internet?
The schedule caches for viewing offline; booking needs connectivity so the capacity transaction is authoritative, and retries are queued automatically.
How does the desk verify a member?
The membership card screen shows the member ID and plan validity; staff match it against the booking list for the class.
Can the gym change the no-show rule?
Yes — the cancellation window and the no-show threshold are backend configuration, not hard-coded.
Is this project suitable for a final-year project?
Yes — for Computer Science, IT and mobile development programs. It demonstrates realtime data sync, transactional booking, push notifications, authentication and a policy engine in one working app. Suitable for B.E./B.Tech final-year projects in Computer Science, IT and mobile application development.
Components & software requirements
- Kotlin (Android app language)
- Android Studio (build & layout tooling)
- Firebase Realtime Database / Firestore (live capacity sync)
- Firebase Authentication (member sign-in)
- Material Design 3 components
- MVVM architecture (ViewModel + StateFlow)
- Firebase Cloud Messaging (class reminders, waitlist alerts)
- Git version control
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.
Download free synopsis (PDF)
Enter your name and WhatsApp number — the synopsis PDF downloads immediately. We may send occasional project updates on WhatsApp; no spam.