Project Final Report 1
Project Final Report 1
GNANENDRA N V(U18FR21S0025)
PRITHVI R(U18FR21S0055)
Under the Guidance of
Mr. NARENDRA N
GNANENDRA N V(U18FR21S0025)
PRITHVI R(U18FR21S0055)
Under the Guidance of
Mr. NARENDRA N
Mahayogi Vemana Road, 16th Main Road , 3rd Block ,Koramangala,Bengaluru 560034.
RJS FIRST GRADE COLLEGE
(Affiliated to Bengaluru City University, Recognised by Government of Karnataka)
CERTIFICATE
This is certify that the Project work entitled
GNANENDRA N V(U18FR21S0025)
PRITHVI R(U18FR21S0055)
During the academic year 2023-2024
We, GNANENDRA N V and PRITHVI R student of 6th sem BCA, RJS First Grade
College, bearing Register Number U18FR21S0025 and U18FR21S0055 hereby
declare that the project entitled “ CAR RENTAL PORTAL” has been carried out by
me under the guidance of Mr. NARENDRA N, Department of Computer Science &
Applications, RJS First Grade College, Bengaluru and submitted in partial fulfilment
of the requirement for the award of the degree of Bachelor of Computer Applications
by the Bengaluru City University during the academic year 2023-2024. This report has
not submitted to any other Organization /University for any award of degree or
certificate.
Date: Name:
Place: Signature:
ACKNOWLEDGEMENT
First and Foremost I would like to thank my “Parents” who are the first God and
who has given blessings, strength, and stayed with me throughout the successful
completion of the project.
Finally, I thank all the staffs of BCA department who have been a source of
inspiration for accomplishing the project successfully.
Name:
Register Number:
CONTENTS
1 ABSTRACT 1
2 INTRODUCTION
Object of the project.
Methodology/Procedure. Project Framework.
Data and Information.
2-4
Tools Used.
Unit Testing.
Testing.
5 Software Requirements. 7
6 Hardware Requirements. 8
DETAILED DESIGN
7
Use Case Design.
Data Flow Diagram. 9-14
Entity RelationshipDiagram.
8 DATA IMPLEMENTATION.
Databases tables.
15-19
Activity
Diagram.
Sequence Diagram.
9 USER INTERFACE.
Home Page.
User Login
20-21
Page.
Admin Login Page.
Manage Vehicles.
Add Brand.
10 IMPLEMENTATION.
22-69
11 FUTURE ENHANCEMENTS.
70
12 BIBLIOGRAPHY.
71
13 CONCLUSION.
72
1.ABSTRACT
1
2.INTRODUCTION
2.1 Introduction
Nowadays, there is Online Car Rental which gives much benefit to user. A rental service is
a service which customers arrive to request the hire of a rental unit. It is more convenient
than carrying the cost of owning and maintain the unit. A car rental is a company that rent
automobiles for short period of time for a fee for few hours or a few days or a week.
It helps to book the cars or vehicles online rather than using the traditional manual
system of vehicle reservation. This eliminates the risk of erroneous booking and
reduce overall lead time and ensures growth in customer satisfaction. They can book
any car according to their brands and price.
2.3 Methodology/Procedure
For the development of project the designing of database was done on
PHPMYADMIN, back end was coded in basic PHP and for frontend we used
the same basic PHP codes.
Software methodologies are concerned with the process of creating software
not so much the technical side but the organizational aspects. Several
software development approaches have been used since the origin of
information technology.
2
2.4 Project Framework
A framework is a standardized set of concepts, practices, and criteria for dealing with
a common type of problem, which can be used as a reference to help us approach and
resolve new problems of a similar nature.
The aim of framework is to provide a common structure so that developers don’t have
to redo it from scratch and can reuse the code provided. In this way, frameworks
allows us to cut out much of the work and save a lot of time
3
2.7 Testing
Testing is evaluation of the software against requirements gathered from users and
system specifications. Testing identifies important defects, flaws, or an error in the
application code that must be fixed .It also assesses the feature of a system. Testing
assesses the quality of the product.
4
3.TASK AND ACTIVITIES PERFORMED
5
4. SYSTEM DESIGN AND ANALYSIS
4.1 Feasibility Analysis
A feasibility analysis is conducted once the problem is clearly understood. The
purpose of the study is to determine whether the problem is worth solving. It is an
analysis and evaluation of a proposed project to determine if it is technically feasible.
• Research and analysis cost to determine the actual need in real world.
• Implementation of application in the server and cost associated with the
space in server.
6
5. SOFTWARE REQUIREMENTS.
Operating System.
Web Server.
DBMS.
Development Framework and Languages.
Authentication and Authorization.
API.
Payment Gateway Integration.
Monitoring and Logging.
Security.
Backup Solutions.
7
6. HARDWARE REQUIREMENTS.
Server Hardware.
Client Hardware.
Networking Equipment.
Peripheral Devices.
8
7. DETAILED DESIGN.
7.1 Use Case Design
Above figure represents Use Case Diagram of the project and is a useful technique
for identifying, clarifying, and organizing system requirements. It describes how a
user uses a system to accomplish a particular goal. Use cases help ensure that the
correct system is developed by capturing the requirements from the user's point of
view.
9
7.2 DATA FLOW DIAGRAM (DFD)
A Data flow diagram (DFD) is a graphical or visual representation using a standardization set of
symbols and notations to describes a business’s operation through data movement.
They are often elements of a formal methodology such as Structured Systems Analysis and
Design Method.
10
2) First level DFD
11
3) Second level DFD
12
7.3 ENTITY-RELATIONSHIP DIAGRAM
SYMBOL PURPOSE
Represents Attributes
13
E-R Diagram For Car Rental Portal
14
8 DATABASE IMPLEMENTATION.
MYSQL- MySQL ("My S-Q-L", officially, but also called "My Sequel") is (as of July 2013)
the world's second most widely used open-source relational database management system
(RDBMS). It is named after co-founder Michael Wideners daughter.
The SQL phrase stands for Structured Query Language. The MySQL development project
has made its source code available under the terms of the GNU General Public License, as
well as under a variety of proprietary agreements.
MySQL was owned and sponsored by a single for-profit firm, the Swedish company MySQL
AB, now owned by Oracle Corporation. MySQL is a popular choice of database for use in web
applications and is a central component of the widely used LAMP opens source web application
software stack (and other 'AMP' stacks).
MySQL is also used in many high-profile, large-scale websites, including Wikipedia, Google
(though not for searches), Face book, Twitter, Flickr, and YouTube.
15
8.1 Databases tables
16
17
8.2 Activity Diagram
18
8.3 Sequence Diagram
A sequence diagram is a type of interaction diagram because it describes how—and
in what order—a group of objects works together. A sequence diagram specifically
focuses on lifelines, or the processes and objects that live simultaneously, and the
messages exchanged between them to perform a function before the lifeline ends.
19
9. USER INTERFACE.
20
9.3 Admin Login page
21
10. IMPLEMENTATION.
22
<?php
session_start(); error_reporting(0); include('includes/config.php');
if(strlen($_SESSION['alogin'])==0)
{
header('location:index.php');
} else{
if(isset($_REQUEST['eid']))
{
$eid=intval($_GET['eid']);
$status="2";
$sql = "UPDATE tblbooking SET Status=:status WHERE id=:eid";
$query = $dbh->prepare($sql);
$query -> bindParam(':status',$status, PDO::PARAM_STR);
$query-> bindParam(':eid',$eid, PDO::PARAM_STR);
$query -> execute();
echo "<script>alert('Booking Successfully Cancelled');</script>";
echo "<script type='text/javascript'> document.location = 'canceled-bookings.php; </script>"; }
if(isset($_REQUEST['aeid'])) {
$aeid=intval($_GET['aeid']);
$status=1;
?>
23
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1,
maximumscale=1">
<meta name="description" content="">
<meta name="author" content="">
<meta name="theme-color" content="#3e454c">
24
.errorWrap { padding: 10px; margin: 0 0 20px 0; background: #fff;
border-left: 4px solid #dd3d36;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1); box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
.succWrap{ padding: 10px; margin: 0 0 20px 0; background: #fff;
border-left: 4px solid #5cb85c;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1); box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
</style>
</head>
<body>
<?php include('includes/header.php');?>
<div class="ts-main-content">
<?php include('includes/leftbar.php');?>
<div class="content-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-md-12">
<div id="print">
25
<table border="1" class="display table table-striped table-bordered table-hover"
cellspacing="0" width="100%" >
<tbody>
<?php
$bid=intval($_GET['bid']);
$sql = "SELECT
tblusers.*,tblbrands.BrandName,tblvehicles.VehiclesTitle,tblbooking.FromDate,tblbooking.ToDate,tbl
book ing.message,tblbooking.VehicleId as
vid,tblbooking.Status,tblbooking.PostingDate,tblbooking.id,tblbooking.BookingNumber,
DATEDIFF(tblbooking.ToDate,tblbooking.FromDate) as
totalnodays,tblvehicles.PricePerDay from tblbooking join tblvehicles on
tblvehicles.id=tblbooking.VehicleId join tblusers on tblusers.EmailId=tblbooking.userEmail join
tblbrands on tblvehicles.VehiclesBrand=tblbrands.id where tblbooking.id=:bid";
$query = $dbh -> prepare($sql);
$query -> bindParam(':bid',$bid, PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $result)
{ ?>
<h3 style="text-align:center; color:red">#<?php echo htmlentities($result->BookingNumber);?>
Booking Details </h3>
<tr>
<th colspan="4" style="text-align:center;color:blue">User
Details</th>
</tr>
<tr>
<th>Booking No.</th>
26
<td>#<?php echo htmlentities($result>BookingNumber);?></td>
<th>Name</th>
<td><?php echo htmlentities($result->FullName);?></td>
</tr>
<tr>
<th>Email Id</th>
<td><?php echo htmlentities($result->EmailId);?></td>
<th>Contact No</th>
<td><?php echo htmlentities($result->ContactNo);?></td>
</tr>
<tr>
<th>Address</th>
<td><?php echo htmlentities($result->Address);?></td>
<th>City</th>
<td><?php echo htmlentities($result->City);?></td>
</tr>
<tr>
<th>Country</th>
<td colspan="3"><?php echo htmlentities($result>Country);?></td>
</tr>
<tr>
<th colspan="4" style="textalign:center;color:blue">Booking Details</th>
</tr>
<tr>
<th>Vehicle Name</th>
<td><a href="edit-vehicle.php?id=<?php echo htmlentities($result-
>vid);?>"><?php echo htmlentities($result->BrandName);?> , <?php echo htmlentities($result-
>VehiclesTitle);?></td>
<th>Booking Date</th>
<td><?php echo htmlentities($result->PostingDate);?></td>
</tr>
27
<tr>
<th>From Date</th>
<td><?php echo htmlentities($result->FromDate);?></td>
<th>To Date</th>
<td><?php echo htmlentities($result->ToDate);?></td>
</tr>
<tr>
<th>Total Days</th>
28
<?php if($result->Status==0){ ?>
<tr>
<td style="text-align:center" colspan="4"> <a href="bookig-
details.php?aeid=<?php echo htmlentities($result->id);?>" onclick="return confirm('Do you really
want to Confirm this booking')" class="btn btn-primary">
Confirm Booking</a>
</tbody>
</table>
<form method="post">
<input name="Submit2" type="submit" class="txtbox4" value="Print" onClick="return f3();"
style="cursor: pointer;" />
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
29
<?php
//Query for Listing count
$sql = "SELECT id from tblvehicles";
$query = $dbh -> prepare($sql);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=$query->rowCount();
?>
<p><span><?php echo htmlentities($cnt);?> Listings</span></p>
</div>
</div>
30
<li><i class="fa fa-user" aria-hidden="true"></i><?php echo htmlentities($result-
>SeatingCapacity);?> seats</li>
<li><i class="fa fa-calendar" aria-hidden="true"></i><?php echo htmlentities($result-
>ModelYear);?> model</li>
<li><i class="fa fa-car" aria-hidden="true"></i><?php echo htmlentities($result-
>FuelType);?></li>
</ul>
<a href="vehical-details.php?vhid=<?php echo htmlentities($result>id);?>" class="btn">View
Details <span class="angle_arrow"><i class="fa faangle-right" aria-hidden="true"></i></span></a>
</div>
</div>
<?php }} ?>
</div>
<!--Side-Bar-->
<aside class="col-md-3 col-md-pull-9">
<div class="sidebar_widget">
<div class="widget_heading">
<h5><i class="fa fa-filter" aria-hidden="true"></i> Find Your Car
</h5>
</div>
<div class="sidebar_filter">
<form action="search-carresult.php" method="post">
<div class="form-group select">
31
{ foreach($results as $result)
{ ?>
<option value="<?php echo htmlentities($result->id);?>"><?php echo htmlentities($result-
>BrandName);?></option>
<?php }} ?>
</select>
</div>
<div class="form-group select">
<select class="form-control" name="fueltype">
<option>Select Fuel Type</option>
<option value="Petrol">Petrol</option>
<option value="Diesel">Diesel</option>
<option value="CNG">CNG</option>
</select>
</div>
<div class="form-group">
<button type="submit" class="btn btn-block"><i class="fa fasearch" aria-hidden="true"></i>
Search Car</button>
</div>
</form>
</div>
</div>
<div class="sidebar_widget">
<div class="widget_heading">
<h5><i class="fa fa-car" aria-hidden="true"></i> Recently Listed
Cars</h5>
</div>
<div class="recent_addedcars">
<ul>
32
<?php $sql = "SELECT tblvehicles.*,tblbrands.BrandName,tblbrands.id as bid from tblvehicles join
tblbrands on tblbrands.id=tblvehicles.VehiclesBrand order by id desc limit 4";
$query = $dbh -> prepare($sql);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1; if($query->rowCount() > 0)
{
foreach($results as $result)
{ ?>
<li class="gray-bg">
<div class="recent_post_img"> <a href="vehicaldetails.php?vhid=<?php echo
htmlentities($result->id);?>"><img src="admin/img/vehicleimages/<?php echo htmlentities($result-
>Vimage1);?>" alt="image"></a> </div>
<div class="recent_post_title"> <a href="vehicaldetails.php?vhid=<?php echo
htmlentities($result->id);?>"><?php echo htmlentities($result->BrandName);?> , <?php echo
htmlentities($result-
>VehiclesTitle);?></a>
<p class="widget_price">₹<?php echo htmlentities($result-
>PricePerDay);?> Per Day</p>
</div>
</li>
<?php }} ?>
</ul>
</div>
</div>
</aside>
<!--/Side-Bar-->
</div> </div>
</section>
<!-- /Listing-->
33
<!--Footer -->
<?php include('includes/footer.php');?>
<!-- /Footer-->
<!--Back to top-->
<div id="back-top" class="back-top"> <a href="#top"><i class="fa fa-angle-up" aria-
hidden="true"></i> </a> </div>
<!--/Back to top-->
<!--Login-Form -->
<?php include('includes/login.php');?>
<!--/Login-Form -->
<!--Register-Form -->
<?php include('includes/registration.php');?>
<!--/Register-Form --> <!--Forgot-password-Form -->
<?php include('includes/forgotpassword.php');?>
</body>
34
</html>
Car rental:
-- phpMyAdmin SQL Dump
-- version 4.9.0.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: Jul 12, 2020 at 07:46 AM
-- Server version: 10.3.15-MariaDB
-- PHP Version: 7.2.19
SET SQL_MODE =
"NO_AUTO_VALUE_ON_ZERO"; SET
AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
--
-- Database: `carrental`
--
--
-- Table structure for table `admin`
35
--
--
-- Dumping data for table `admin`
--
INSERT INTO `admin` (`id`, `UserName`, `Password`, `updationDate`) VALUES (1, 'admin',
'5c428d8875d2948607f3e3fe134d71b4', '2017-06-18 12:22:38');
-
--
-- Table structure for table `tblbooking`
--
36
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Dumping data for table `tblbooking`
--
--
-- Table structure for table `tblbrands`
--
--
-- Dumping data for table `tblbrands` --
37
(3, 'Audi', '2017-06-18 16:25:03', NULL),
(4, 'Nissan', '2017-06-18 16:25:13', NULL),
(5, 'Toyota', '2017-06-18 16:25:24', NULL),
(7, 'Volkswagon', '2017-06-19 06:22:13', '2020-07-07 14:14:09');
-
--
-- Table structure for table `tblcontactusinfo`
--
--
-- Dumping data for table `tblcontactusinfo`
--
--
-- Table structure for table `tblcontactusquery`
--
38
CREATE TABLE `tblcontactusquery` (
`id` int(11) NOT NULL,
`name`varchar(100) DEFAULT NULL,
`EmailId`varchar(120) DEFAULT NULL,
`ContactNumber`char(11) DEFAULT NULL,
`Message` longtext DEFAULT NULL,
`PostingDate`timestamp NOT NULL DEFAULT current_timestamp(),
`status` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Dumping data for table `tblcontactusquery`
--
--
-- Table structure for table `tblpages`
--
39
--
-- Dumping data for table `tblpages`
--
INSERT INTO `tblpages` (`id`, `PageName`, `type`, `detail`) VALUES (1, 'Terms and Conditions',
'terms', '<P align=justify><FONT size=2><STRONG><FONT color=#990000>(1) ACCEPTANCE
OF
TERMS</FONT><BR><BR></STRONG>Welcome to Yahoo! India. 1Yahoo Web Services
India Private Limited Yahoo\", \"we\" or \"us\" as the case may be) provides the Service (defined
below) to you, subject to the following Terms of Service
(\"TOS\"), which may be updated by us from time to time without notice to you. You can review the
most current version of the TOS at any time at: <A
href=\"http://in.docs.yahoo.com/info/terms/\">http://in.docs.yahoo.com/info/te rms/</A>. In
addition, when using particular Yahoo services or third party services, you and Yahoo shall be subject
to any posted guidelines or rules applicable to such services which may be posted from time to time.
All such guidelines or rules, which maybe subject to change, are hereby incorporated by reference
into the TOS. In most cases the guides and rules are specific to a particular part of the Service and
will assist you in applying the TOS to that part, but to the extent of any inconsistency between the
TOS and any guide or rule, the TOS will prevail. We may also offer other services from time to time
that are governed by different Terms of Services, in which case the TOS do not apply to such other
services if and to the extent expressly excluded by such different Terms of Services. Yahoo also may
offer other services from time to time that are governed by different Terms of Services. These TOS do
not apply to such other services that are governed by different Terms of Service. </FONT></P>\r\n<P
align=justify><FONT size=2>Welcome to Yahoo! India. Yahoo Web Services India Private Limited
Yahoo\", \"we\" or \"us\" as the case may be) provides the Service (defined below) to you, subject to
the following Terms of Service (\"TOS\"), which may be updated by us from time to time without
notice to you. You can review the most current version of the TOS at any time at: </FONT><A
href=\"http://in.docs.yahoo.com/info/terms/\"><FONT
size=2>http://in.docs.yahoo.com/info/terms/</FONT></A><FONT size=2>. In addition, when using
particular Yahoo services or third party services, you and Yahoo shall be subject to any posted
guidelines or rules applicable to such services which may be posted from time to time. All such
guidelines or rules, which maybe subject to change, are hereby incorporated by reference into the
TOS. In most cases the guides and rules are specific to a particular part of the Service and will assist
you in applying the TOS to that part, but to the extent of any inconsistency between the TOS and any
guide or rule, the TOS will prevail. We may also offer other services from time to time that are
governed by different Terms of Services, in which case the TOS do not apply to such other services if
and to the extent expressly excluded by such different Terms of Services. Yahoo also may offer other
services from time to time that are governed by different Terms of Services. These TOS do not apply
to such other services that are governed by different Terms of Service.
</FONT></P>\r\n<P align=justify><FONT size=2>Welcome to Yahoo! India. Yahoo Web Services
India Private Limited Yahoo\", \"we\" or \"us\" as the case may be) provides the Service (defined
below) to you, subject to the following Terms of Service (\"TOS\"), which may be updated by us
from time to time without notice to you. You can review the most current version of the TOS at any
time at:
40
</FONT><A href=\"http://in.docs.yahoo.com/info/terms/\"><FONT
size=2>http://in.docs.yahoo.com/info/terms/</FONT></A><FONT size=2>. In addition, when
using particular Yahoo services or third party services, you and Yahoo shall be subject to any
posted guidelines or rules applicable to such services which may be posted from time to time. All
such guidelines or
rules, which maybe subject to change, are hereby incorporated by reference into the TOS. In most
cases the guides and rules are specific to a particular part of the Service and will assist you in
applying the TOS to that part, but to the extent of any inconsistency between the TOS and any guide
or rule, the TOS will prevail. We may also offer other services from time to time that are governed by
different Terms of Services, in which case the TOS do not apply to such other services if and to the
extent expressly excluded by such different Terms of Services. Yahoo also may offer other services
from time to time that are governed by different Terms of Services. These TOS do not apply to such
other services that are governed by different Terms of Service. </FONT></P>'), (2, 'Privacy Policy',
'privacy', '<span style=\"color: rgb(0, 0, 0); fontfamily: "Open Sans", Arial, sans-serif;
font-size: 14px; text-align: justify;\">At vero eos et accusamus et iusto odio dignissimos ducimus qui
blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi
sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id
est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero
tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime
placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem
quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae
sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis
voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat</span>'),
(3, 'About Us ', 'aboutus', '<span style=\"color: rgb(51, 51, 51); fontfamily: "Helvetica
Neue", Helvetica, Arial, sans-serif; font-size: 13.3333px;\">We offer a varied fleet of cars,
ranging from the compact. All our vehicles have air conditioning, power steering, electric
windows.
All our vehicles are bought and maintained at official dealerships only. Automatic transmission cars
are available in every booking
class. </span><span style=\"color: rgb(52, 52, 52); font-family: Arial, Helvetica, sans-
serif;\">As we are not affiliated with any specific automaker, we are able to provide a variety of
vehicle makes and models for customers to rent.</span><div><span style=\"color: rgb(62, 62, 62);
font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif; fontsize:
11px;\">ur mission is to be recognised as the global leader in Car Rental for companies and the
public and private sector by partnering with our clients to provide the best and most efficient Cab
Rental solutions and to achieve service excellence.</span><span style=\"color: rgb(52, 52, 52);
fontfamily: Arial, Helvetica, sans-serif;\"><br></span></div>'),
(11, 'FAQs', 'faqs',
' <span style=\"color: rgb(0, 0, 0); font-family: "Open
Sans", Arial, sansserif; font-size: 14px; text-align: justify;\">Address --- Test
dsfdsfds</span>');
41
-
--
-- Table structure for table `tblsubscribers`
--
--
-- Table structure for table `tbltestimonial`
--
42
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Dumping data for table `tbltestimonial`
--
--
-- Table structure for table `tblusers`
--
--
-- Dumping data for table `tblusers`
--
43
INSERT INTO `tblusers` (`id`, `FullName`, `EmailId`, `Password`, `ContactNo`,
`dob`, `Address`, `City`, `Country`, `RegDate`, `UpdationDate`)
VALUES (1, 'Test', 'anilreddy [email protected]',
'f925916e2754e5e03f75dd58a5733251', '6465465465', '', 'L-890, Gaur City
Ghaziabad', 'Ghaziabad', 'India', '2020-07-07 14:00:49', '2020-07-12
05:44:29');
--
-- Table structure for table `tblvehicles`
--
44
`BrakeAssist` int(11) DEFAULT NULL,
`PowerSteering`int(11) DEFAULT NULL,
`DriverAirbag` int(11) DEFAULT NULL,
`PassengerAirbag` int(11) DEFAULT NULL,
`PowerWindows`int(11) DEFAULT NULL,
`CDPlayer`int(11) DEFAULT NULL,
`CentralLocking`int(11) DEFAULT NULL,
`CrashSensor` int(11) DEFAULT NULL,
`LeatherSeats` int(11) DEFAULT NULL,
`RegDate`timestamp NOT NULL DEFAULT current_timestamp(),
`UpdationDate`timestamp NULL DEFAULT NULL ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Dumping data for table `tblvehicles`
--
45
589823254_930x620.jpg', 'tail-lamp-1666712219_930x620.jpg', 'rear-3-4-
right520328200_930x620.jpg', 'steering-close-up-1288209207_930x620.jpg', 'bootwith-standard-
luggage-202327489_930x620.jpg', 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, '2020-07-07 07:04:35', '2020-07-07
07:27:08'),
(2, 'BMW 5 Series', 2, 'BMW 5 Series price starts at ? 55.4 Lakh and goes upto
? 68.39 Lakh. The price of Petrol version for 5 Series ranges between ? 55.4 Lakh - ? 60.89 Lakh
and the price of Diesel version for 5 Series ranges between ? 60.89 Lakh - ? 68.39 Lakh.', 1000,
'Petrol', 2018, 5, 'BMW-5-Series-
Exterior-102005.jpg', 'BMW-5-Series-New-Exterior-89729.jpg', 'BMW-5-
Series- Exterior-102006.jpg', 'BMW-5-Series-Interior-102021.jpg', 'BMW-5-
Series- Interior-102022.jpg', 1, 1, 1, 1, 1, 1, 1, 1, NULL, 1, 1, 1, '2020-07-07
07:12:02', '2020-07-07 07:27:44'),
(3, 'Audi Q8', 3, 'As per ARAI, the mileage of Q8 is 0 kmpl. Real mileage of
the vehicle varies depending upon the driving habits. City and highway mileage figures also vary
depending upon the road conditions.', 3000, 'Petrol', 2017, 5, 'audi-q8-front-view4.jpg',
'1920x1080_MTC_XL_framed_Audi-OdessaArmaturen_Spiegelung_CC_v05.jpg', 'audi1.jpg',
'1audiq8.jpg', 'audi-q8-frontview4.jpeg', 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, '2020-07-07 07:19:21', '2020-
07-07 07:28:02'),
(4, 'Nissan Kicks', 4, 'Latest Update: Nissan has launched the Kicks 2020 with a new turbocharged
petrol engine. You can read more about it here.\r\n\r\nNissan Kicks Price and Variants: The Kicks is
available in four variants: XL, XV, XV Premium, and XV Premium(O).', 800, 'Petrol', 2020, 5, 'front-
left- side-47.jpg', 'kicksmodelimage.jpg', 'download.jpg',
'kicksmodelimage.jpg', '', 1, NULL, NULL, 1, NULL, NULL, 1, 1, NULL, NULL,
NULL, 1, '2020-07-07 07:25:28', NULL),
(5, 'Nissan GT-R', 4, ' The GT-R packs a 3.8-litre V6 twin-turbocharged petrol, which puts out 570PS
of max power at 6800rpm and 637Nm of peak torque. The engine is mated to a 6-speed dual-clutch
transmission in an all-wheeldrive setup. The 2+2 seater GT-R sprints from 0-100kmph in less than 3',
2000,
'Petrol', 2019, 5, 'Nissan-GTR-Right-Front-Three-Quarter-84895.jpg',
'Best- Nissan-Cars-in-India-New-and-Used-1.jpg',
'2bb3bc938e734f462e45ed83be05165d.jpg', '2020-nissan-gtr-rakuda-tan-semianiline-leather-
interior.jpg', 'images.jpg', 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, '2020-07-07 07:34:17', NULL),
(6, 'Nissan Sunny 2020', 4, 'Value for money product and it was so good It is more spacious than
other sedans It looks like a luxurious car.', 400, 'CNG',
2018, 5, 'Nissan-Sunny-Right-Front-Three-Quarter-48975_ol.jpg', 'images
(1).jpg', 'Nissan-Sunny-Interior-114977.jpg', 'nissan-sunny-8a29f53-
46
<?php include('includes/registration.php');?>
<!--/Register-Form -->
<!--Forgot-password-Form -->
<?php include('includes/forgotpassword.php');?>
<!--/Forgot-password-Form -->
Read me:
How to run Project
1. Download and Unzip the file on your local system copy carrental .
2. Put carrental folder inside root directory (for xampp xampp/htdocs, for wamp wamp/www,
for lamp var/www/html)
Database Configura on
47
Open phpmyadmin
Create Database carrental
Import database carrental.sql (available SQL File Folder inside zip package)
For User
Open Your browser put inside browser “h p://localhost/carrental”
Login Details for user:
Username : [email protected]
Password: anil9686
48
$query1->bindParam(':fromdate',$fromdate,PDO::PARAM_STR);
$query1->bindParam(':todate',$todate,PDO::PARAM_STR); $query1->execute();
$results1=$query1-
>fetchAll(PDO::FETCH_OBJ); if($query1-
>rowCount()==0)
{
$sql="INSERT
INTO tblbooking(BookingNumber,userEmail,VehicleId,FromDate,ToDate,message,Sta tus)
VALUES(:bookingno,:useremail,:vhid,:fromdate,:todate,:message,:status)";
$query = $dbh->prepare($sql);
$query->bindParam(':bookingno',$bookingno,PDO::PARAM_STR);
$query->bindParam(':useremail',$useremail,PDO::PARAM_STR);
$query->bindParam(':vhid',$vhid,PDO::PARAM_STR);
$query->bindParam(':fromdate',$fromdate,PDO::PARAM_STR);
$query->bindParam(':todate',$todate,PDO::PARAM_STR);
$query->bindParam(':message',$message,PDO::PARAM_STR);
$query->bindParam(':status',$status,PDO::PARAM_STR);
$query->execute();
$lastInsertId = $dbh->lastInsertId(); if($lastInsertId)
{ echo "<script>alert('Booking successfull.');</script>"; echo "<script type='text/javascript'>
document.location = 'my-booking.php';
</script>";
} else { echo "<script>alert('Something went wrong. Please try again');</script>"; echo "<script
type='text/javascript'> document.location = 'car-listing.php';
</script>"; } } else{ echo "<script>alert('Car already booked for these days');</script>"; echo
"<script type='text/javascript'> document.location = 'car-listing.php';
</script>";
}
49
?>
<!DOCTYPE HTML>
<html lang="en">
<head>
50
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="assets/images/favicon-icon/apple-
touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114"
href="assets/images/favicon-icon/apple-touch-icon-114-precomposed.html">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="assets/images/favicon-icon/apple-
touch-icon-72-precomposed.png"> <link rel="apple-touch-icon-precomposed"
href="assets/images/faviconicon/apple-touch-icon-57-precomposed.png">
<link rel="shortcut icon" href="assets/images/favicon-icon/favicon.png"> <link
href="https://fonts.googleapis.com/css?family=Lato:300,400,700,900" rel="stylesheet">
</head>
<body>
<!--Header-->
<?php include('includes/header.php');?>
<!-- /Header -->
<!--Listing-Image-Slider-->
<?php
$vhid=intval($_GET['vhid']);
$sql = "SELECT tblvehicles.*,tblbrands.BrandName,tblbrands.id as bid from tblvehicles join
tblbrands on tblbrands.id=tblvehicles.VehiclesBrand where tblvehicles.id=:vhid";
$query = $dbh -> prepare($sql);
$query->bindParam(':vhid',$vhid, PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1; if($query->rowCount() > 0)
{ foreach($results as $result)
51
{
$_SESSION['brndid']=$result->bid;
?>
<section id="listing_img_slider">
<div><img src="admin/img/vehicleimages/<?php echo htmlentities($result-
>Vimage1);?>" class="img-responsive" alt="image" width="900" height="560"></div>
<div><img src="admin/img/vehicleimages/<?php echo htmlentities($result-
>Vimage2);?>" class="img-responsive" alt="image" width="900" height="560"></div>
<div><img src="admin/img/vehicleimages/<?php echo htmlentities($result-
>Vimage3);?>" class="img-responsive" alt="image" width="900" height="560"></div>
<div><img src="admin/img/vehicleimages/<?php echo htmlentities($result-
>Vimage4);?>" class="img-responsive" alt="image" width="900" height="560"></div>
<?php if($result->Vimage5=="")
{
} else {
?>
<div><img src="admin/img/vehicleimages/<?php echo htmlentities($result-
>Vimage5);?>" class="img-responsive" alt="image" width="900" height="560"></div>
<?php } ?>
</section>
<!--/Listing-Image-Slider-->
<!--Listing-detail-->
<section class="listing-detail">
<div class="container">
<div class="listing_detail_head row">
<div class="col-md-9">
52
<h2><?php echo htmlentities($result->BrandName);?> , <?php echo htmlentities($result-
>VehiclesTitle);?></h2>
</div>
<div class="col-md-3">
<div class="price_info">
<p>₹<?php echo htmlentities($result->PricePerDay);?> </p>Per Day
</div>
</div>
</div>
<div class="row">
<div class="col-md-9">
<div class="main_features">
<ul>
53
<div class="listing_detail_wrap">
<!-- Nav tabs -->
<ul class="nav nav-tabs gray-bg" role="tablist"> <li role="presentation"
class="active"><a href="#vehicleoverview " aria-controls="vehicle-overview"
role="tab" datatoggle="tab">Vehicle Overview </a></li>
54
<?php if($result->AirConditioner==1)
{
?>
<td><i class="fa fa-check" aria-hidden="true"></i></td> <?php } else { ?>
<td><i class="fa fa-close" aria-hidden="true"></i></td>
<?php } ?> </tr>
<tr>
<td>AntiLock Braking System</td>
<?php if($result->AntiLockBrakingSystem==1)
{
?>
<td><i class="fa fa-check" aria-hidden="true"></i></td> <?php } else {?>
<td><i class="fa fa-close" aria-hidden="true"></i></td>
<?php } ?>
</tr>
<tr>
<td>Power Steering</td>
<?php if($result->PowerSteering==1) {
?>
<td><i class="fa fa-check" aria-hidden="true"></i></td>
<?php } else { ?>
<td><i class="fa fa-close" aria-hidden="true"></i></td>
<?php } ?>
</tr>
<tr>
<td>Power Windows</td>
55
<?php if($result->PowerWindows==1)
{
?>
<td><i class="fa fa-check" aria-hidden="true"></i></td> <?php } else { ?>
<td><i class="fa fa-close" aria-hidden="true"></i></td>
<?php } ?>
</tr>
<tr>
<td>CD Player</td>
<?php if($result->CDPlayer==1)
{
?>
<td><i class="fa fa-check" aria-hidden="true"></i></td> <?php } else { ?>
<td><i class="fa fa-close" aria-hidden="true"></i></td>
<?php } ?>
</tr>
<tr>
<td>Leather Seats</td>
<?php if($result->LeatherSeats==1)
{
?>
<td><i class="fa fa-check" aria-hidden="true"></i></td>
<?php } else { ?>
<td><i class="fa fa-close" aria-hidden="true"></i></td>
<?php } ?>
</tr>
<tr>
56
<td>Central Locking</td>
<?php if($result->CentralLocking==1)
{
?>
<td><i class="fa fa-check" aria-hidden="true"></i></td> <?php } else { ?>
<td><i class="fa fa-close" aria-hidden="true"></i></td>
<?php } ?>
</tr>
<tr>
<td>Power Door Locks</td>
<?php if($result->PowerDoorLocks==1)
{
?>
<td><i class="fa fa-check" aria-hidden="true"></i></td> <?php } else { ?>
<td><i class="fa fa-close" aria-hidden="true"></i></td>
<?php } ?>
</tr>
<tr>
<td>Brake Assist</td>
<?php if($result->BrakeAssist==1)
{
?>
<td><i class="fa fa-check" aria-hidden="true"></i></td>
<?php } else { ?>
<td><i class="fa fa-close" aria-hidden="true"></i></td>
<?php } ?>
</tr>
<tr>
57
<td>Driver Airbag</td>
<?php if($result->DriverAirbag==1)
{
?>
<td><i class="fa fa-check" aria-hidden="true"></i></td> <?php } else { ?>
<td><i class="fa fa-close" aria-hidden="true"></i></td>
<?php } ?>
</tr>
<tr>
<td>Passenger Airbag</td>
<?php if($result->PassengerAirbag==1)
{
?>
<td><i class="fa fa-check" aria-hidden="true"></i></td> <?php } else {?>
<td><i class="fa fa-close" aria-hidden="true"></i></td>
<?php } ?>
</tr>
<tr>
<td>Crash Sensor</td>
<?php if($result->CrashSensor==1)
{
?>
<td><i class="fa fa-check" aria-hidden="true"></i></td>
<?php } else { ?>
<td><i class="fa fa-close" aria-hidden="true"></i></td>
<?php } ?>
</tr>
</tbody>
58
</table>
</div>
</div>
</div>
</div>
<?php }} ?>
</div>
<!--Side-Bar-->
<aside class="col-md-3">
<div class="share_vehicle">
<p>Share: <a href="#"><i class="fa fa-facebook-square" ariahidden="true"></i></a> <a
href="#"><i class="fa fa-twitter-square" ariahidden="true"></i></a> <a href="#"><i class="fa
fa- linkedin-square" ariahidden="true"></i></a> <a href="#"><i class="fa fa-google-plus-
square" ariahidden="true"></i></a> </p>
</div>
<div class="sidebar_widget">
<div class="widget_heading">
<h5><i class="fa fa-envelope" aria-hidden="true"></i>Book Now</h5>
</div>
<form method="post">
<div class="form-group">
<label>From Date:</label>
<input type="date" class="form-control" name="fromdate" placeholder="From Date"
required>
</div>
<div class="form-group">
<label>To Date:</label>
<input type="date" class="form-control" name="todate" placeholder="To Date" required>
59
</div>
<div class="form-group">
<textarea rows="4" class="form-control" name="message" placeholder="Message"
required></textarea>
</div>
<?php if($_SESSION['login'])
{?>
<div class="form-group">
<input type="submit" class="btn" name="submit" value="Book
Now">
</div>
<?php } else { ?>
<a href="#loginform" class="btn btn-xs uppercase" data-toggle="modal" datadismiss="modal">Login
For Book</a>
<?php } ?>
</form>
</div>
</aside>
<!--/Side-Bar-->
</div>
<div class="space-20"></div>
<div class="divider"></div>
<!--Similar-Cars-->
<div class="similar_cars">
<h3>Similar Cars</h3>
<div class="row">
<?php
$bid=$_SESSION['brndid'];
60
$sql="SELECT tblvehicles.VehiclesTitle,tblbrands.BrandName,tblvehicles.PricePerDay,tblvehic
les.FuelType,tblvehicles.ModelYear,tblvehicles.id,tblvehicles.SeatingCapacity,
tblvehicles.VehiclesOverview,tblvehicles.Vimage1 from tblvehicles join tblbrands on
tblbrands.id=tblvehicles.VehiclesBrand where tblvehicles.VehiclesBrand=:bid";
$query = $dbh -> prepare($sql);
$query->bindParam(':bid',$bid, PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1; if($query->rowCount() > 0)
{ foreach($results as $result)
{ ?>
<div class="col-md-3 grid_listing">
<div class="product-listing-m gray-bg">
<div class="product-listing-img"> <a href="vehicaldetails.php?vhid=<?php
echo htmlentities($result->id);?>"><img
src="admin/img/vehicleimages/<?php echo htmlentities($result->Vimage1);?>" class="img-
responsive" alt="image" /> </a>
</div>
<div class="product-listing-content">
<ul class="features_list">
61
</ul>
</div>
</div>
</div>
<?php }} ?>
</div>
</div>
<!--/Similar-Cars-->
</div>
</section>
<!--/Listing-detail-->
<!--Footer -->
<?php include('includes/footer.php');?>
<!-- /Footer-->
<!--Back to top-->
<div id="back-top" class="back-top"> <a href="#top"><i class="fa fa-angle-up" aria-
hidden="true"></i> </a> </div>
<!--/Back to top-->
<!--Login-Form -->
<?php include('includes/login.php');?>
<!--/Login-Form -->
<!--Register-Form -->
<?php include('includes/registration.php');?>
<!--/Register-Form -->
62
<!--Forgot-password-Form -->
<?php include('includes/forgotpassword.php');?>
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/bootstrap.min.js"></script>
<script src="assets/js/interface.js"></script>
<script src="assets/switcher/js/switcher.js"></script>
<script src="assets/js/bootstrap-slider.min.js"></script>
<script src="assets/js/slick.min.js"></script>
<script src="assets/js/owl.carousel.min.js"></script>
</body>
</html>
63
$msg="Testimonail submitted successfully";
} else
{
$error="Something went wrong. Please try again";
}
}
?>
<!DOCTYPE HTML>
<html lang="en">
<head>
64
<link rel="alternate stylesheet" type="text/css" href="assets/switcher/css/pink.css" title="pink"
media="all" />
<link rel="alternate stylesheet" type="text/css" href="assets/switcher/css/green.css" title="green"
media="all" />
<link rel="alternate stylesheet" type="text/css"
href="assets/switcher/css/purple.css" title="purple" media="all" />
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="assets/images/favicon-icon/apple-
touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="assets/images/favicon-icon/apple-
touch-icon-114-precomposed.html">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="assets/images/favicon-icon/apple-
touch-icon-72-precomposed.png"> <link rel="apple-touch-icon-precomposed"
href="assets/images/faviconicon/apple-touch-icon-57-precomposed.png">
<link rel="shortcut icon" href="assets/images/favicon-icon/favicon.png"> <link
href="https://fonts.googleapis.com/css?family=Lato:300,400,700,900" rel="stylesheet"> <style>
.errorWrap { padding: 10px;
margin: 0 0 20px 0;
65
<!--Header-->
<?php include('includes/header.php');?>
<!-- /Header -->
<!--Page Header-->
<section class="page-header profile_page">
<div class="container">
<div class="page-header_wrap">
<div class="page-heading">
<h1>Post Testimonial</h1>
</div>
<ul class="coustom-breadcrumb">
<li><a href="#">Home</a></li>
<li>Post Testimonial</li>
</ul>
</div>
</div>
<!-- Dark Overlay-->
<div class="dark-overlay"></div>
</section>
<!-- /Page Header-->
<?php
$useremail=$_SESSION['login'];
$sql = "SELECT * from tblusers where EmailId=:useremail";
$query = $dbh -> prepare($sql);
$query -> bindParam(':useremail',$useremail, PDO::PARAM_STR);
$query->execute(); $results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1; if($query->rowCount() > 0)
{ foreach($results as $result)
{ ?>
<section class="user_profile inner_pages">
66
<div class="container">
<div class="user_profile_info gray-bg padding_4x4_40">
<div class="upload_user_logo"> <img src="assets/images/dealer-logo.jpg" alt="image">
</div>
<div class="dealer_info">
<h5><?php echo htmlentities($result->FullName);?></h5>
<p><?php echo htmlentities($result->Address);?><br>
<?php echo htmlentities($result->City);?> <?php echo htmlentities($result->Country);
}}?></p>
</div>
</div>
<div class="row">
<div class="col-md-3 col-sm-3">
<?php include('includes/sidebar.php');?>
<div class="col-md-6 col-sm-8">
<div class="profile_wrap">
<h5 class="uppercase underline">Post a Testimonial</h5>
<?php if($error){?><div class="errorWrap"><strong>ERROR</strong>:<?php echo
htmlentities($error); ?>
</div><?php } else if($msg){?><div class="succWrap"><strong>SUCCESS</strong>:<?php
echo htmlentities($msg); ?> </div><?php }?>
<form method="post">
<div class="form-group">
<label class="control-label">Testimonail</label>
<textarea class="form-control white_bg" name="testimonial" rows="4"
required=""></textarea>
</div>
67
<div class="form-group">
<button type="submit" name="submit" class="btn">Save <span class="angle_arrow"><i
class="fa fa-angle-right" ariahidden="true"></i></span></button>
</div>
</form>
</div>
</div>
</div>
</div>
</section>
<!--/Profile-setting-->
<<!--Footer -->
<?php include('includes/footer.php');?>
<!-- /Footer-->
<!--Back to top-->
<div id="back-top" class="back-top"> <a href="#top"><i class="fa fa-angle-up" aria-
hidden="true"></i> </a> </div>
<!--/Back to top-->
<!--Login-Form -->
<?php include('includes/login.php');?>
<!--/Login-Form -->
<!--Register-Form -->
<?php include('includes/registration.php');?>
<!--/Register-Form -->
<!--Forgot-password-Form -->
<?php include('includes/forgotpassword.php');?>
68
<!--/Forgot-password-Form -->
</body>
</html>
<?php } ?>
69
11.FUTURE ENHANCEMENT
Enhanced User Interface (UI) and User Experience (UX): Continuously improving
the portal's design and usability can significantly impact customer satisfaction. This
includes intuitive navigation, clear call-to-action buttons, and responsive design for
mobile users.
Seamless Digital Check-In and Check-Out: Integrate digital solutions that streamline
the rental process, reducing paperwork and minimizing the time spent at rental
counters.
70
12.BIBLIOGRAPHY
71
13.CONCLUSION
The car rental management portal is a game-changer, offering improved efficiency through
automation, enhanced customer experience with user-friendly interfaces, real-time updates,
advancedanalytics, and secure online payment integration. It reduces errors, aids inventory
management, and ensures data security. With mobile compatibility and scalability, it caters to
a wider audience, making it an indispensable tool for car rental businesses to optimize
operationsand drive customer satisfaction and revenue growth.
72
73