0% found this document useful (0 votes)
23 views44 pages

Efficient Car Rental System Development

The document outlines the development of an automated Car Rental System aimed at improving efficiency and customer satisfaction by replacing outdated manual processes. It details the project's background, objectives, and methodology, including the use of the Waterfall Model for development and the incorporation of modern web technologies. The system is designed to streamline operations, enhance user experience, and address common issues faced by both customers and rental businesses.

Uploaded by

Dhiraj Jha
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views44 pages

Efficient Car Rental System Development

The document outlines the development of an automated Car Rental System aimed at improving efficiency and customer satisfaction by replacing outdated manual processes. It details the project's background, objectives, and methodology, including the use of the Waterfall Model for development and the incorporation of modern web technologies. The system is designed to streamline operations, enhance user experience, and address common issues faced by both customers and rental businesses.

Uploaded by

Dhiraj Jha
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

CHAPTER I INTRODUCTION

1.1. Background of the Project


In today's fast-paced world, renting a car has become an essential service for
individuals and businesses. The car rental services have increased, driven by the need
for flexible and cost-effective transportation. Whether it is for business professionals
attending out of town events, families planning leisure trips or individuals requiring
temporary transportation during emergencies, car rental services have proven to be a
reliable and convenient alternative to owning a vehicle.

However, despite the growing demand, many car rental businesses still continue to
rely on outdated manual processes that are prone to human errors, inefficiencies and
delays. Such business practices not only hinder the operational efficiency but also
negatively impact the customer experience.

To tackle these issues, this project focuses on creating a simple and efficient Car
Rental System that automates the entire rental process, from car booking to return.
This system will replace the outdated manual methods with an easy-to-use digital
solution that ensures efficiency, accuracy and customer satisfaction by providing a
smooth and hassle-free rental experience.

1.2. Problem Statement


Managing a car rental business manually can cause a lot of problems for both
customers and business owners. Such problems include double bookings, lost or
inaccurate records, and delays in service. These issues can leave the customers
frustrated and harm the reputation of the business.

Customers usually find renting a car to be a hassle. They often face difficulties in
finding available cars, comparing prices, and making bookings quickly because the
information they need isn’t always accessible.

At the same time, it can be difficult to keep track of which cars are rented, which are
available, and which need maintenance for the business. Managing vehicle usage and
handling customer records take a lot of time and can lead to errors.

To solve these problems, there is a need for an automated Car Rental System that
simplifies the overall process and improves service quality. This system would
simplify the entire process, from booking to car return, and ensure smoother
operations. By automating key tasks, businesses can improve accuracy, save time, and
provide better service to customers, leading to higher satisfaction and increased
profits.

1.3. Objectives
1. To develop a user-friendly Car Rental System that streamlines the booking process
for customers.

1
2. To automate the management of records related to vehicles, bookings, and
customer details.
3. To provide real-time information on car availability and pricing.

1.4 Review of Related Work and Literature


Car rental businesses traditionally rely on manual processes, which can be
time-consuming and inefficient. The development of an online car rental system aims
to streamline operations, improve customer convenience, and enhance business
efficiency. According to (Ogbiti & Aaron, 2024) a web-based car rental management
system automates reservations, payment processing, and fleet management, reducing
human errors and improving service delivery. The study highlights how modern web
technologies such as PHP, JavaScript, and Microsoft SQL Server enable efficient data
handling and user-friendly interfaces for both administrators and customers.

Similarly, (Thakur, 2021) discusses the advantages of digitizing the car rental process,
allowing customers to book vehicles online without visiting rental offices. The system
is designed to handle customer information, reservation details, and payments,
ensuring smooth transactions. The study emphasizes the importance of a
well-structured database and a secure system for managing car rentals effectively.

Another study by (Firdaus Che Abdul Rani et al., 2023) explores the role of vehicle
agency rental online systems in enhancing business efficiency and customer
experience. The research points out that online booking platforms reduce staff
workload, increase booking rates, and provide customers with a seamless reservation
process. The authors also highlight potential challenges, such as security risks and
system downtimes, which must be addressed for optimal performance.

Overall, the reviewed studies emphasize the growing need for digital transformation
in the car rental industry. By implementing web-based solutions, businesses can
enhance service efficiency, reduce operational challenges, and improve customer
satisfaction. However, challenges such as cybersecurity risks and system reliability
must be carefully managed to ensure smooth operations.

1.5. Development Methodology


The Car Rental System will be developed using the Waterfall Model, which follows a
structured, step-by-step process. Each phase is completed fully before moving on to
the next. The steps are as follows:

a) Requirement Gathering
1. Identify and document the needs of customers and the business.
2. Ensure all requirements are clear to avoid misunderstandings later.

