RentPilot
Modern Car Rental Management System
β‘ In Production: This application is currently being used by my family's car rental company for daily operations. Access to certain features may be limited to protect sensitive business data.
Overview
RentPilot is a comprehensive car rental management solution designed to streamline rental business operations. The system provides an intuitive dashboard for tracking fleet availability, managing bookings, and monitoring revenueβall from a single platform.
Built with modern web technologies, RentPilot offers secure session-based authentication, real-time analytics, automated contract generation, and comprehensive rental history tracking. The responsive design ensures seamless operation across desktop, tablet, and mobile devices.
Key Features
π Real-time Dashboard
Overview of key metrics including monthly revenue, active rentals, and available cars with recent rentals table.
π Fleet Management
Add, update, and track vehicles with image upload support and availability status tracking.
π Rental Processing
Create rental agreements, manage client information, upload documents, and generate contracts automatically.
π Secure Authentication
Session-based authentication with HTTP-only cookies, rate limiting, and Helmet security headers.
π Revenue Analytics
Track monthly revenue, filter rental history, and export detailed reports.
π± Responsive Design
Fully responsive interface that works seamlessly on all devices and screen sizes.
Technology Stack
Frontend
- β’ React 18.3.1 - UI Library
- β’ TypeScript 5.8.3 - Type Safety
- β’ Vite - Build Tool
- β’ TailwindCSS 3.4.1 - Styling
- β’ Zustand - State Management
- β’ React Router - Navigation
- β’ Axios - HTTP Client
- β’ React Toastify - Notifications
Backend
- β’ Express 5.1.0 - Web Framework
- β’ MongoDB 8.1.1 - Database
- β’ Mongoose - ODM
- β’ Joi - Validation
- β’ Winston - Logging
- β’ Express Session - Authentication
- β’ Helmet - Security Headers
- β’ Cloudinary - Image Storage
Screenshots

Dashboard
Real-time analytics and metrics overview

Fleet Management
Manage your vehicle inventory

Rental Form
Create and manage rental agreements

Rental History
Track all past and active rentals
Architecture
RentPilot follows a modern full-stack architecture with clear separation of concerns:
- Frontend Layer: React-based SPA with Zustand for state management, communicating with the backend via RESTful APIs
- Backend Layer: Express server with middleware for authentication, validation (Joi), error handling, and logging (Winston)
- Database Layer: MongoDB for flexible data storage with Mongoose for schema validation and relationships
- Security: Session-based auth with HTTP-only cookies, rate limiting, CORS configuration, and Helmet security headers
Challenges & Solutions
Challenge: Contract Generation
Problem: Need to generate professional rental contracts with client and vehicle details
Solution: Implemented customizable HTML templates with dynamic data injection, allowing for automated contract generation with consistent formatting
Challenge: Session Management
Problem: Secure authentication across multiple devices with persistent sessions
Solution: Implemented session-based auth with HTTP-only secure cookies, 30-day session expiration, and middleware protection on all sensitive routes
Challenge: Real-time Analytics
Problem: Displaying up-to-date metrics without constant database queries
Solution: Optimized API endpoints with efficient aggregation queries and client-side caching using Zustand, reducing server load while maintaining data freshness