Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Vehicle Rental System Banner

πŸš— Vehicle Rental System

A Console-Based Vehicle Rental Management System built with Java and Object-Oriented Programming.

The application simulates the workflow of a real-world vehicle rental service with dedicated Admin and Customer modules, vehicle inventory management, maintenance tracking, payment simulation, receipt generation, and email notifications.



πŸ“Œ Project Highlights

Feature Status
Admin Module βœ…
Customer Module βœ…
Vehicle Inventory βœ…
Vehicle Maintenance βœ…
Payment Simulation βœ…
Receipt Generation βœ…
Email Notification βœ…
Object-Oriented Design βœ…

πŸ“– Overview

Vehicle Rental System is a modular Java console application designed to demonstrate practical implementation of Object-Oriented Programming (OOP) concepts through a real-world rental management scenario.

The system allows administrators to manage vehicles, monitor inventory, schedule maintenance, and oversee rental operations, while customers can browse available vehicles, rent them, complete payments, and receive booking confirmations.

The project emphasizes clean class design, modular architecture, and separation of responsibilities, making it an excellent demonstration of Java programming fundamentals applied to a practical use case.


✨ Features

πŸ‘¨β€πŸ’Ό Admin Module

  • Secure Admin Login
  • Add New Vehicles
  • Remove Vehicles
  • View Vehicle Inventory
  • Send Vehicles for Maintenance
  • Complete Maintenance
  • Monitor Vehicle Availability

πŸ‘€ Customer Module

  • Browse Available Cars
  • Browse Available Bikes
  • Browse Available Buses
  • Rent Vehicles
  • Return Vehicles
  • View Rental Information

πŸš— Vehicle Management

  • Vehicle Inventory Management
  • Availability Tracking
  • Maintenance Status
  • Rental Price Management
  • Category-wise Vehicle Listing

πŸ’³ Booking & Payment

  • Rental Payment Simulation
  • Receipt Generation
  • Email Booking Confirmation
  • Booking Summary

πŸš€ System Workflow

Vehicle Rental System Workflow

The following workflow illustrates the overall execution flow of the Vehicle Rental System from user interaction to booking completion.

  1. User launches the application.
  2. Selects either the Admin or Customer module.
  3. Admin manages vehicles, inventory, and maintenance records.
  4. Customer browses available vehicles by category.
  5. Customer selects a vehicle and proceeds with the booking.
  6. Payment is processed through the payment simulation module.
  7. A rental receipt is generated.
  8. Booking confirmation is sent via email.
  9. Vehicle inventory is updated automatically.

πŸ—οΈ System Architecture

Vehicle Rental System Architecture

The project follows a modular object-oriented architecture where each class is responsible for a specific part of the rental process.

Module Responsibility
πŸš— Vehicle Base class representing common vehicle properties and behavior
πŸš™ Car / Bike / Bus Specialized vehicle categories using inheritance
πŸ‘¨β€πŸ’Ό Admin Handles inventory management and maintenance operations
πŸ‘€ Customer Performs browsing, renting, and returning of vehicles
πŸ“¦ VehicleInventory Stores and manages available vehicles
πŸ’³ PaymentGateway Simulates rental payment processing
🧾 ReceiptGenerator Generates booking receipts
πŸ“§ EmailService Sends booking confirmation emails
▢️ Main Controls application flow and user interaction

πŸ› οΈ Technology Stack

Category Technologies
Programming Language Java
Paradigm Object-Oriented Programming (OOP)
Collections ArrayList
IDE Eclipse
Email Service JavaMail API
Version Control Git & GitHub

🧩 OOP Concepts Demonstrated

The project applies core Object-Oriented Programming principles to create a modular and maintainable application.

Concept Implementation
Encapsulation Private fields with controlled access through methods
Inheritance Car, Bike, and Bus extend the Vehicle class
Polymorphism Common vehicle operations implemented through inheritance
Abstraction Shared behavior defined within the Vehicle class
Composition Inventory and payment modules collaborate to complete rentals
Collections Framework Vehicle management using ArrayList

πŸ“‚ Project Structure

VehicleRentalSystem/
β”‚
β”œβ”€β”€ assets/
β”‚   β”œβ”€β”€ banner/
β”‚   β”œβ”€β”€ architecture/
β”‚   β”œβ”€β”€ workflow/
β”‚   └── screenshots/
β”‚
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ activation-1.1.1.jar
β”‚   └── javax.mail-1.6.2.jar
β”‚
β”œβ”€β”€ src/
β”‚   └── com/
β”‚       └── linkcode/
β”‚           └── vehicleRentalSystem/
β”‚               β”œβ”€β”€ Admin.java
β”‚               β”œβ”€β”€ Bike.java
β”‚               β”œβ”€β”€ Bus.java
β”‚               β”œβ”€β”€ Car.java
β”‚               β”œβ”€β”€ Customer.java
β”‚               β”œβ”€β”€ EmailService.java
β”‚               β”œβ”€β”€ Main.java
β”‚               β”œβ”€β”€ PaymentGateway.java
β”‚               β”œβ”€β”€ ReceiptGenerator.java
β”‚               β”œβ”€β”€ Vehicle.java
β”‚               └── VehicleInventory.java
β”‚
β”œβ”€β”€ .classpath
β”œβ”€β”€ .gitignore
β”œβ”€β”€ .project
└── README.md

