Built to order

Gym Slot Booking Android App

IronHouse is an Android app that lets gym members book class slots from their phone instead of the front-desk register: today's schedule shows every class with a live capacity bar, class detail shows the trainer, intensity and equipment, and one tap reserves a spot. A membership card screen holds the member ID and validity, and "My slots" keeps upcoming bookings with free cancellation up to 3 hours before class. It ships with complete Kotlin source, backend schema, documentation and the viva kit. Suitable for B.E./B.Tech final-year projects in Computer Science, IT and mobile application

Android Firebase AuthenticationGitKotlinMaterial Design 3MVVM architectureAndroid StudioFirebase Realtime DBCloud Messaging alertsSoftware
Gym Slot Booking Android App — project thumbnail preview
More project photos (3)

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.

SYSTEM FLOW

4 components 6 connections

Live flow
Drag to explore
100%
userMember

Browses today's schedule, books class slots, manages My Slots and shows the digital membership card.

Follow the working sequence

How it works

  1. The gym admin publishes the weekly class timetable: class, trainer, time, capacity and category.
  2. Members open the app to today's schedule; capacity bars show exactly how full each class is.
  3. Tapping a class shows the trainer, intensity, calorie estimate and equipment; the member books with one tap.
  4. The booking writes to the realtime backend inside a transaction — the capacity bar updates for all members instantly.
  5. If a class is full, the member joins the waitlist and is auto-promoted when someone cancels.
  6. "My slots" lists upcoming bookings; cancelling more than 3 hours ahead is free and immediately frees the spot.
  7. 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.

Get a quotation