b) System Design
1. Plan how the system will function, including the user interface and database
structure.

2
2. Create a simple outline of the system’s components.
c) Development
1. Build the system using technologies like PHP, MySQL, HTML, and JavaScript.
2. Develop the user-facing (front-end) and business management (back-end) parts of
the system.

d) Testing
1. Test the system thoroughly to find and fix any issues.
2. Verify that all components work individually and together as
expected.
e) User Acceptance
1. Gather feedback from users to identify any adjustments needed before the system
is deployed.
2. Make necessary modifications based on the feedback

f) Deployment
1. Make the system available for use.
2. Train users and ensure the system operates effectively.

This straightforward and systematic approach ensures a smooth development process


and delivers a reliable, efficient system.

1.6 Scope and Limitations


The features of the Online Car Rental System includes developing a web-based
platform where prospective customers can view different types of cars, book them,
and manage their reservations. In addition, the system offers an admin’s control panel
for administering the car catalog, customer files, and bookings.

The project combines several techniques such as local deployment using XAMPP,
adoption of MySQL database and development using PHP, HTML, and CSS. It also
works on automating the rental operations, minimizing the paperwork needed, and
improving the overall efficiency of the system.

Nonetheless, these improvements come with limitations like running only on a local
server, offline mode, no integrated payments, and no real-time tracking of cars. Future
improvements could include mobile compatibility and online hosting.

1.7 Report Organization


Introduction: The problem addressed by the project, objectives and methodology
used for the development of the Car Rental System is discussed.

System Development Process: The system development process for a Car Rental
System follows three core phases, which are, Analysis, Design, and Implementation.

In the Analysis phase, requirements were gathered through stakeholder interviews,


including rental agents, customers, to identify key functionalities such as vehicle

3
booking, fleet management, and payment processing. Feasibility studies assessed
technical, operational, and economic viability, while object-oriented models (UML
use case and activity diagrams) were created to define system behavior and
workflows.

The Design phase focused on creating user-friendly interfaces and an optimized


relational database. UML class and sequence diagrams were employed to map system
interactions, ensuring seamless integration between modules like online booking and
billing.

During Implementation, the system was developed using modern frameworks. The
Car Rental System was modularized into components such as reservation
management, followed by rigorous testing to validate performance, security, and
compliance with industry standards. The final system was deployed with
documentation for end-users to ensure smooth adoption.

This structured approach ensures a scalable, efficient, and secure Car Rental System,
enhancing rental operations and customer satisfaction.

Conclusion and Recommendation: The Car Rental System optimizes rental


processes, elevates customer experience, and enhances fleet management. To fully
leverage its advantages, rental agencies should implement adaptable cloud-based
platforms, invest in comprehensive staff training, and consistently update the system
for security and feature enhancements. Future advancements may incorporate
AI-powered vehicle allocation and IoT-based telematics for real-time tracking and
improved operational efficiency.

4
CHAPTER II System Development Process
2.1. Analysis
To analyze any issue or situation, the study of the present scenario is most important.
Articles and journals were a great source of information for studying the current
situation of car rental businesses. The only solution to get rid of all the problems for
Car Rental Businesses is to develop a Car Rental System.

2.1.1. Requirement Analysis


The requirement analysis helped to identify and evaluate the requirements of the
proposed system. It helps to know about the user requirement, the system
requirements, and the non-functional requirements for the Car Rental System.

Functional Requirement
a. New user account registration
b. Customer can login successfully.
c. Admin should be able to post, update, and delete car details.
d. Customer should be able to book a car.

Non-Functional Requirements
a) Performance: Handle high user traffic during peak usage period.
b) Scalability: Support system growth and new features.
c) Security: Encrypt user data and ensure secure access.
d) Usability: Simple, user-friendly interface for web and mobile.
e) Reliability: Ensure error-free operation.
f) Maintainability: Ensure maintenance updates to adapt with growing
requirements.
g) Compatibility: Support modern browsers and mobile devices

2.1.2. Feasibility Study


A feasibility Study for Car Rental System (CRS) evaluates the practically of
developing and implementing the system in terms of various factors such as technical,
operational and economical aspects.

Technical Feasibility
The proposed system will be built using widely available and reliable technologies
such as a web-based interface for users and a backend database for storing data. The
system was built using a database management system like MySQL.

Operational Feasibility
The system will be designed to be intuitive and easy to use for both customers and
staff. User training and detailed documentation will ensure smooth adoption. By
automating key processes such as booking confirmation, payment processing, the
system will significantly reduce the workload of rental business staff.

