Car Rental Booking App — Nearby Providers & Secure Payments
A production-ready car rental android app developed with Java/XML, Firebase Realtime Database, Google Map API, and Razorpay. Customers browse available cars, view model/colour/price, pick start/end dates with pickup/drop-off locations, and send booking requests. Providers review and approve/decline in real time. Nearby providers are shown based on user’s location.
- ✓Two roles: Customer & Provider with secure auth
- ✓Maps-first discovery with distance sorting
- ✓Razorpay payments & real-time status updates
Project Objective
Build a reliable, map-driven car booking app android experience. Customers find the right vehicle quickly, request bookings with complete trip details, pay securely, and get transparent status updates. Providers manage inventory, approve requests, and coordinate handover smoothly.
How It Works
- Discover: User’s GPS locates nearby providers. Map markers + list cards with distance, ratings, and base price.
- Browse Cars: Filter by body type, brand, seats, fuel, transmission; view model, colour, price/day, and photos.
- Request: Select pickup & drop-off locations/dates; add notes (extras, driver preference).
- Approval: Provider reviews and Approves/Declines. Customer gets instant notification.
- Payment: On approval, user pays deposit/total via Razorpay (UPI/cards/wallets).
- Handover & Ride: In-app checklist and Google Maps directions to pickup point. Status transitions to Ongoing, then Completed.
Project Modules
Search, filter, and book.
- Map & list views
- Car specs & pricing
- Booking requests
Manage fleet & requests.
- Approve/Reject
- Pricing per day
- Status updates
Nearby providers & routes.
- Distance sorting
- Radius filter
- Directions CTA
Razorpay checkout.
- UPI/cards/wallets
- Order verification
- Refund/cancel hooks*
Key Features & Benefits
- Maps-first discovery to find the right provider, fast.
- Transparent pricing with daily rates and inclusions.
- Real-time statuses & notifications through the full journey.
- Secure payments with Razorpay and server-side verification.
- Role-based access with Firebase Auth & Security Rules.
Android Integration Sketch (Java/XML)
// PSEUDO-CODE (illustrative only; no Firebase JSON printed) // 1) Nearby Providers on Google Maps void loadProviders(double lat, double lng, double radiusKm){ // fetch /providers (name, rating, lat, lng, basePrice) // compute distance (Haversine) -> filter by radius -> sort by distance/rating // emit to Map (markers) + RecyclerView } // 2) Browse Cars for a Provider LiveData> getCars(String providerId, Filter f){ // query /providers/{id}/cars with filters (brand, bodyType, seats, fuel, transmission) // return list to UI } // 3) Create Booking Request void createRequest(BookingRequest req){ // fields: userId, providerId, carId, pickup/drop latlng, startDate, endDate, notes // write to /requests -> status=pending // provider receives real-time listener } // 4) Provider Approve/Reject void setRequestStatus(String reqId, String status){ // allowed: pending|approved|rejected|ongoing|completed|cancelled // security rules restrict updates to provider or requester accordingly } // 5) Razorpay Checkout void startPayment(Activity ctx, Order order){ Checkout co = new Checkout(); // Razorpay SDK JSONObject opts = new JSONObject(); opts.put("name","Tour2Tech Rentals"); opts.put("currency","INR"); opts.put("amount", order.amountPaise); // paise opts.put("order_id", order.razorpayOrderId); // created via server/Cloud Function JSONObject prefill = new JSONObject(); prefill.put("email", user.email); prefill.put("contact", user.phone); opts.put("prefill", prefill); co.open(ctx, opts); } public void onPaymentSuccess(String razorpayPaymentId){ // verify signature on server // set /orders/{id}: status=PAID, tie to request -> status=approved // send notification to both parties } public void onPaymentError(int code, String reason){ // show error, keep booking in 'approved-awaiting-payment' or revert to 'pending' } // 6) Pickup Navigation void openPickupDirections(double lat, double lng){ Uri uri = Uri.parse("google.navigation:q=" + lat + "," + lng); ctx.startActivity(new Intent(Intent.ACTION_VIEW, uri)); } // 7) Status Progression void markOngoing(String requestId){ /* provider marks after handover */ } void markCompleted(String requestId){ /* provider marks after return */ }
What You Get
Item | Included | Notes |
---|---|---|
Android Source Code (Java/XML) | ✅ | MVVM, modular, commented |
Customer & Provider Roles | ✅ | Auth + role-based UI & rules |
Google Maps Integration | ✅ | Nearby providers, distance sorting, navigation |
Booking Lifecycle | ✅ | Pending → Approved → Ongoing → Completed |
Razorpay Payments | ✅ | UPI/cards/wallets + server verification |
Notifications | ✅ | Status & payment updates |
Demo Video | ✅ | Setup & working walkthrough |
Report & PPT | ✅ | College-format templates |
Support | ✅ | Installation + viva Q&A (1 month) |
FAQs — Car Rental Booking Android App
Why Students Choose Tour2Tech
300+ projects delivered with top reviews & on-time submissions.
From setup to viva—demo videos, docs, and Q&A support.
Add pricing rules, driver option, eKYC upload, or analytics.
Transparent kit + support model with coupon savings.
Project Buying Guide
Discuss Project Requirement
Connect with Yogesh Sir on Call or WhatsApp at +91 9172422245 for a free consultation. Get complete details on development and working.
Create a WhatsApp Group
Add your team to receive weekly updates, project source code, PPTs, and reports.
Advance Payment
Make 45% advance payment; remaining on completion. Invoice shared.
Project Demo & Teaching
Join a live demo with code explanation and recording. Minor changes included.
Installation & Support
We install & set up on your laptop and provide 1 month of support.
What Students Say
Real WhatsApp chats from students after delivery and submission. Add your screenshots below.
Looking for a placement-ready Android project?
Get the Car Rental Booking Android App with code, demo, docs, and support.
WhatsApp Us Now