Built to order

Hostel Laundry Token and Pickup Scheduling Android App with Payment Tracking

This project builds an Android app that replaces the paper-token chaos of hostel laundry rooms with a proper token queue, scheduled pickup slots and a payment ledger. Students generate a laundry token, pick a pickup slot, track the bag from drop-off to delivery, and pay dues via UPI; the vendor side manages slot capacity, bag statuses and outstanding payments. It demonstrates real client-server mobile development: authentication, cloud database design, push notifications and a payment flow. Suitable for B.E./B.Tech final-year projects in Computer Science, IT and Computer Engineering.

Android Firebase AuthenticationKotlinMaterial Design 3QR code generationFirebase Cloud MessagingAndroid SDK · JetpackCloud FirestoreUPI payment gateway SDKSoftware
Hostel Laundry Token and Pickup Scheduling Android App with Payment Tracking — project thumbnail preview
More project photos (2)

The problem

Hostel laundry runs on paper tokens, a notebook, and memory. Students hand over a bag, get a scribbled slip, and have no idea when the bag will be ready — while the vendor has no clean record of who owes what. Disputes over lost slips, missed pickups and unpaid dues are routine. This project builds a complete Android app that digitizes that whole loop: each bag gets a unique token with a QR code, students book one of the vendor's pickup slots so the counter never crowds, the bag's status moves visibly from Dropped to Washing to Ready to Delivered, and every invoice lands in a payment ledger with paid/pending states. It is a realistic client-server mobile project — Kotlin on the front end, Firebase on the back end, push notifications for slot reminders and status changes, and a UPI payment flow for dues — the kind of system a student can actually demo end-to-end in a viva.

SYSTEM FLOW

4 components 6 connections

Live flow
Drag to explore
100%
userstudent

Books a pickup slot and pays the invoice via UPI.

Follow the working sequence

How it works

  1. The student signs in with phone-number OTP (Firebase Authentication) and selects their hostel block once; the profile stores room number and UPI ID.
  2. On the New Token screen the student picks a service (Wash & Fold, Wash & Iron, Iron Only), enters the bag weight with a stepper, and the app computes the estimated total from the vendor's rate card.
  3. The student chooses a pickup slot from the vendor's published list; the booking decrements that slot's remaining capacity in Cloud Firestore inside a transaction so two students cannot take the last spot.
  4. The app generates the token with a QR code and registers it as Dropped; the vendor's token queue updates in real time.
  5. The vendor moves the token through Washing, Ready and Delivered from the management screens; each transition writes a status event and triggers a Firebase Cloud Messaging push to the student.
  6. On delivery (or earlier), the student pays the invoice through the UPI flow; the ledger marks it paid with the transaction reference, and the vendor's dues summary updates.

Tech stack:

  • Kotlin, Android SDK with Jetpack (Navigation, ViewModel)
  • Material Design 3 components
  • Firebase Authentication (phone OTP)
  • Cloud Firestore (tokens, slots, invoices)
  • Firebase Cloud Messaging (status + reminder pushes)
  • UPI payment flow via payment gateway SDK
  • ZXing-style QR code generation
  • Git
Parameter Value
Platform Android 8.0 (API 26) and above (design target)
App language Kotlin, single-module Gradle project
Authentication Phone-number OTP via Firebase Authentication
Database Cloud Firestore; tokens, slots, invoices, rate card collections
Token format LND-#### with per-token QR code payload
Push notifications Firebase Cloud Messaging for status changes and slot reminders
Payments UPI flow via gateway SDK (test credentials included; production keys configured by buyer)
Slot booking Transactional capacity decrement in Firestore
Vendor screens Token queue, status updates, dues summary

Project features

  • [Token generation with QR code] Every laundry bag gets a unique token (e.g. LND-1048) with a scannable QR; the token carries service type, weight, slot and amount, so the counter can pull up the bag in one scan.
  • [Pickup slot scheduling] The vendor defines slots (day, time window, counter, bag capacity); students book a slot when generating the token, and the app decrements available spots so the counter never overflows.
  • [Live bag status tracking] Each token moves through Dropped, Washing, Ready and Delivered; the student watches the timeline on the home screen and gets a push notification at every transition.
  • [Payment ledger with UPI flow] Invoices per token show service, weight and amount with paid/pending states; dues can be settled through the UPI payment flow and receipts are recorded against the token.
  • [Slot reminders] The app sends a reminder before the booked pickup slot so students do not miss their window, reducing the vendor's unclaimed-bag pile.
  • [Vendor bag management] The vendor side lists all active tokens, filters by status and slot, updates bag status in one tap, and sees which invoices are still unpaid.
  • [Due and defaulter summary] Outstanding amounts are aggregated per student and per hostel block so the vendor can chase dues instead of losing them in a notebook.