5
Economic Feasibility
The cost of developing and maintaining the system is reasonable compared to the
expected benefits. These benefits include increased revenue from improved customer
retention, reduced operational costs due to automation, and the potential to attract
new customers through better service quality.

2.1.3. Object-Oriented Modeling


To promote modularity, scalability, and ease of maintenance, a car rental system
benefits from an object-oriented approach. This design philosophy organizes the
system around reusable components, or "classes" (such as User, Car, Booking, etc.),
each containing its own data and functions. This method streamlines the development
process by creating a well-structured and adaptable system.

Use-Case Diagram
Use-Case Diagram helps to encapsulate the system’s functionality by incorporating
use cases, actors, and their relationships. It models the tasks, services, and functions
required by a system of an application.

6
Fig 2.1: Use-Case Diagram of Car Rental System

The use case diagram of the Car Rental System provides a visual overview of how the
system is used by two main users: the Admin and the Customer. Both users start by
logging in to the system. New customers must first go through the registration process
to create an account. Once logged in, customers can rent cars by browsing available
vehicles, selecting one, and placing a booking. After booking, they are required to
provide payment, which is later verified by the admin to confirm the transaction.
Customers can also view their order history to check details of previous rentals, and
they can log out once done.

On the other hand, the admin has access to more advanced features. In addition to
logging in, viewing order history, verifying payments, and logging out, the admin can
update car rental information, such as car availability, pricing, and details. The admin
can also manage car bookings, which includes approving or canceling customer

7
bookings, assigning vehicles, and handling any issues related to the rental process.
This use case model helps to define the roles and responsibilities clearly and ensures
smooth operation between customers renting cars and the admin managing the
backend operations.

Table 2.1: Use Case Description (Login)


Use Case UC01 : Login
Identifier

Actors Admin, Customer

Description The admin and customer can log in to the system using a login form.

Pre-condition The admin and customer must get their username and password
correct.

Post-condition The customer can perform the required action in the system.

Success Scenario Users are directed towards their respective dashboards.

Failure Scenario An error message must be displayed.

Table 2.2: Use Case Description (Registration)


Use Case UC02 : Registration
Identifier

Actors Customer

Description A new customer can register in the system by providing personal


details.

Pre-condition The customer must not already be registered.

Post-condition The customer account is created.

Success Scenario Login credentials are provided.

Failure Scenario An error message must be displayed.

8
Table 2.3: Use Case Description (Rent Car)
Use Case UC03 : Rent Car
Identifier

Actors Customer

Description The customer can rent a selected car by completing the booking
process.

Pre-condition The customer must be logged in and have selected a car.

Post-condition Booking is confirmed.

Success Scenario Payment is successfully processed, and the car is booked.

Failure Scenario An error message is displayed in case of payment failure.

Table 2.4: Use Case Description (Update Car Rental Information)


Use Case UC04 : Update Car Rental Information
Identifier

Actors Admin

Description Admin can add, update, or delete car rental details, including vehicle
specifications and availability.

Pre-condition Admin must be logged into the system.

Post-condition Car rental information is updated in the system database.

Success Scenario Changes are successfully saved, and updated data is displayed.

Failure Scenario An error message is displayed if the update fails due to validation
errors or system issues.

Table 2.5: Use Case Description (View Order History)


Use Case UC05 : View Order History
Identifier

9
Actors Admin, Customer

Description Customers can view their past car rental order and Admin can view
customer orders.

Pre-condition Users must be logged in.

Post-condition The order history is displayed.

Success Scenario System displays detailed order history.

Failure Scenario No previous order or system error.

Table 2.6: Use Case Description (Manage Car Booking)


Use Case UC08 : Manage Car Booking
Identifier

Actors Admin

Description Admin can approve, decline, or modify car bookings made by


customers.

Pre-condition Customer bookings must exist in the system.

Post-condition The booking status is updated successfully.

Success Scenario Admin successfully updates the booking status, and the customer is
notified.

Failure Scenario Invalid input or database error.

Table 2.7: Use Case Description (Provide Payment)


Use Case UC07 : Provide Payment
Identifier

Actors Customer

Description The customer makes a payment for the car rental.

10
Pre-condition Customer must have a valid rental booking.

Post-condition Payment is successfully processed, and payment successful message


is generated.

Success Scenario Payment is completed, and the transaction is recorded.

Failure Scenario An error message is displayed in case of payment failure.

Table 2.8: Use Case Description (Verify Payment)


Use Case UC08 : Verify Payment
Identifier

Actors Admin

Description Admin verify customer payments.

Pre-condition Payment records must be available in the system.

Post-condition Payment status is updated in the system.

Success Scenario Payment is verified.

Failure Scenario Invalid payment record or system errors.

