ONLINE CAR RENTAL SYSTEM 1.1 Introduction This project is designed so as to be used by Car Rental Company specializing in renting cars to customers. It is an online system through which customers can view available cars, register, view profile and book car.
1.2 Reason for the Project The advancem advancement ent in Inform Informati ation on Technol echnology ogy and intern internet et penetr penetrati ation on has greatl greatly y enhanced various business processes and communication between companies services provider! and their customers of which car rental industry is not left out. This "#Car Rental $ystem is developed to provide the following services% •
"nhance &usiness 'rocesses% To be able to use internet technology to project the rental company to the global world instead of limiting their services to their local
•
domain alone, thus increase their return on investment R(I!. (nline )ehicle Reservation% * tools through which customers can reserve available
•
cars online prior to their e+pected pick#up date or time. Customers registration% * registration registration portal to hold customers cu stomers details, monitor their
•
transaction and used same to offer better and improve services to them. -roup bookings% *llows the customer to book space for a group in the case of weddings or corporate meetings "vent management!.
1
1. Pro!"e# State#ent * car rental is a vehicle that can be used temporarily for a fee during a specified period. -etting a rental car helps people get around despite the fact they do not have access to their own personal vehicle or dont own a vehicle at all. The individual who needs a car must contact a rental car company and contract out for a vehicle. This system increases customer retention and simplify vehicle and staff management.
1.$ Ai#s % O!jecti&es •
To produce a web#based system that allow customer to register and reserve car online
•
and for the company to effectively manage their car rental business. To ease customers task whenever they need to rent a car.
1.' Sco(e This project traverses a lot of areas ranging from business concept to computing field, and re/uired to perform several researches to be able to achieve the project objectives. The area covers include% •
Car rental industry% This includes study on how the car rental business is being done,
• •
process involved and opportunity that e+ist for improvement. '0' Technology Technology used for the development of the application. -eneral customers as well as the companys staff will be able to use the system
•
effectively. 1eb#platform means that the system will be available for access 2345 e+cept when there is a temporary server issue which is e+pected to be minimal.
CAR RENTAL SER)ICES 2
2.1 *o+ Car Renta" Ser&ices ,or- * car rental is a vehicle that can be used temporarily for a period of time with a fee. Renting a car assists people to get around even when they do not have access to their own personal vehicle or dont own a vehicle at all. The individual who want to rent a car must first contact the car rental company for the desire vehicle. This can be done online. *t this point, this person has to supply some information such as6 a s6 dates of rental, and type of car. *fter these details are worked out, the individual renting the car must present a valid Identification Card. 7ost companies throughout the industry make a profit based of the type of cars that are rented. rented. The rental rental cars cars are categor categorize ized d into into economy economy,, compact compact,, compact compact premi premium, um, premium and lu+ury. *nd customers are free to choose any car of their choice based on their purse and availability of such car at the time of reservation.
2.2 enefits of On"ine Car Renta" Ser&ices • • •
• •
This online car rental solution is fully functional and fle+ible. It is very easy to use. This online car rental system helps in back office administration by streamlining and standardizing the procedures. It saves a lot of time, money and labour. "co#friendly% The monitoring of the vehicle activity and the overall business becomes
•
easy and includes the least of paper work. The software acts as an office that is open 2345. It increases the efficiency of the management at offering /uality services to the
•
customers. It provides custom features development and support with the software.
•
/0NCTIONAL AN NON/0NCTIONAL RE30IREMENTS
.1
/unctiona" Re4uire#ents
3
Re/uirement analysis is a software engineering techni/ue that is composed of the various tasks that determine the needs or conditions that are to be met for a new or altered product, taking into consideration the possible conflicting re/uirements of the various users. 8unctional re/uirements are those re/uirements that are used to illustrate the internal working nature of the system, the description of the system, and e+planation of each subsystem. It consists of what task the system should perform, the processes involved, which data should the system holds and the interfaces with the user. The functional re/uirements identified are% a. Customers registration% The system should allow new users to register online and generate membership card. b. (nline reservation of cars% Customers should be able to use the system to make booking and online reservation. c. *utomatic update to database once reservation is made or new customer registered% 1henever theres new reservation or new registration, the system should be able update the database without any additional efforts from the admin. d. 8eedbacks to customers% It should provide means for customers to leave feedback.
.2Non/unctiona" Re4uire#ents It describes aspects of the system that are concerned with how the system provides the functional re/uirements. They are% a. $ecurity5 The subsystem should provide a high level of security and integrity of the data held by the system, only authorized personnel of the company can gain access to the companys secured page on the system6 and only users with valid password and username can login to view users page.
4
b. 'erformance and Response time% The system should have high performance rate when e+ecuting users input and should be able to provide feedback or response within a short time span usually 9: seconds for highly complicated task and 2: to 29 seconds for less complicated task. c. "rror handling% "rror should be considerably minimized and an appropriate error message that guides the user to recover from an error should be provided. )alidation of users input is highly essential. *lso the standard time taken to recover from an error should be ;9 to 2: seconds. d. *vailability% This system should always be available for access at 23 hours, 5 days a week. *lso in the occurrence of any major system malfunctioning, the system should be available in ; to 2 working days, so that the business process is not severely affected. e. "ase of use% Considered the level of knowledge possessed by the users of this system, a simple but /uality user interface should be developed to make it easy to understand and re/uired less training.
ATA /LO, IA6RAMS $.1 ata /"o+ ia7ra# 8/9 *
5
8igur
EMAIL FOR RESERVED CAR CAR RESERVED
RESERVE A CAR NEW REGISTRATION CUSTOMER
EMAIL FOR RESERVED CAR
ONLINE CAR RENTAL
ADD CUSTOMER
CAR RENTAL COMPANY
LOGIN REQUEST . AUTHENTICATION
SYSTEM
TRANSACTION REPORTS
REGISTRATION CONFIRMATION
e 3.; =evel : <8< of (nline Car Rental $ystem In this diagram, Customer and Car Rental Company are the two entity sets. 8unctions of Customer% • • • • • •
>ew Registration =ogin Re/uest Registration Confirmation by the $ystem Reserve Car Car Issued by the $ystem "mail received for Reserved Car
8unctions of Car Rental Company% • • •
*dd Customer $end "#7ails for Reserved Car )iew Transaction reports
6
RESPONS E TO FEEDBACK
RESPONSE TO FEEDBACK
CUSTOMER DB
CUSTOMER DETAILS
FEEDBACK LOGIN DETAILS
SIGNED IN
STAFF
SELECT DETAILS FOR CAR RESERVATION
LOGIN
REGISTER AS NEW MEMBER
LOGIN
AVAILABLE CARS
LOGIN DETAILS
STAFF DB CUSTOMER DB REPORT
CUSTOMER CHOOSE CAR
PROCESS RENTAL
STAFF DB REPORT
VIEW REPORT
SIGNED IN
CAR DB REPORT
RETURN CAR
MAKE PAYMENT
ADMIN
ADD/UPDATE CAR DETAILS
CAR RESERVED
FEEDBACK
CAR DB
8igure 3.2 =evel ; <8< of (nline Car Rental $ystem
0SECASE IA6RAMS '.1 Actor and 0se Case escri(tion *ctor and use case description shows the detail description of interaction between the actors and their use cases. The description enables to have a proper understanding of how actor interacts with the system through their use cases. 7
Actor
0se Case
0se Case escri(tion
This use case describes the activities of the customer Register
as
member
to register online and become a member. Customers details are re/uired as part of the registration. =ogin detail is automatically sent to the customer after successful registration. This use case enable customer to search and make reservation. >on#register customer will be directed
7ake Customer
to
reservation
register
before
their reservation can
be
confirmed. >otification is automatically send to the customer after the task is completed. This use case describes the event of customer returning the car borrowed, the use case e+tends
Return car
?process rental? use case from the staff actor.
-ive feedback
This use case is used by the customer to provide feedbacks4comment
to
the
company6
a
confirmation notification will be send to the customer once a feedback has been submitted. This use case is used by the staff to add new car to *dd new car $taff
@pdate details
the companys fleet database. $taff will need to login to activate this use case.
car This use case is used by the staff to edit and modify car
details
whenever
there
is
new
renewal
insurance, road ta+!. It allows the company to keep up#to#date record of their fleet. Reply
to This use case describes the event by which staff
customers
sends reply to customers earlier feedback. It
feedback
depends on Agive feedback use case from the
8
customer. 'rocess rental
This use case described the event by which staff updates the system when customer pick up or when returning car.
*dd new staff
This use case describes the event by which *dmin add new staff detail to the companys staff database. It is invoke whenever a new staff join the company.
*dmin )iew report
This use case is used by the *dmin to view transaction report.
Table 9.; *ctors and @se Case
'.2 0se Case ia7ra#
9
R%i#t%& # m%m,%&
Add n%0 *& St!!
C"#t$m%&
M-% &%#%&ti$n
U'dt% *& d%ti(# P&$*%## &%nt(
11%2t%nd33
R%t"&n *& Gi% !%%d,*-/
*$mm%nt#
R%'() t$ *"#t$m%&+# !%%d,* Admin
Vi%0 &%'$&t
8igure 9.;% "#Car Rental $ystem Buse case
10
'. 0seCase e(endenc: ia7ra#
D%'%nd# $n
R%i#t%& # M%m,%&
Add n%0 *&
U'dt% *& d%ti(#
Pi*- *& M-% &%#%&ti$n
11%2t%nd33
11%2t%nd33
P&$*%## &%nt(
R%t"&n *& 11%2t%nd33
Lt% &%t"&n
11%2t%nd33
R%'() t$ *"#t$m%&+# !%%d,*-
E&() &%t"&n
D%'%nd# $n
Gi% !%%d,*-/ *$mm%nt# 11in*("d%33
Vi%0 &%'$&t
Vi%0 *"# t$m%&+# 't&$n%
11in*("d%33
Vi%0 t&n#*ti$n &%'$&t
8igure 9.2% @se Case
11
ACTI)ITY IA6RAMS ;.1 Acti&it: ia7ra# *ctivity diagrams graphically represent the se/uential business and operational workflows of a system. It is a dynamic diagram that shows the activity and the event that causes the object to be in the particular state. The workflows from activity diagram will serve as guide for system navigation in the final design phase of the system. ;.1.1 Me#!er Re7istration C"#t$m%&
E4C& R%nt( S)#t%m
St&t
Ent%& d%ti(#
7Y%#8
Ent%& "#%&nm% nd '##0$&d
A**%'t t%&m# 6 *$nditi$n#
7N$8 U#%&nm% %2i#t5
C$n!i&m nd #",mit Di#'() *"#t$m%&+# 0%(*$m% #*&%%n
S%nd %mi( *$n!i&mti$n
End
8igure D.;% Register as member
12
;.1.2 Profi"e Modification
C"#t$m%&
E4C& R%nt( S)#t%m
St&t
7N$8
L$in
V(id5
Nit% t$ Edit P&$!i(%
7Y%#8
M$di!) )$"& '&$!i(%
C$n!i&m nd #",mit
U'dt% dt,#%
S%nd *$n!i&mti$n n$ti!i*ti$n
L$ $"t
End
8igure D.2% 7odify profile
13
;.1. Reser&ation of Car
C"#t$m%&
E4C& R%nt( S)#t%m
St&t
C9$$#% 'i*-"' ($*ti$n
C9$$#% 'i*- "' dt% nd tim%
C9$$#% &%t"&n ($*ti$n
C9$$#% &%t"&n dt% nd tim%
C9$$#% %9i*(% *(##
Di#'() i(,(% *
C9$$#% !&$m i(,(% *& 7N$8
M%m,%&5 L$in
R%i#t%& 7N$8 V(id5 7Y%#8 m%&% C$n!i&m
R%di&%*t t$ ')m%nt t%0) S%nd *$n!i&mti$n
End
8igure D.E% 7ake Reservation
14
;.1.$ Custo#er /eed!ac-
C"#t$m%&
E4C& R%nt( S)#t%m
St&t
Ent%& )$"& d%ti(#
Ent%& )$"& m%##%/&%m&-
S",mit !%%d,*-
S%nd n$ti!i*ti$n
End
8igure D.3% -ive feedback4comment
15
;.1.' Pa:#ent of Car Rent
St!! St&t
P&$id% m%m,%& id
C9%*- &%nt( d%ti( 7Y%#8
O%&d"%5
7N$8
P) (t% *9&%# M%&%
C$n!i&m &%t"&n U'dt% dt,#%
End
8igure D.9% Rent a Car
16
;.1.; Addin7 a Ne+ Car
St!!
E4C& R%nt( S)#t%m
L$in
7N$8
L$in
V(id5
7Y%#8
Ent%& *& d%ti(#
Add t$ in%nt$&)
U'dt% #tt"#
End
8igure D.D% *dd a >ew Car
17
;.1.< )ie+ Re(ort
Admin
E4C& R%nt( S)#t%m
St&t
L$in 7N$8 V(id5 7Y%#8
S'%*i!) &%'$&t t$ i%0
C$n!i&m nd #",mit
R%t&i%% &%'$&t
End
8igure D.5% )iew report
18
SE30ENCE IA6RAMS <.1 Se4uence ia7ra# $e/uence diagrams are used to demonstrate the behavior of objects in a use case by describing the objects and the messages they pass. It provides a graphical representation of object interactions over time. $e/uence diagrams show an actor, the objects and components they interact with in the e+ecution of a use case. (ne se/uence diagram represents a single @se Case scenario or events. $e/uence diagrams show the flow of messages from one object to another, and as such correspond to the methods and events supported by an object.
<.1.1 Me#!er Re7istration
C"#t$m%&:O(
Int%&!*%:;&%/ <<=;
C$nt&$(:*<<>
Ent%& d%ti(# Ent%& "#%&nm% C9%*- "#%&nm% Ent%& '##0$&d R%d nd **%'t t%&m# C$n!i&m nd S",mit
V(idt% &%/i#t&ti$n U'dt% dt,#%
8igure 5.;% Register as member
<.1.2 Reser&ation of Car
19
C"#t$m%& Dt,#%:;d, <=;
C"#t$m%&:O(
C$nt&$(:*<<>
Int%&!*%:i<<
C&Dt,#%:;d , <<=;
C"#tDt,#%:; Dt =;
P)m%nt:;VISA *&d;
C9$$#% 'i*- "' ($*ti$n C9$$#% 'i*- "' dt% nd tim% C9$$#% &%t"&n ($*ti$n C9$$#% &%t"&n dt% nd tim% C9$$#% .%9i*(% *(## Di#'() .i(,(% * L$in/&%i#t%& P## t$ *$nt&$(
C9%*- "#%&nm% nd '##0$&d
S9$0 *"#$tm%& in!$
C$n!i&m nd S",mit
R%di&%*t t$ ')m%nt t%0)
Ent%& ')m%nt d%ti( P&$*%## ')m%nt
8igure 5.2% 7ake reservation
<.1. Custo#er /eed!ac-
F%%d,*'%:i<<=
C"#t$m%&:$(
S)#t%m:;#)# <=;
Ent%& d%ti(#
Ent%& !%%d,*- m%##% C$n!i&m nd #",mit A**%'t !%%d,* Add t$ dt,#% S%nd *$n!i&mti$n
8igure 5.E% -ive feedback
<.1.$ Addin7 a Ne+ Car 20
Dt,#%:;d, <<=;
8i N%0 C& '%: P<<=
C$nt&$(:Admin Hnd(%&
#t!!:$9n
Dt,#%:;d, <=;
L$in P## t$ *$nt&$(
C9%*- (idit)
'&$id% dmin '% Ent%& n%0 *& d%ti(# C$n!i&m nd #",mit
P## t$ *$nt&$( Add t$ dt,#%
L$ $"t C($#% #%##i$n
gure 5.3% *dd new car
<.1.' /eed!ac- Res(onse St!!:$9n
C$nt&$(:F%%d Hnd(%&
Int%&!*%:i<<=
Dt,#%:;d, <=;
L$in C9%*- (idit) G%t #t!! in!$ S%(%*t !%%d,*Di#'() !%%d,*R%#'$nd t$ !%%d,*-
L$ $"t End #%##i$n
8igure 5.9% Respond to feedback <.1.; Return Car and Chec- Renta" etai"s 21
Int%&!*%:i<<= C"#t$m%&:$(
St!!:$9n
Dt,#%:;d, <=;
P&$id% m%m,%& id
C9%*- &%nt( d%ti(# C$n!i&m i! $%&d"% P&$*%## &%nt( U'dt% dt,#%
8igure 5.D% Return car
<.1.< )ie+ Re(ort
R%'$&t C$nt&$(: *<<>
R%'$&t '%: P<<
Admin:K,i&
L$in C9%*- (idit)
S'%*i!) &%'$&t R%t&i%% &%'$&t L$ $"t End #%##i$n
8igure 5.5% )iew report
22
Dt,#%:;d, <=;
CLASS IA6RAM =.1 C"ass ia7ra# The class diagram is the main building block, a number of classes are identified and grouped together in a class diagram which helps to determine the statically relations between those objects.
A"t$mti$n Di#tn*% *9&t
provides = =..
4 #$"&*% : #t&in 4 d%#tinti$n : =
notify alert
=
4 nm% : #t&in %t ? '&$id% ? (%&t ? n$ti!) ?
%t ? '&$id% ?
=.. 4 id : int 4 *"#tNm% : #t&in 4 *"#tEmi( : #t&in
= notify =..
R%#%&ti$n
C"#t$m%&
4 &id : int 4 'i*-dt% : dt% 4 &%t"&ndt% : dt% 4 'i*-($* : #t&in 4 V%9i*(%C(## : #t&in
4 "#%&Id : #t&in 4 *"#tNm% : #t&in 4 *"#Add& : #t&in 4 m$,i(% : int 4 %mi( : #t&in
makes =..
=..
=..
&%#%&% ? #%&*9?
=.. gives
rent
=
=.. 4 id : int 4 &%tdt% : dt%
4 id : int 4 m$"nt : d$",(% 4 *"#tNm% : #t&in ') ? *$n!i&m ?
= dd*& ? m$di!)In!$ ? =
=..
C&
add = Admin
4 P(t%N$ : #t&in 4 C&Nm% : #t&in 4 *&T)'% : #t&in 4 &%nt : d$",(%
4 Id : #t&in 4 nm% : #t&in
dd ? m$di!) ? &%#%&% ?
R%t"&n
=..
add
=..
=
=..
=
4 #id : *9& 4 #nm% : #t&in 4 '$#iti$n : #t&in 4 m$,i(% : int
=..
=.. makes
P)m%nt
St!!
#%nd ? &%#'$nd ?
&%i#t%& ? ($in ? &%#%&ti$n ?
makes
respond to
F%%d,*-
dd ? m$di!) ? i%0 ? =
process
View
=.. "'dt% ?
E&() &%t"&n
*$n!i&m ?
R%'$&t
Lt% &%t"&n 4 (t%C9&% : d$",(% ') ? *$n!i&m ?
4 id : int 4 dt% : dt% 4 tit(% : #t&in %n%&t% ? '&int ? #% ?
8igure F.; Class
23
=..
INTRO0CTION O/ TEC*NOLO6IES 0SE IN PRO>ECT ?.1 A!out P*P P*P5 *:(erte@t Pre(rocessor is a widely used, general#purpose scripting language
that was originally designed for web development to produce dynamic web pages. 8or this purpose, '0' code is embedded into the 0T7= source document and interpreted by a web server with a '0' processor module, which generates the web page document. *s a general#purpose programming language, '0' code is processed by an interpreter application in command#line mode performing desired operating system operations and producing program output on its standard output channel. It may also function as a graphical application. '0' is available as a processor for most modern web servers and as standalone interpreter on most operating systems and computing platforms. '0' was originally created by Rasmus =erdorf in ;GG9 and has been in continuous development ever since. The main implementation of '0' is now produced by the '0' -roup and serves as the de facto standard for '0' as there is no formal specification. '0' is free software released under the '0' =icense. '0' is a general#purpose scripting language that is especially suited to server#side web development where '0' generally runs on a web server. *ny '0' code in a re/uested file is e+ecuted by the '0' runtime, usually to create dynamic web page content. It can also be used for command#line scripting and client#side -@I applications. '0' can be deployed on most web servers, many operating systems and platforms, and can be used with many relational database management systems. It is available free of charge, and the '0' -roup provides the complete source code for users to build, customize and e+tend for their own use. (riginally designed to create dynamic web pages, '0' now focuses mainly on server# side scripting, and it is similar to other server#side scripting languages that provide dynamic content from a web server to a client, such as 7icrosofts *ctive $erver 'ages, 24
$un 7icrosystems Hava $erver 'ages, and modperl. '0' has also attracted the development of many frameworks that provide building blocks and a design structure to promote rapid application development R*
?.2 P*P S:nta@5 0T7= and '0' code is written on the same page, and to distinguish '0' code from 0T7=, the '0' code is enclosed within KL php LM Tags. 8or e+ample% KhtmlM KheadMKtitleMphp basicsK4titleMK4headM KbodyM Kh2M0"==(K4h;M KLphp echo ?hello?6 LM K4bodyM K4htmlM In the above e+ample '0' code is embedded within 0T7=. In this way '0' and 0T7= coding is combined on the same page. $ince '0' is a server side scripting language, the '0' coding cannot be seen by the end user through view source option, due to this feature '0' is very secure. '0' is a parsed language6 therefore '0' environment is necessary at the server for running '0' scripts. 25
?. ,or-in7 of P*P5
8igure G.; 1orking of '0'
1hen a client re/uests web page containing '0' code from the server, then the re/uested '0' pages are parsed under '0' environment and interaction with database is made if re/uired. *fter server side processing, the resulting 0T7= pages are passed to client and displayed on the browser. In this way the working of php is complete.
26
?.$ Connectin7 P*P A(("ication to M:S3L ata!ase ;! 7ake a connection variable to the database% NconO mys/lconnect ?localhost?,?servername?,?password?!6 0ere Ncon is a connection variable to database. 2! $elect a database over that connection variable%
NdbOmys/lselectdb?databasename?,Ncon!6
E! 'repare a s/l /uery to e+ecute% N/ryO $elect P from abc6 3! Run the s/l /uery%
NresultOmys/l/ueryN/ry!6
9! Iterate over the result% whileNrow O mys/lfetcharrayNresult!! Q 44some logic
?.' Introduction to M:S3L5 27
M:S3L is a relational database management system R<&7$! that runs as a server
providing multi#user access to a number of databases. 7y$S= is officially pronounced ?7y $#S#=?!, but is often pronounced ?7y $e/uel?!. It is named for original developer 7ichael 1ideniuss daughter 7y. The 7y$S= development project has made its source code available under the terms of the ->@ -eneral 'ublic =icense, as well as under a variety of proprietary agreements. 7y$S= is owned and sponsored by a single for#profit firm, the $wedish company 7y$S= *&, now owned by $un 7icrosystems, a subsidiary of (racle Corporation. 7y$S= code uses C and C. The $S= parser uses yacc and a home#brewed le+er, s/lle+.cc. 7y$S= works on many different system platforms, including *IU, &$et&$<, >ovell >et1are, (pen&$<, (pen$olaris, eCom$tation, ($42 1arp, S>U, IRIU, $olaris, $ymbian, $un($, $C( (pen$erver, $C( @ni+1are, $anos, TruD3 and 7icrosoft 1indows. * port of 7y$S= to (pen)7$ also e+ists. *ll major programming languages with language#specific *'Is include =ibraries for accessing 7y$S= database. In addition, an (<&C interface called 7y(<&C allows additional programming languages that support the (<&C interface to communicate with a 7y$S= database, such as *$' or Cold8usion. The 0T$S= # @R= based /uery method also ships with 7y$S= adapter allowing direct interaction with 7y$S= database from any web client via structured @R=s. The 7y$S= server and official libraries are mostly implemented in *>$I C4*>$I C.
?.; Introduction to APAC*E SER)ER5
28
In this project apache server is used to parse and e+ecute '0' pages, before deploying websites on the server, the website should be tested at the developer side to get a feel of how the website will work on actual server. Therefore apache server is like a local server on the developer side, apache server should be informed about the environment on which it should work. In our project apache server is configured to work with '0', in this way all the '0' pages are parsed and e+ecuted by the server. 1hen apache is installed on the system, then its services is controlled by apache service monitor.
8igure G.2 *'*C0" $ervice 7onitor
29
CONCL0SION
Car rental business has emerged with a new goodies compared to the past e+perience where every activity concerning car rental business is limited to a physical location only. "ven though the physical location has not been totally eradicated6 the nature of functions and how these functions are achieved has been reshaped by the power of internet. >owadays, customers can reserve cars online, rent car online, and have the car brought to their door step once the customer is a registered member or go to the office to pick the car. The web based car rental system has offered an advantage to both customers as well as Car Rental Company to efficiently and effectively manage the business and satisfies customers need at the click of a button.
30