An innovative full-stack MERN platform designed to connect companies with cab drivers for advertising campaigns. Admins manage ad requests, assign them to available drivers, and track engagement — all in one place.
- ✨ Features
- 🛠 Tech Stack
- 📂 Project Structure
- ⚙️ Installation
- 🚀 Usage
- 🔐 Authentication & Roles
- 📸 Screenshots
- 🤝 Contributing
- 📄 License
- View, approve, reject, and delete ad requests
- Assign approved ads to available cab drivers
- Manage cab driver availability and details
- Submit ad requests with media and details
- Edit or delete pending requests
- View status updates in real time
- Accept assigned ads
- Track assigned campaigns
- Upload verification documents
Frontend
- ⚛️ React.js (Vite)
- 🎨 Tailwind CSS (Responsive UI)
Backend
- 🟢 Node.js + Express.js
- 📦 MongoDB (Mongoose ODM)
Authentication & Security
- 🔑 JWT (Role-based authentication)
- 🛡 bcrypt (Password hashing)
Others
- ☁ Cloudinary (Image/Document Uploads)
- 📡 Axios (API communication)
Environment Variables
- PORT=5001
- MONGO_URI=your_mongodb_uri
- JWT_SECRET=your_secret_key
- CLOUDINARY_CLOUD_NAME=your_cloud_name
- CLOUDINARY_API_KEY=your_api_key
- CLOUDINARY_API_SECRET=your_api_secret
API Endpoints
Authentication Routes
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/company/signup |
Register a new company |
| POST | /api/auth/cab-driver/signup |
Register a new cab driver |
| POST | /api/auth/login |
Login for company or driver |
| GET | /api/auth/google |
Google OAuth login |
| POST | /api/auth/forgot-password |
Send reset email |
| POST | /api/auth/reset-password/:token |
Reset password |
Campaign Routes
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/campaigns |
Create new campaign |
| GET | /api/campaigns |
Get all campaigns |
| PUT | /api/campaigns/:id |
Update a campaign |
| DELETE | /api/campaigns/:id |
Delete a campaign |
| POST | /api/campaigns/assign |
Assign campaign to driver |
Cab Driver Routes
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/cab-driver/upload-docs |
Upload driver documents |
| GET | /api/cab-driver/campaigns |
Get assigned campaigns |
| POST | /api/cab-driver/download-pdf |
Download ad creative PDF |
Run Backend
- cd Backend
- npm run dev
Run Frontend
- cd Frontend
- npm run dev