This project is a full-stack car rental platform that enables three types of users to interact with the system:
Car Owners – Can list their cars for rent
Renters – Can browse and rent available cars
Admins – Approve/reject car listings and manage the platform
Key Features
1. User Authentication
Registration & Login with role-based access control (Admin/Owner/Renter)
Protected routes using authentication middleware
Session management with token-based auth (JWT)
2. Car Management
Owners can post cars for rent (pending admin approval)
Admins approve/reject car listings with validation:
Duplicate car check (same make/model)
Location availability validation
Renters can browse available cars
3. Rental Process
Multi-step rental flow:
Car selection → Authentication → Renter info → Confirmation
Date selection with automatic price calculation
Email notifications for booking confirmations
4. Admin Dashboard
View all pending car submissions
Approve/reject with rejection reasons
Audit trail of all approvals/rejections