An enterprise-grade, multi-tier car rental platform built with the MERN stack and integrated with an AI-driven machine learning service. This platform features a premium glassmorphic UI, real-time interactive mapping, and a robust role-based access control system.
- User: Browse cars, view AI-recommended pricing, and book vehicles.
- Owner: Manage their own fleet, view earnings, and access the AI Price Advisor to optimize rental rates.
- Super Admin: Global oversight of all users, vehicles, and bookings. Manage platform-wide fleet health and user verification.
- Dynamic Pricing Advisor: Predicts optimal rental rates based on demand levels (Normal, Weekend, Holiday).
- Sentiment Analysis: "Vibe Check" on car reviews using NLP to gauge customer satisfaction.
- Recommendation Engine: Similarity-based suggestions to help users find the perfect car.
- Region-Specific Search: Fully integrated Leaflet.js map centered on the Peshawar region.
- Smart Pins: Color-coded car markers by category (Luxury, SUV, Sedan, etc.) with interactive popup cards.
- Auto-Bounds: Map automatically adjusts to show all available cars in the filtered results.
- Document Upload: Secure upload for CNIC and Driving License (Front/Back) using ImageKit.
- Verification Workflow: Admin review system (Approve/Reject) with rejection reasons.
- Booking Gate: Automated check to ensure only verified drivers can book vehicles.
- Modern Aesthetics: Glassmorphism, sleek dark modes, and high-fidelity animations using
motion/react. - Responsive Design: Fully optimized for all screen sizes from mobile to ultra-wide desktops.
- Localized: Fully localized for Pakistan with Rs. currency and Pakistani city listings.
| Layer | Technologies |
|---|---|
| Frontend | React 19, Vite, Tailwind CSS, Motion/React, Leaflet, Chart.js |
| Backend | Node.js, Express, MongoDB (Mongoose) |
| AI Service | Python, FastAPI, Scikit-learn, Pandas, Uvicorn |
| Storage | ImageKit.io (Media Management) |
Create a .env file in the server directory:
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
IMAGEKIT_PUBLIC_KEY=your_key
IMAGEKIT_PRIVATE_KEY=your_key
IMAGEKIT_URL_ENDPOINT=your_endpoint
ML_SERVICE_URL=http://localhost:8000Create a .env file in the client directory:
VITE_CURRENCY=Rs.
VITE_BASE_URL=http://localhost:3000cd ml-service
python -m uvicorn app.main:app --reload --port 8000cd server
npm run servercd client
npm run devβββ client/ # React frontend (Vite)
β βββ src/
β β βββ components/ # Reusable UI & Map components
β β βββ context/ # Global state (AppContext)
β β βββ pages/ # Dashboard, KYC, Cars, etc.
βββ server/ # Express backend
β βββ configs/ # DB & ImageKit config
β βββ controllers/ # Business logic (KYC, Booking, AI)
β βββ models/ # Mongoose Schemas (User, Car, Booking)
β βββ routes/ # API Endpoints
βββ ml-service/ # Python AI microservice
βββ app/
βββ main.py # Pricing & Sentiment logic
A Super Admin account can be generated using the server/seed.js script.
- Login:
superadmin@carrental.com - Password:
admin1234