Built to order

Water Tanker Booking Android App: Slot Scheduling and Price Comparison

This project builds an Android app for booking water tankers by capacity and delivery slot, with side-by-side price comparison across local suppliers. Customers choose litres, water source, and delivery area, compare per-trip and per-litre quotes, book a slot, and track the assigned tanker from dispatch to delivery, while suppliers manage their fleet, slots, and rates from a dashboard. Suitable for B.E./B.Tech final-year projects in Computer Science, IT and Mobile Application Development.

Android Kotlin · Android StudioJetpack Compose Material 3 interfaceSoftware
Water tanker booking Android app demo on a phone screen showing capacity choices, water source options, and supplier price comparison with per-trip and per-litre rates
More project photos (2)

The problem

Booking a water tanker in most Indian towns still runs on phone calls and saved numbers, and the Water Tanker Booking Android App replaces that phone round with a single booking flow. A household that runs out of water today calls one or two known suppliers, asks whether a tanker is free, haggles over the price, and waits without knowing when the tanker will arrive. In the app, the customer enters the litres needed, the water source, and the delivery area, and sees live quotes from nearby suppliers side by side. Each quote shows the tanker capacity, the per-trip or per-litre price, and the earliest free slot, so the choice is made on price and timing instead of guesswork. Once booked, the app assigns a specific tanker and tracks its delivery status from dispatch to arrival.

The concept is a two-sided booking system: a customer app for ordering and a supplier dashboard for fleet management. At its core, a tanker booking is a capacity-and-route match: the litres a household needs are matched against the tankers free in that area at that hour, and the match is priced by trip or by litre. Suppliers register their tankers with capacity and water source, set per-trip and per-litre rates per delivery area, and open delivery slots on a calendar. Customers browse only the suppliers that serve their area, so every quote shown is actually bookable.

This topic is deliberately tanker-fleet specific, and it differs from a general home-service booking app in what is booked and what is priced. A home-service app matches a customer with a tradesperson and rates the person's work; this app matches litres, water source, and delivery area against a fleet of tankers, compares per-trip and per-litre prices, assigns one numbered tanker with a driver, and tracks delivery status until the water arrives. There are no tradespeople, no service ratings, and no visit scheduling here — the unit of booking is a tanker of a stated capacity carrying a stated source of water to a stated area.

SYSTEM FLOW

5 components 4 connections

Live flow
Drag to explore
100%
userCustomer

Enters litres, water source and delivery area.

Follow the working sequence

How it works

The booking runs as one chain from need to delivery, with no step left to a phone call. The customer opens the app and enters litres needed, water source, and delivery area, and the app filters the supplier fleet to tankers that can serve that area with that capacity. Suppliers' quotes appear side by side with per-trip and per-litre prices and their earliest free slots, and the customer picks one quote and one slot. Booking locks that slot against the supplier's calendar and assigns a specific tanker and driver, so the same slot cannot be sold twice. The supplier confirms dispatch, the tanker status moves from confirmed to dispatched to en route, and the customer watches that status until the tanker arrives. At delivery, the customer confirms the litres received, the bill is settled against the quoted rate, and the completed order stays in history for rebooking.

  1. The customer enters litres needed, water source, and delivery area in the booking screen.
  2. The app filters the supplier fleet to tankers that serve that area with the chosen capacity and source.
  3. Supplier quotes appear side by side, ranked cheapest first, each showing a per-trip total, a per-litre rate, and the earliest free slot.
  4. The customer picks one quote and one delivery slot from the next seven days and four daily time windows.
  5. Booking locks that slot on the supplier's calendar at once, and the double-booking guard removes it from the free list for every other customer.
  6. The supplier confirms the booking, and the app assigns one numbered tanker and one driver to the order.
  7. The order status moves from confirmed to dispatched to en route, and the customer follows it until the tanker arrives and confirms the litres received to close the order.

Builder note from the demo build: the slot grid is a 7-day × 4-slot matrix, giving 28 bookable slots per supplier (demo build count), with booked slots marked by a fixed pattern so the double-booking guard can be tested, and the price list is computed live from per-litre rates, giving 12 sample quotes across 4 suppliers × 3 capacities (demo build count).