Table 2.9: Use Case Description (Logout)


Use Case UC09 : Logout
Identifier

Actors Admin, Customer

Description Users can log out from the system.

Pre-condition User must be logged in.

Post-condition User session is terminated.

Success Scenario Users are redirected towards their login page.

11
Failure Scenario Session timeout or system error.

Object Model

Fig 2.2: Object Diagram of Car Rental System

The Object Diagram of the Car Rental System visually represents the relationships
between various objects in the system at a specific point in time. It shows that a
customer can browse and choose from multiple Cars, while a Reservation is made by
the customer and linked to a specific Payment. Each reservation is associated with
exactly one payment, showing a one-to-one relationship. On the other side, the admin
is responsible for managing multiple cars and overseeing all reservations in the
system. This diagram helps to understand how users, cars, bookings, and payments
interact with one another during the operation of the system.

12
Conceptual Class

Fig 2.3: Conceptual Class Diagram of Car Rental System

The Conceptual Class Diagram outlines the structure and behavior of the system by
defining its main classes along with their attributes and operations. The Customer
class contains basic user information such as customer_id, customer_name, email,
with functions like browse_cars() and make_booking(). The admin class includes
admin-specific data and manage_cars() and manage_booking() functions. The Car
class holds details like car_id, brand, model, type, and price_per_day. The Booking
class manages rental transactions with attributes such as booking_id, pickup_date,
return_date, location, rental_days, booking_status, along with methods
create_booking() and view_bookingdetails(). Finally, the Payment class keeps track of
payment details like payment_id, amount, currency, and payment_status. This
diagram serves as a blueprint for system development, ensuring clear structure and
relationships among classes.

13
State Diagram

Fig 2.4: State Diagram of Car Rental System

The state diagram of the Car rental system outlines the interaction flow for both
regular users and administrators. It starts by checking whether a user is registered. If
not, the user is directed to complete the registration process. Once registered, the user
proceeds to the login stage, where the system verifies the login credentials. If the
credentials are valid, the system determines the type of user: admin or regular. Admin
users gain access to features such as managing bookings, updating car listings, and
maintaining system information. On the other hand, regular users can search for
available cars, make reservations, and proceed with payment. After completing their
respective tasks, all users can log out, which ends their session in the system. This
structured flow ensures that both administrative and customer functionalities are
well-organized and secure.

14
2.2. Design

The design phase takes the system's requirements and analysis and turns them into a
detailed blueprint, which guides the creation of a clear and effective implementation.
This part of the process uses an object-oriented design approach, refining the
diagrams from the analysis and adding new ones like the component diagram,
deployment diagram, and database schema..

2.2.1. User Interface Design

Homepage

Figure 2.5: Home page

At the top of the Homepage, there is a dark navigation bar with the logo and site name
"RentAuto" on the left, and "Login", "Register", and “Filter ”buttons on the right.
Below the navbar, a heading "Available Cars" is displayed in bold, indicating the
section where users can browse rental options. The main content of the homepage
showcases different available cars in a card layout. Each card contains a photo of the
car, its name (e.g., Toyota Corolla, Honda Civic, Ford Escape), type (like Sedan or
SUV), and the rental price per day in Nepalese Rupees. Each car also has a “Book
Now” button, allowing users to begin the booking process.

15
Registration

Figure 2.6: Registration page

On the Registration page of the RentAuto website, new users can create an account.
The page has a clean and minimal layout, making it easy to use. At the top, the
heading “Register” is displayed in bold. Below the heading, there is a form with four
input fields: Name, Email, Password, and Confirm Password. These fields allow users
to enter their personal details and set a secure password. After filling out the form,
users can click the “Register” button to complete the signup process. At the bottom of
the page, there is a message: “Already have an account? Login here”, which provides
a link to the login page for users who have already registered. This page is important
for allowing new customers to join the platform and start booking cars.

16
Login

Figure 2.7: Login page

The website's Login page provides secure access to the Car Rental System with a
simple form requesting email and password for authentication. A "Login" button
submits credentials for verification, while there is a link that directs new users to
registration. This minimal design ensures quick, secure access for users while
maintaining data privacy.

Booking Page

Figure 2.8: Booking Page

17
After clicking “Book Now” on the homepage, users are directed to the booking page.
At the top, a clear heading "Book: Toyota Corolla" indicates which car is being
booked. The form includes input fields for Pickup Date, Return Date, and Pickup
Location, helping users specify their rental period and pickup point. The price per day
is clearly shown as "Rs 2,500.00", and there is a prominent button labeled "Proceed to
Payment" at the bottom. This layout is simple and user-friendly, making it easy for
customers to complete their booking details before moving on to the payment process.