πŸ“ Directory Overview

Directory / File Purpose
assets/ Banner, workflow diagrams, architecture diagrams, and screenshots
lib/ External Java libraries required for email functionality
src/ Complete application source code
Vehicle.java Base class for all vehicle types
VehicleInventory.java Handles inventory management
PaymentGateway.java Simulates rental payment processing
ReceiptGenerator.java Generates rental receipts
EmailService.java Sends booking confirmation emails
Main.java Application entry point

βš™οΈ Installation

1️⃣ Clone the Repository

git clone https://github.com/TanmayT134/Vehicle-Rental-System.git
cd Vehicle-Rental-System

2️⃣ Import into Eclipse

  1. Open Eclipse IDE.
  2. Select File β†’ Import β†’ Existing Projects into Workspace.
  3. Browse to the cloned project directory.
  4. Finish the import process.

3️⃣ Configure External Libraries

The project uses the JavaMail API for email notifications.

If the libraries are not automatically resolved, ensure the following JAR files are available inside the lib/ directory:

  • activation-1.1.1.jar
  • javax.mail-1.6.2.jar

Add them to the project's build path if required.


4️⃣ Run the Application

Execute:

Main.java

The application launches in the console, allowing users to choose between the Admin and Customer modules.


πŸš€ Usage

Using the Vehicle Rental System is straightforward.

Step 1

Launch the application.


Step 2

Choose one of the available modules.

  • πŸ‘¨β€πŸ’Ό Admin
  • πŸ‘€ Customer

Step 3

Perform the desired operation.

Examples include:

  • Add or remove vehicles
  • View available vehicles
  • Rent a vehicle
  • Return a rented vehicle
  • Manage maintenance
  • Process rental payments

Step 4

The system automatically:

  • Updates vehicle availability
  • Generates a booking receipt
  • Sends an email confirmation (when applicable)

πŸ“Έ Application Screenshots

The following screenshots demonstrate different modules of the Vehicle Rental System.

Main Menu Admin Panel
Customer Panel Vehicle Inventory
Payment Module Generated Receipt

🌟 Key Learning Outcomes

This project provided practical experience with several important Java programming concepts.

  • Object-Oriented Programming
  • Inheritance & Polymorphism
  • Encapsulation & Abstraction
  • Java Collections Framework
  • Modular Project Design
  • Console-Based Application Development
  • Exception Handling
  • JavaMail Integration
  • Git & GitHub Version Control

πŸš€ Future Enhancements

The project is designed with extensibility in mind. Possible future improvements include:

πŸ’Ύ Database Integration

  • MySQL-based data persistence
  • Vehicle records stored in a database
  • Customer account management

πŸ” Authentication

  • Secure Admin Login
  • Customer Registration
  • Password Encryption

πŸ’³ Enhanced Payment System

  • Online payment gateway integration
  • Digital payment receipts
  • Transaction history

πŸ“Š Reports & Analytics

  • Rental history
  • Revenue reports
  • Most rented vehicles
  • Maintenance reports

🌐 Modern Interface

  • Java Swing Desktop GUI
  • JavaFX Interface
  • Web-based version using Spring Boot

🀝 Contributing

Contributions, ideas, and suggestions are welcome.

If you'd like to improve this project:

  1. Fork the repository.
  2. Create a feature branch.
  3. Commit your changes.
  4. Push your branch.
  5. Open a Pull Request.

πŸ™ Acknowledgements

Vehicle Rental System was developed using the following technologies, libraries, and development tools.

Special thanks to the Java open-source community for providing the technologies, libraries, and resources that made this project possible.


πŸ‘¨β€πŸ’» Author

Tanmay Tawade

If you found this project useful, consider giving it a ⭐ on GitHub.


⭐ Support

If you found this project helpful, consider:

  • ⭐ Starring this repository
  • 🍴 Forking the project
  • πŸ’‘ Sharing your feedback or suggestions

Your support encourages continued learning and future improvements.


⭐ If you found this project useful, please consider giving it a Star!

Building reliable software starts with clean architecture, thoughtful design, and continuous learning.

About

Console-based Vehicle Rental System built in Java using Object-Oriented Programming, featuring Admin & Customer modules, vehicle inventory management, maintenance tracking, payment simulation, receipt generation, and email notifications.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages