WashQueue is a full-stack car wash booking and operations platform that connects customers, wash stations, managers, owners, and administrators in a single workflow. Customers can book services, make payments, track queue progress, and rate their experience. Station managers and owners can manage operations, monitoring bookings, settlements, customer issues, and business performance from a centralized dashboard.
This project is structured as a monorepo with a React frontend and a Node.js backend, designed for modern service businesses that need both customer-facing convenience and operational control.
WashQueue is designed for a vehicle wash business model where:
- Customers book car wash services online or through a web interface.
- Stations manage service slots, queue flow, and operational status.
- Managers supervise station performance and customer handling.
- Owners monitor revenue, payouts, settlement summaries, and platform performance.
- Administrators oversee platform-wide business activity, issue resolution, and governance.
The platform supports a real service business workflow instead of a simple demo app:
- service booking and scheduling
- queue status tracking and station coordination
- payment collection and payout logic
- customer support and issue management
- review and rating flow
- analytics and reporting
- AI-enabled knowledge and assistant features
- Book a wash service for a preferred station and time slot
- View service details, pricing, and queue status
- Receive notifications about booking updates
- Complete payment via integrated payment workflows
- Check in and manage bookings through the app
- Submit reviews and feedback after service completion
- Manage station availability and service flow
- Monitor bookings in the queue
- Track customer arrival, service checkpoints, and completion
- Handle station-specific operational actions
- Owner/manager settlement reporting
- Wallet and payout tracking
- Revenue and commission insights
- Payment event handling and settlement logic
- User and role management
- Issue and dispute handling
- Platform operations oversight
- Reporting and business monitoring
- Knowledge document support
- AI-assisted service and business workflows
- vector search and embedding-based retrieval support
- smart operational information access
| Layer | Technology |
|---|---|
| Client Framework | React 19 |
| Build Tool | Vite |
| Language | TypeScript |
| Routing | React Router |
| State Management | Zustand |
| Styling | Tailwind CSS via Vite plugin |
| UI | Custom component patterns + Lucide icons |
| Real-time | Socket.IO client |
| Maps | MapLibre GL |
| Charts | Recharts |
| Auth | Google OAuth |
| Notifications | Sonner |
| Validation | Zod |
| Layer | Technology |
|---|---|
| Runtime | Node.js |
| Framework | Express 5 |
| Language | TypeScript |
| Database | MongoDB with Mongoose |
| Cache / Session Store | Redis / Valkey |
| Real-time | Socket.IO |
| Search / AI | Qdrant |
| Security | JWT, Argon2 |
| File Upload | Multer |
| Cloud Storage | Cloudinary |
| Payments | Razorpay |
| Nodemailer | |
| Scheduling | node-cron |
| Logging | Pino |
| PDF generation | PDFKit |
- Qdrant vector database
- LangChain text splitters
- Embedding-based document retrieval
- Ollama-compatible LLM integration
- Knowledge docs for business operations and AI-driven interactions
- pnpm workspaces
- Docker Compose
- Vitest
- ESLint
- Prettier
- TypeScript path aliases
- Husky git hooks
washqueue/
├── README.md
├── docker-compose.yml
├── package.json
├── pnpm-workspace.yaml
├── start.sh
├── simulate_payout.sh
├── client/
│ ├── package.json
│ ├── src/
│ ├── public/
│ └── ...
├── server/
│ ├── package.json
│ ├── src/
│ ├── .env.example
│ └── ...
└── ...
The frontend is organized around product features such as:
- auth
- booking
- queue
- manager
- owner
- admin
- review
- notification
- settlement
- wallet
- users
- vehicle
- station
- AI features
The backend is split into modular business domains under src/modules and supporting infrastructure under src/infrastructure and src/configs.
Main server concerns include:
- application bootstrapping
- authentication and authorization
- bookings and service scheduling
- queue management
- review and feedback
- wallet, settlement, and payment processing
- notifications and socket events
- AI and knowledge integration
- issue handling and support
- user and role management
The application is designed around multiple user roles:
- Customer
- Station staff / manager
- Business owner
- Administrator
This role-based model enables different flows and dashboards while sharing the same core platform.
The application follows a modular service-style architecture:
- Frontend: user-focused UI and interactions
- Backend API: business operations and domain logic
- Database: persistent business records
- Redis / Valkey: caching and fast operational access
- Qdrant: vector storage for AI/knowledge workflows
- Socket layer: live operational updates and notifications
- Docker: local environment setup for core supporting services
Make sure you have the following installed:
- Node.js 24.20+
- pnpm 11+
- Docker and Docker Compose
- Git
From the project root:
pnpm installCopy the example environment file for the backend:
cp server/.env.example server/.envThen update the values according to your local setup, including:
- MongoDB connection string
- JWT secrets
- Redis host and port
- SMTP configuration for email notifications
- Google OAuth client ID
- Cloudinary credentials
- Razorpay credentials
- client URL
This project uses Docker Compose for supporting infrastructure:
docker compose up -dThis includes services such as:
- Valkey / Redis
- Qdrant
Run both frontend and backend in development mode:
pnpm devThis runs the workspace in parallel using the root script.
You can also start them separately:
cd server && pnpm dev
cd client && pnpm dev --hostpnpm buildpnpm typecheckpnpm testpnpm lint
pnpm formatThe repository includes a Docker Compose setup for the backend, Valkey, and Qdrant. The backend
expects MongoDB to be available separately; set MONGODB_URI to an address reachable from the
container (for example, a MongoDB Atlas connection string).
Create the server environment file and fill in the required credentials and connection values:
cp server/.env.example server/.envThen start the services:
docker compose up --buildCompose configures the backend to reach Valkey and Qdrant over the internal Docker network. By
default, Ollama is expected to be running on the Docker host at port 11434; set
OLLAMA_BASE_URL in the shell or the root Compose .env file to use another address. The
container exposes the following host ports:
- backend on port 3000
- Valkey on port 6379
- Qdrant on ports 6333 and 6334
The backend environment file is defined in server/.env.example and includes the following categories:
- server runtime and logging
- MongoDB connection
- JWT secrets and expiration
- Redis and SMTP settings
- Google OAuth configuration
- Cloudinary settings
- Razorpay values
- client URL and platform commission config
- AI embedding and LLM configuration
- Qdrant URL
For a full list, see the example file in:
server/.env.example
The project uses:
- strict TypeScript enforcement
- modular backend architecture
- code-splitting for frontend features
- reusable store and API patterns
- centralized configuration and environment handling
- test coverage support via Vitest
- linting and formatting automation
Possible next steps for this platform include:
- advanced analytics dashboards
- admin audit trails
- more automated payout reconciliation
- stronger customer lifecycle flows
- expanded AI assistant capabilities
- more detailed station workforce management
- mobile app support
This project currently uses the ISC license as defined at the package root.
WashQueue is a complete business application for a modern car wash service platform. It combines user booking, queue operations, finance, settlements, notifications, issue management, and AI-powered business workflows into a single scalable solution.
It is designed to serve the operational realities of a service business while providing a strong customer experience and clear business visibility for managers and owners.