Booking History Of User

Figure 2.9: Booking History Page

This page presents a user's personal booking history for the "RentAuto" car rental
service. It provides a neatly organized table summarizing all past and future rentals,
showing key details like the vehicle, dates, duration, cost, booking status, and
payment for each transaction. Users can also click to view more detailed information
about any specific booking.

18
Payment Integration

Figure 2.10: Payment page

The payment page displays a Stripe-integrated payment form for a "Ford Escape
Rental" priced at NPR 1,700.00. The form prompts the user to enter their email
address, card information (number, MM/YY, CVC), cardholder name, and select their
country or region. The payment process is powered by Stripe, as indicated at the
bottom of the page.

Admin Dashboard

Figure 2.11: Admin Dashboard

The admin dashboard is structured to give administrators a quick overview of the


system’s core data and management tools. On the left-hand side, there is a vertical
navigation menu with icons and links to sections such as Dashboard, Users, Manage
Cars, Bookings and Logout, making it easy for the admin to access different parts of
the system. The main content area of the dashboard displays key statistics in info
boxes.

19
Manage Cars

Figure 2.12: Manage Cars Page

The Manage Cars page allows admin to "Add New Car" by providing details such as
Brand, Model, Type, Price/Day (NPR), and an Image. Below the input form, there's a
section for "Existing Cars" displayed in a table format. This table lists cars with their
ID, Brand, Model, Type, Price/Day, Image, and "Edit" and "Delete" action links.
Currently, three cars are listed: a Ford Escape (SUV, NPR 1,700.00), a Honda Civic
(Sedan, NPR 1,550.00), and a Toyota Corolla (Sedan, NPR 2,500.00).

Bookings List

Figure 2.13: Booking List Page

This Bookings List page within the admin dashboard provides an overview of all
customer bookings, serving as a history log. The table includes columns for ID,
Customer Name, Customer Email, the booked Car, Pickup Date, Return Date,
Location, Rental Days, Total Amount, and Status. All listed bookings currently show

20
a "Confirmed" status, and each entry includes a "Delete" action button. The bookings
feature various cars like Toyota Corolla, Honda Civic, and Ford Escape, with different
rental durations and amounts, and locations including Kathmandu, Lalitpur, and
Bhaktapur.

2.2.2. Object-Oriented Design Models


To ensure adaptability, scalability, and maintainability, the Car Rental System utilizes
an object-oriented approach. This method structures the system using reusable classes
(for example, Car, Customer, and Rental), where each class includes its relevant data
and actions, making development more efficient.

Descriptive Class Diagram

Fig 2.14: Descriptive Class Diagram of Car Rental System

This Descriptive Class Diagram shows how the different parts of a car rental system
work together. There are main classes like Car Rental Company, Admin, Customer,
Car, Booking, and Payment. Each class has its own details (like name, contact, or
price) and actions it can do (like making bookings or managing cars). Customers can

21
browse and book cars, admins can manage bookings and cars, and bookings are
connected to both cars and payments.

Component Diagram

Fig 2.15: Component Diagram of Car Rental System

This Component Diagram represents the main parts of the Car Rental System and
how they interact with each other. It includes three key components: Customer,
Admin, and System. The Customer component allows users to perform actions such
as browsing available cars, booking a car, registering for an account, and logging in or
out. The Admin component is responsible for managing cars, handling bookings, and
viewing customer details. The System component acts as the core of the application,
storing data, processing bookings, and displaying available cars. Each component
communicates with the others through clearly defined connections.

Activity Diagram
Activity diagrams are an essential part of the Unified Modeling Language (UML) that
help visualize workflows, processes, or activities within a system. They depict how
different actions are connected and how a system moves from one state to another. By
offering a clear picture of both simple and complex workflows, activity diagrams
make it easier for developers and stakeholders to understand how various elements
interact in a system.

22
Figure 2.16: Activity Diagram (Log in)

This above diagram illustrates how users log in to the system. The Login Process
starts with the user entering their ID and password. If the provided data is invalid, an
error message is displayed, otherwise, the user logs in successfully.

Figure 2.17: Activity Diagram (Registration)

The above diagram illustrates the registration process. It involves the user providing
personal details to create an account. An error message appears if the input is
incorrect or incomplete; otherwise, the account is created successfully.

23
Figure 2.18: Activity Diagram (Rent Car)

The above diagram illustrates the car rental process. The customer must be logged in
to book a car; otherwise, an error message is shown. If the customer is authenticated,
the car booking is successful.

Figure 2.19: Activity Diagram (Update Car Rental Information)

The above diagram illustrates the process of updating car rental information. It allows
the admin to update car details. If the admin is not logged in, an error message is
shown, otherwise, the information is updated successfully.