Tech stack:

  • Kotlin · Android Studio (native Android app)
  • Jetpack Compose · Material 3 interface
  • Firebase Authentication · phone OTP sign-in
  • Cloud Firestore · bookings · slots · fleet records
  • Firebase Cloud Messaging · booking and dispatch alerts
  • Google Maps SDK · delivery-area selection
  • Room database · offline order-history cache
  • Razorpay SDK · optional UPI payment extension
Parameter Value
Tanker capacities 2,000 L · 5,000 L · 10,000 L (design target)
Water sources Borewell · municipal supply · RO plant water (design target)
Price models Per-trip flat rate and per-litre rate · shown side by side (design target)
Scheduling window 7 days ahead · 4 slots per day · 28 bookable slots per supplier (demo build count)
Delivery status stages 6 stages · booked · confirmed · dispatched · en route · delivered · cancelled (design target)
Supplier quotes in demo 12 quotes · 4 suppliers × 3 capacities (demo build count)
App platform Android · Kotlin · minimum Android 8.0 · API level 26 (design target)
Data storage Cloud Firestore for bookings · Room cache for offline history (design target)
Notifications Firebase Cloud Messaging for booking · dispatch · delivery alerts (design target)
Payment Pay on delivery in base build · UPI payment as optional extension (design target)

Project features

Capacity-first booking, side-by-side price comparison, slot scheduling, and live delivery tracking are the four capabilities that carry this app. Capacity-first booking lets the customer choose 2,000, 5,000, or 10,000 litres and a water source — borewell, municipal supply, or RO plant water — so the tanker that arrives actually matches the household's storage and drinking needs. Price comparison puts every nearby supplier's per-trip and per-litre quote on one screen, ranked cheapest first, so the customer never has to call around for rates. Slot scheduling shows each supplier's free delivery windows for the next seven days and locks the chosen slot at booking, which ends double-booking and vague arrival promises. Live delivery tracking follows the assigned tanker through dispatch, en route, and delivered states, with the driver's contact shown once the tanker is on the road.

  • [Capacity and source selection] The customer picks a tanker capacity of 2,000, 5,000, or 10,000 litres and a water source — borewell, municipal supply, or RO plant water — before any quote is shown, so every price that follows is for water the household can actually use. Implemented in the base app.
  • [Side-by-side price comparison] Every supplier serving the delivery area quotes for the same capacity, and the app lists those quotes cheapest first with both the per-trip total and the per-litre rate, so unlike quantities are never compared by accident. Implemented in the base app.
  • [Slot scheduling with a double-booking guard] The customer picks a day from the next seven days and one of four daily time windows, and booking locks that slot on the supplier's calendar immediately, so the same tanker-slot cannot be sold twice. Implemented in the base app.
  • [Tanker assignment and delivery status] Each confirmed booking names one tanker and one driver, and the order moves through booked, confirmed, dispatched, en route, and delivered stages that the customer can follow in the app. Implemented in the base app.
  • [Supplier fleet dashboard] Suppliers add tankers with capacity and source, set per-trip and per-litre rates per delivery area, open or close slots, and accept or decline incoming bookings from one screen. Implemented in the base app.
  • [Order history and one-tap rebooking] Completed orders stay in the customer's history with supplier, capacity, source, slot, and bill, and any past order can be rebooked with the same details in one tap. Implemented in the base app.
  • [Bill breakdown and pay-on-delivery record] The bill shows litres multiplied by the per-litre rate next to the per-trip quote, states the amount due on delivery, and records the payment once the customer confirms the litres received. Implemented in the base app.
  • [UPI payment] Online payment through a UPI gateway is an optional extension for teams that want prepaid bookings; the base build settles on pay on delivery and records the payment against the quoted rate. Optional extension, not in the base build.

