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

RentPilot Dashboard

Dashboard

Real-time analytics and metrics overview

Fleet Management

Fleet Management

Manage your vehicle inventory

Rental Form

Rental Form

Create and manage rental agreements

Rental History

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