TresWash — Uber for Car Washes.
Inspiration
South Africa has a 32.9% unemployment rate — and over 60% youth unemployment. Yet millions of car owners struggle to find reliable, convenient car washing services. I wanted to build something that solves both problems at once: a two-sided marketplace that creates flexible income for unemployed individuals while giving car owners an on-demand, professional service at their doorstep.
The Uber model works for rides — why not car washes?
What I Built
TresWash is a mobile car wash marketplace connecting car owners with nearby washers in real time. Key features include:
- Interactive map showing available washers within 8km using Google Maps
- Instant booking flow with equipment options and dynamic pricing
- Two-sided dashboards — separate experiences for Car Owners and Washers
- Rating & review system for quality assurance
- Dynamic pricing with a 15–20% platform commission model
How I Built It
I described the entire product to MeDo in plain language — the user roles, the map logic, the booking flow, pricing tiers, and UI style. MeDo scaffolded the full-stack app from that conversation, handling:
- JWT authentication with role-based access
- Google Maps integration with distance-based washer discovery (Haversine formula)
- RESTful API endpoints for bookings, profiles, and ratings
- Responsive dark-theme UI with glass morphism effects
- Demo data with 8 seeded washers across Johannesburg
What would have taken weeks of setup was running in hours.
Challenges
- Pricing logic: Balancing base price + equipment surcharge + platform fee required careful prompt iteration to get the calculation right
- Map UX: Getting the washer markers, radius search, and booking trigger to feel seamless took several MeDo conversation refinements
- Role separation: Ensuring owners and washers see completely different dashboards and flows without overlap
What I Learned
MeDo excels when you think like a product manager — the clearer and more structured your feature descriptions, the better the output. Breaking the app into discrete features (auth → map → booking → pricing → ratings) and building iteratively produced far better results than describing everything at once.
What's Next
- Ozow payment gateway integration (South African EFT)
- React Native mobile app
- Admin dashboard with analytics
- Multi-city expansion beyond Johannesburg
Built With
- axios
- django
- django-channels
- django-rest-framework
- google-maps
- medo
- react
- simple-jwt
- sqlite
- tanstack-query
- typescript
- vite
Log in or sign up for Devpost to join the conversation.