What is included

  • Complete Android app source code (student app + vendor management screens)
  • Firebase project setup guide with Firestore schema and security rules
  • QR token generation and scanning implementation
  • UPI payment flow integration code with test credentials
  • Push notification setup (FCM) for status changes and reminders
  • Project report PDF (background, system design, database schema, methodology)
  • PPT presentation for final review
  • Viva Q&A preparation document (Firebase, transactions, FCM, payment flow, QR)

Limitations & prerequisites

  • Payment gateway integration ships with test/sandbox credentials — going live needs the buyer's own merchant account and production keys, which the setup guide covers.
  • Push notifications need Google Play services on the device; they do not arrive on de-Googled or emulator builds without Play services.
  • Slot capacity is enforced by Firestore transactions, so booking needs an internet connection; an offline mode is listed as future scope, not included.
  • The QR payload is a lookup key, not a payment instrument — scanning shows the token; it does not transfer money or prove identity.
  • Rate cards, slot timings and capacity are configured per vendor; the app ships with one sample vendor profile and the buyer adapts it to their hostel.
  • Concurrent booking correctness was designed with transactions, but load behaviour under hundreds of simultaneous bookings is a design expectation, not a measured benchmark.

Frequently Asked Questions

How does the token system replace paper slips?

Each bag gets a unique token like LND-1048 with a QR code, generated in the app at drop-off. The vendor scans the QR to pull up the bag, and every status change and payment is recorded against that token — nothing lives only on paper.

How do pickup slots prevent counter crowding?

The vendor publishes slots with a fixed bag capacity per time window. Students book a slot when generating the token and the app decrements remaining spots transactionally, so the last spot cannot be double-booked.

Is the UPI payment real or simulated?

The payment flow integrates a real gateway SDK with test credentials included, so the full flow — intent, authorization, callback, ledger update — can be demoed. Production keys are the buyer's own and the setup guide explains the switch.

Does the vendor need a separate app?

No — vendor management screens (token queue, status updates, dues summary) ship inside the same app behind a vendor role; the role is assigned in Firestore.

Can it handle multiple hostels or vendors?

The schema supports it: tokens and dues are keyed by hostel block and vendor ID. The demo ships with one sample vendor; adding more is configuration, covered in the report's future scope.

Is this project suitable for a final-year project?

Yes — for Computer Science, IT and Computer Engineering programs. It demonstrates mobile UI development, cloud database design with transactions, authentication, push notifications and a real payment flow. Suitable for B.E./B.Tech final-year projects in Computer Science, IT and Computer Engineering.

Components & software requirements
  • Kotlin, Android SDK with Jetpack (Navigation, ViewModel)
  • Material Design 3 components
  • Firebase Authentication (phone OTP)
  • Cloud Firestore (tokens, slots, invoices)
  • Firebase Cloud Messaging (status + reminder pushes)
  • UPI payment flow via payment gateway SDK
  • ZXing-style QR code generation
  • Git
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 email — the synopsis PDF downloads immediately. We may send occasional project updates; no spam, unsubscribe anytime.

Related guides

All guides

Best 10 Android App Projects for Final Year

Ten Android app projects for final year from real, published projectech.in listings — donation camp finders, job marketplaces, booking apps, expense splitters, gym trackers, visitor management — each with its real problem, how it works, and why students pick it.

Read guide

Best 10 Android Utility App Projects for Daily Life

Clients keep asking for one thing: an app project they can actually install and use every day — not a demo that only runs during the viva. This guide lists 10 real, published Projectech Android projects built exactly for that: medicine reminders, a parking-spot saver, vehicle maintenance logs, PUC reminders, vegetable price tracking, WiFi coverage mapping, offline-first notes, a safety SOS app, a study planner and spaced-repetition flashcards. Every entry links to its live project page with full source, documentation and build details.

Read guide

Controlling Arduino and ESP32 from an Android App: Bluetooth, BLE and WiFi

Most app-to-hardware student builds pick one of three links: Bluetooth Classic via an HC-05 (~10 m, dead-simple serial), BLE on the ESP32 (low power, app talks through GATT characteristics), or WiFi (ESP32 as hotspot or on your LAN, HTTP or MQTT). This guide walks all three, shows the HC-05 AT-mode wiring, a minimal message protocol you can design in ten minutes, Flutter vs native Kotlin tradeoffs, and the Android 12+ BLUETOOTH_CONNECT permission bug that silently breaks most student apps. End with a demo-day checklist and a failure table so your demo survives the classroom.

Read guide
Get a quotation