24
Figure 2.20: Activity Diagram (View Order History)

The above diagram illustrates the process of viewing order history. It requires the user
to be logged in; otherwise, an error message is displayed. Upon successful login, the
order history is shown.

Figure 2.21: Activity Diagram (Manage Car Booking)

The above diagram illustrates the process of managing car booking. It allows the
customer to manage their booking if a valid booking exists; otherwise, an error
message appears.

25
Figure 2.22: Activity Diagram (Provide Payment)

The above diagram illustrates the process of providing payment. It requires the
customer to have a valid booking to complete the payment; otherwise, an error
message is shown.

Figure 2.23: Activity Diagram (Verify Payment)

The above diagram illustrates the process of verifying payment. It checks for a valid
payment record. If the record is missing or there is a system error, an error message is
shown; otherwise, the payment is verified.

26
Figure 2.24: Activity Diagram (Log out)

The above diagram illustrates the process of logging out from the system. It
requires the user to be logged in to successfully log out. If the user is not logged in,
an error message is displayed.

Sequence Diagram
Sequence diagrams are a type of UML (Unified Modeling Language) diagram that
visually represents the interactions between objects or components in a system over
time. They focus on the order and timing of messages or events exchanged between
different system elements. Sequence diagrams are used because they offer a clear and
detailed visualization of the interactions between objects or components in a system,
focusing on the order and timing of these interactions.

27
Fig 2.25: Sequence Diagram of Car Rental System

The Sequence Diagram represents the flow of interactions in the Car Rental System
between three main actors: the Customer, the Admin, and the System. It process
begins with the customer logging in or registering, after which the system responds
with either a success or failure message. Once logged in, the customer browses
available cars, and the system displays the results. The customer then selects a car and
books it, prompting the system to validate the booking and send a confirmation.
Following this, the customer proceeds to make a payment, which the system
processes, and then returns a payment confirmation.

On the admin side, the admin logs into the system and receives a success or failure
response. Once logged in, the admin can perform tasks such as updating car details or
booking information. When these updates are made, the system applies the changes

28
and sends confirmation back to the admin. Additionally, the admin can view all
bookings and customer details, and the system responds by displaying the requested
data. Throughout the diagram, the system serves as the central processing unit that
handles validation, data updates, and payment processing.

Deployment Diagram
A Deployment Diagram illustrates the mapping of software components onto the
physical resources of a system, such as servers, processors, storage devices, and
network infrastructure.

Fig 2.26: Deployment Diagram of Car Rental System

The Deployment Diagram explains how the system is physically set up across
different devices and servers. The Web Server handles user registration and login.
Once users log in, they interact with the Application Server, which manages important
functions like user authentication, the booking interface, and payment processing. The
Application Server connects to the Database Server, which stores all the system's data.
This includes user roles (admin or customer), booking details such as the car, date,
and number of days, and payment records.

Database Schema
The database schema ensures a well-structured and relational database for managing
users, cars, bookings, and payments within a car rental application. It was designed
with the help of MySQL.

Users Table:
This table stores information about the people using the system. Each user has a
unique ID, a name, an email, a password, and a role that defines whether they are a
customer or an admin. By default, every new user is a customer.

29
Cars Table:
This table contains details about the cars available for rent. Each car has a unique ID,
along with its brand, model, type, price per day, and an image. It also has an
availability status to show whether the car is available for booking or not.

Bookings Table:
This table keeps records of all the bookings made by users. It connects each booking
to a specific user and car, and includes information like pickup and return dates,
location, number of rental days, total amount to be paid, and the booking status
(pending, confirmed, or rejected).

Payments Table:
This table stores payment details for each booking. It records how much was paid, in
which currency (default is NPR), the payment status (pending, paid, or failed), and the
date the payment was made. If a booking is deleted, its related payment will be
deleted automatically.

2.3. Implementation
The Car Rental System is built to provide a responsive and user-friendly booking
platform with the help of HTML, CSS, JavaScript, PHP, and MySQL.

2.3.1. Tools and Technologies Used


The CRS leverages modern tools and techniques for development. The tools and
techniques used in the system are:

Table 2.10: Programming Language and Libraries

Component Technology Used

Frontend HTML, CSS, JavaScript

Frontend Library CSS

Backend PHP

Table 2.11: Database Management System

Component Technology Used

Database MySQL (project_db_car)

Database Tools MySQL Workbench / phpMyAdmin

Security SQL Injection Prevention (PHP


Prepared Statements), Data

30
Validation (PHP)

Database Tables bookings, cars, payments, users

Pseudocode:
//User/Admin login:
<?php
require '[Link]';
session_start();
$error = '';