What is included

  • Android app source code in Kotlin with Jetpack Compose, covering the customer booking flow and the supplier dashboard
  • Cloud Firestore data model and security rules for suppliers, fleet, slots, and bookings
  • Working demo build with sample suppliers, fleet, slots, and rates, including 12 sample quotes (demo build count)
  • Price-comparison ranking and slot-locking logic with the double-booking guard
  • Six-stage delivery-status workflow from booked to delivered, with cancellation as an outcome
  • Project report PDF (background, pricing models, slot design, methodology, limitations)
  • PPT presentation for final review
  • Viva Q&A preparation document (pricing models, slot locking, Firestore structure, Android components)

Limitations & prerequisites

  • The demo uses sample suppliers and sample rates, not live supplier data: real suppliers must register, set their own rates, and keep their calendars current before public use.
  • There is no live GPS map tracking in the base build: status moves through stages, and live map tracking is future scope.
  • Water quality is the supplier's responsibility: the app records the source type but does not test potability, and no purity claim is made for any supplier.
  • Slot availability is only as current as suppliers keep their calendars: a stale calendar shows slots that no longer exist.
  • Prices vary by city and delivery area: per-litre and per-trip rates must be set per area, and demo rates must never be quoted as market rates.
  • The app does not handle tanker permits, road compliance, or municipal water-supply regulation, which remain the supplier's responsibility.

Frequently Asked Questions

How is this different from a home-service booking app?

It books tanker fleet capacity, not people. A home-service app matches a customer with a tradesperson and rates the person's work; this app matches litres, water source, and delivery area against a fleet of tankers, compares per-trip and per-litre prices, and tracks one assigned tanker from dispatch to delivery. The two systems share only the word booking: the booked unit, the pricing, and the tracking are all tanker-specific, and nothing here schedules a visit by a person.

How does price comparison work?

Every supplier serving the chosen delivery area quotes for the same capacity, and the app lists those quotes cheapest first with both the per-trip total and the per-litre rate shown, so the customer compares identical quantities instead of unlike quotes. Because the capacity and source are fixed before quoting, a cheaper quote genuinely means a cheaper tanker of the same size and source, and the earliest free slot is shown next to each quote so price and timing are judged together.

How does slot scheduling prevent double-booking?

A slot is locked on the supplier's calendar the moment a booking is confirmed, and the app removes that slot from the free list before showing availability to the next customer, so the same tanker-slot cannot be sold twice for that tanker. The guard is enforced at booking time rather than at display time: even if two customers view the same free slot together, only the first confirmed booking holds it, and the second customer sees it as booked.

What happens after I book?

The booking moves through six visible stages: booked, confirmed, dispatched, en route, delivered, and cancelled if the supplier cannot serve it, and the customer watches the assigned tanker, driver name, and contact from dispatch until the tanker arrives at the delivery address. At delivery the customer confirms the litres received, the bill settles against the quoted rate, and the completed order stays in history for one-tap rebooking.

Which water sources can I choose?

Borewell water, municipal supply, and RO plant water are the three source options in the base app, and the customer picks one before comparing quotes, because source changes both the suitable use and the price, and suppliers only appear for sources they actually supply. A household storing water for washing may accept any source, while drinking-water use points to RO plant water, and the source shown on the bill is the source the tanker actually carries.

Is this project suitable for a final-year project?

Yes, for Computer Science, IT, and mobile-application students, because it combines a real booking workflow, a pricing model with two rate types, a slot-locking rule, and a cloud backend into one demonstrable Android app with screens, data, and rules a reviewer can test end to end. The build touches Android UI, Firestore data modelling, notifications, and a small piece of concurrency reasoning in the slot guard, which gives a reviewer concrete design decisions to discuss.

Components & software requirements
  • Kotlin · Android Studio (native Android app)
  • Jetpack Compose · Material 3 interface
  • Firebase Authentication · phone OTP sign-in
  • Cloud Firestore · bookings · slots · fleet records
  • Firebase Cloud Messaging · booking and dispatch alerts
  • Google Maps SDK · delivery-area selection
  • Room database · offline order-history cache
  • Razorpay SDK · optional UPI payment extension
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