Mobile · Real-time · Payments
CarWash Booking
Mobile · Real-time · Payments
A full-stack Flutter platform for car-wash businesses — customers book services, track appointments live, manage vehicles, buy memberships, earn loyalty rewards and pay securely, backed by a real-time Django REST + Channels API.
- 12
- Technologies
- 3
- Domains
- 6
- Capabilities
- 1
- Public links
Who it's for
Car-wash and vehicle-service businesses that want bookings, live tracking, memberships, loyalty and payments in one branded app.
Where it fits
Customer phones (Android and iOS via one Flutter codebase) plus an operations dashboard for staff, scheduling and revenue analytics.
The hard part
The problem
Car-wash booking spans the whole lifecycle — choosing a service, live tracking, payment, loyalty and back-office operations — and it all has to feel immediate on a phone.
Architecture overview
A Flutter app (Riverpod, Dio, GoRouter, Hive) talks to a Django REST + Channels backend. Live booking status streams over WebSockets with Google Maps; passwordless OTP login issues JWTs with automatic refresh; Stripe handles payments and subscriptions; Celery/Redis run notifications and scheduled jobs off the request path; FCM delivers push updates.
Service lifecycle
- Book
- Location
- Service
- Payment
- Live status
- Completion
live status streams over WebSockets + Google Maps
How it works
What's actually in it.
- 01Online booking with packages, locations and time-slot scheduling.
- 02Real-time booking tracking over WebSockets + Google Maps.
- 03Passwordless OTP login with JWT and automatic token refresh.
- 04Vehicle management, memberships, loyalty and referral rewards.
- 05Stripe payments and subscription billing; in-app product store.
- 06Celery/Redis background processing for notifications and scheduled jobs; FCM push.
Engineering decisions
Passwordless OTP authentication
For a consumer booking app, a password is friction and a liability. OTP login over JWT with automatic token refresh removes the password entirely while keeping sessions secure.
The trade-off
OTP depends on message delivery and adds a verification step, but it removes password management and lowers the barrier to a first booking.
Technical highlights
- Live service tracking on a map, end to end.
- Memberships, loyalty tiers and referrals built in.
- Admin dashboard for bookings, staff, attendance and analytics.
Tech stack
- Flutter
- Riverpod
- Dio
- Django REST Framework
- Django Channels
- PostgreSQL
- Redis
- Celery
- Stripe
- Firebase Cloud Messaging
- Google Maps
- WebSockets
Want to go deeper on CarWash Booking?
I'm happy to walk through the architecture and the decisions behind it.