if (isset($_SESSION['user_id'])) {
if ($_SESSION['role'] === 'admin') {
header('Location: dashboard_admin.php');
} else {
header('Location: [Link]');
}
exit;
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {


$email = trim($_POST['email'] ?? '');
$pass = $_POST['password'] ?? '';

if (empty($email) || empty($pass)) {
$error = 'Email and password are required.';
} else {
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?");
$stmt->execute([$email]);
$u = $stmt->fetch();
if ($u && password_verify($pass, $u['password'])) {
$_SESSION['user_id'] = $u['id'];
$_SESSION['user_name'] = $u['name'];
$_SESSION['role'] = $u['role'];

if ($u['role'] === 'admin') {


header('Location: dashboard_admin.php');
} else {
header('Location: [Link]');
}
exit;
} else {
$error = 'Invalid credentials. Please try again.';

31
}
}
}
?>

//Admin Dashboard
<?php
session_start();
require '[Link]';

if (!isset($_SESSION['user_id'])) {
header('Location: [Link]');
exit;
}

if ($_SESSION['role'] !== 'admin') {


header('Location: dashboard_' . $_SESSION['role'] . '.php');
exit;
}
$totalUsers = $pdo->query("SELECT COUNT(*) FROM users")->fetchColumn();
$totalCars = $pdo->query("SELECT COUNT(*) FROM cars")->fetchColumn();
$totalBookings = $pdo->query("SELECT COUNT(*) FROM
bookings")->fetchColumn();
$totalRevenue = $pdo->query("SELECT SUM(total_amount) FROM bookings
WHERE status = 'confirmed'")->fetchColumn();
$totalRevenue = $totalRevenue ?? 0;
?>

//My Bookings
<?php
session_start();
require '[Link]';

if (!isset($_SESSION['user_id'])) {
header('Location: [Link]');
exit;
}

$userId = $_SESSION['user_id'];

$sql = "SELECT
b.*,
[Link],

32
[Link],
[Link],
c.price_per_day,
p.payment_status
FROM
bookings b
JOIN
cars c ON b.car_id = [Link]
LEFT JOIN
payments p ON [Link] = p.booking_id AND [Link] = (
SELECT MAX(id) FROM payments WHERE booking_id = [Link]
)
WHERE
b.user_id = :user_id
ORDER BY
[Link] DESC";

$stmt = $pdo->prepare($sql);
$stmt->execute(['user_id' => $userId]);
$bookings = $stmt->fetchAll();

?>

2.3.2. Module Description

Login/Registration Module
This module manages user authentication. Customers can register new accounts or
log in with their existing credentials, while admins have separate login access with
higher privileges. It includes security measures such as password encryption, session
handling, and input validation to protect against unauthorized access.

Logout Module
This module ensures secure logout by ending the user session, clearing session data,
and redirecting users to the homepage. It helps prevent access to sensitive information
after logout, such as admin features or personal customer details.

View Customer Details Module


Accessible by admins, this module allows viewing of customer-related information,
including booking history, contact details, and payment records. It supports better
customer service, data analysis, and personalized user management.

Update Car Module


This module is for admin use only and enables updating of car details like availability
status (available/unavailable), descriptions, and images to keep listings accurate and
up to date.

33
Update Car Price Module
Admins can use this module to change car prices based on demand, seasons, or
special promotions. The updated prices are instantly reflected in the system and
booking interface.

Book Car Module


This module allows customers to make reservations by selecting dates, viewing
available cars, and entering necessary booking and payment details. It guides users
smoothly through the car rental process.

Customer Module
This section is designed for customer use and includes features like browsing cars,
making bookings, and checking booking history. It has a user-friendly and responsive
design for easy access.

Admin Module
The admin dashboard provides centralized control over all system components
including cars, bookings, payments, and users. It also features reports on booking
statistics, revenue, and system activity to help with management and
decision-making.

Payment Module
This module handles customer payments. It calculates the total cost based on the
selected car and rental duration. Once payment is confirmed, the customer receives a
booking confirmation message.

2.3.3. Testing
Testing is a method to check whether the actual software product matches expected
requirements and to ensure that software product is defect-free. It involves the
execution of software/system components using manual or automated tools to
evaluate one or more properties of interest. The Purpose of software testing is to
identify errors, gaps or missing requirements in contrast to actual requirements.

Table 2.12 Unit Testing


Project Name: Car Rental System

Module Name: Car Rental

Reference Document: Software Testing Material

Created by: Swosti Dhakal

Date of creation: 15-06-2025

Date of review: 17-06-2025

34
TEST TEST PRE-CO TEST TEST EXPECTED STATUS
TEST
SCENA CASE NDITIO STEPS DATA RESULTS (PASS/FAIL)
CASE
RIO N
ID

TC_ Book Can User Select car, Toyota Booking Pass


01 a car Book a logged pickup Corolla,2 Success
car in date, 025-06-1 Message
return 8,
date, 2025-06-
location 19,
Kathman
du

TC_ No Show User Select car, No dates Show “Please Pass


02 date error if logged no date, selected fill out this
select no in select field”
ed dates location message

TC_ Invali Show User Try Toyota Show“Return Pass


03 d date error if logged booking Corolla,2 date must be
range invalid in with 025-06-1 after pickup
dates invalid 8, date” message
dates 2025-06-
15,
Kathman
du

TC_ Book Redire Not Book car Toyota Redirect to Pass


04 witho ct to logged without Corolla login page
ut login in logging in
login page

35
Fig 2.27: Business Analytics

The business analytics done using PowerBI helps the admin to understand which
cars are more profitable. It has a pie chart showing income earned from each car
model. The chart shows Toyota Corolla generated the highest amount (10K),
followed by Honda Civic (6K) and Ford Escape (2K). On the right side, it also
shows two critical stats where the total revenue from bookings is 18K, and the
total number of booking id is 7.

36
CHAPTER III CONCLUSION AND
RECOMMENDATION
3.1. Summary
The Car Rental System significantly enhances the efficiency and convenience of
renting vehicles for both customers and car rental companies. By automating and
centralizing key processes, these systems improve operational workflow, reduce
administrative overhead, and enhance customer satisfaction. To ensure optimal
performance and scalability, it is crucial for these systems to be designed with future
growth in mind and for staff to receive comprehensive training. Regular system
updates are also vital to maintain security, incorporate new features, and adapt to
evolving business needs. Looking ahead, the integration of emerging technologies
like artificial intelligence (AI) holds the potential to further optimize car rental
operations. For instance, AI-powered recommendation systems could provide
personalized vehicle suggestions to customers, while real-time vehicle tracking could
enhance fleet management and security.

3.2. Conclusion
The Online Car Rental System successfully solves the problems of manual booking
and record keeping. It improves efficiency, reduces errors, and makes the booking
process faster and more convenient for customers. With features like user registration,
car booking, and admin management, the system meets the needs of Car Rental
Businesses.

3.3. Recommendation
To improve both the functionality and performance of the Online Car Rental System,
some improvements are recommended. A mobile app would offer easier access to
customers wishing to book cars from any location. An AI-based recommendation
system that suggests cars based on the customer’s preferences and booking history
would also be beneficial. Regular updates and maintenance of the system will also
help to ensure performance and security. In addition to improving system
performance, staff and administrator training will enhance overall efficiency. Lastly,
a feedback mechanism would assist in improving customer satisfaction.

37
REFERENCES

Firdaus Che Abdul Rani, M., Khaled Salmen Kashmim, A., Firdaus Che Abdul
Rani, M., & Jegatheswaran, R. (2023). Vehicles Agency Rental Online
System. In Journal of Applied Technology and Innovation (Vol. 7, Issue 4).
[Link]

Ogbiti, J. T., & Aaron, W. (2024). Development of a web-based car rental


management system. Science World Journal, 19(3), 797–807.
[Link]

Thakur, A. (2021). Car Rental System. International Journal for Research in


Applied Science and Engineering Technology, 9(VII), 402–412.
[Link]

38
APPENDICES
User/Admin Login

When a login form loads, the code first checks that both email and password boxes

39
aren't blank. It then searches the database for that email and sees if the typed
password fits the saved hash with password_verify. If everything matches, it saves the
users ID, name, and role in the session. Depending on that role, the code sends the
person either to the admin dashboard or straight to the main index. If the check fails at
any point, a friendly error message pops up.

View Booking

This view_booking.php file displays the details of a specific booking. Before doing
anything, it double-checks that the user is logged in and that a valid booking ID is
provided through the URL. Next it runs an SQL join across the bookings, cars, and
users tables to collect all the details at once. If the booking exists and belongs to the
logged-in user, it fetches and shows the car and user details. If not, it stops with an
error message.

40
Admin Dashboard

In the dashboard_admin.php code, right at the start it makes sure the person is logged
in and really has admin rights. If either check fails, the code quickly redirects the user
to the proper page. Once the role is confirmed, the script grabs key numbers from the
database-such as total users, cars, bookings, and confirmed earnings.

Screenshots of the System:

Home page

41
Registration Page

Login Page

42
Booking Page

Booking History Page

Payment Integration

43
Admin Dashboard

Manage Cars Page

Bookings List

44

You might also like