A full-stack MERN web application connecting customers with trusted local service professionals.
🌐 Live Demo: https://local-services-booking-platform-1.onrender.com
LocalPro is a two-sided marketplace that solves a common problem — customers struggle to find reliable local service providers (plumbers, cleaners, electricians, salon workers etc.), and skilled professionals have no digital platform to showcase their work or manage bookings.
LocalPro bridges this gap by providing:
- A searchable directory of local services
- A verified provider onboarding system
- A complete booking lifecycle management system
- An admin panel to manage providers and categories
The platform supports three user roles — Customer, Service Provider, and Admin — each with their own dedicated interface and permissions.
- Browse and search services by keyword, category, city, and area
- View detailed service pages with before/after portfolio images
- Book services with date, address, and notes
- View, track, and cancel bookings by status (pending, confirmed, inProgress, completed, cancelled)
- Register as a professional and submit for admin approval
- Create, update, and delete service listings with cover images
- Upload before/after portfolio images (up to 3 pairs per service)
- Accept, reject, and manage incoming booking requests
- View dashboard with active bookings and service listings
- Update business profile (phone, experience, address)
- Review and approve or reject pending provider applications
- Manage service categories — create, update, and delete
- View all approved and rejected providers
- Dedicated admin dashboard with sidebar navigation
- JWT authentication with httpOnly cookies
- Auth persistence using Zustand persist middleware
- Protected routes based on user role
- Responsive design for mobile and desktop
- Image compression before upload
- Real-time popup notifications for all actions
- Node.js v18+
- MongoDB Atlas account
- Cloudinary account
git clone https://github.com/your-username/local-services-booking-platform.git
cd local-services-booking-platformcd Backend
npm installCreate a .env file inside the Backend folder:
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
JWT_EXPIRY=1d
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
NODE_ENV=development
PORT=8000
CORS_ORIGIN=http://localhost:5173Start the backend:
node index.jsBackend runs at http://localhost:8000
cd Frontend
npm installCreate a .env file inside the Frontend folder:
VITE_API_URL=http://localhost:8000Start the frontend:
npm run devFrontend runs at http://localhost:5173
Dummy admin credentials:
email: admin@gmail.com
password: admin123
| Service | URL |
|---|---|
| 🌐 Frontend | https://local-services-booking-platform-1.onrender.com |
| ⚙️ Backend API | https://local-services-booking-platform-dvga.onrender.com |
| Layer | Technology |
|---|---|
| Frontend | React 18, Zustand, React Router v6, Tailwind CSS, Vite |
| Backend | Node.js, Express.js, MongoDB, Mongoose |
| Auth | JWT + httpOnly Cookies, bcrypt |
| File Storage | Cloudinary |
| Database | MongoDB Atlas |
| Deployment | Render |