Features
Customer-facing
Browse fleet with search, filters (city, type, transmission, price), and sorting
Car details page with image gallery, specs, and a live price calculator
Booking with automatic double-booking prevention (date-overlap check) and server-calculated pricing (base rate + optional driver + optional insurance + service fee)
Register / Login (JWT-based)
My Bookings — view booking history and cancel pending/active bookings
Nav bar adapts to login state across all public pages (Sign in → user name → role-based shortcut to Dashboard or My Bookings)
Admin
Bookings — view all bookings, update status (Pending → Active → Completed / Cancelled)
Fleet — add new cars (with image upload to Cloudinary), edit car details, toggle availability, delete cars
Customers — view all registered users, block/unblock accounts
Settings — edit own profile (name/phone), and edit business-wide fees (driver fee/day, insurance fee/day, flat service fee) — these feed directly into every new booking's price calculation, and the customer-facing price estimate always matches because both read from the same source.
Deployment
The frontend and backend are deployed separately — this project is a NestJS server with a real database connection, which doesn't fit a serverless platform like Vercel. Vercel hosts the frontend; Railway hosts the backend and database.
Roadmap (Future Expansion)
Planned next, roughly in priority order:
AI-powered features using NVIDIA Nemotron (chatbot assistant, natural-language search → filters, smart car recommendations)
Real reviews system (submit + display, tied to completed bookings)
Payment gateway integration (Stripe/local gateway sandbox)
Email notifications for booking lifecycle events
Wishlist/favorites for customers
Booking invoice as downloadable PDF
Forgot-password flow
Key Highlights
Browse fleet with search, filters (city, type, transmission, price), and sorting
Car details page with image gallery, specs, and a live price calculator
Booking with automatic double-booking prevention (date-overlap check) and server-calculated pricing (base rate + optional driver + optional insurance + service fee)
Register / Login (JWT-based)
My Bookings — view booking history and cancel pending/active bookings
Bookings — view all bookings, update status (Pending → Active → Completed / Cancelled)
Fleet — add new cars (with image upload to Cloudinary), edit car details, toggle availability, delete cars
Customers — view all registered users, block/unblock accounts