Car Rental System Thesis by Yasir
Car Rental System Thesis by Yasir
Car Rental System Thesis by Yasir
By
BY
YASIR ADO HASSAN
BU/18A/IT/3041
TO
THE DEPARTMENT OF COMPUTER SCIENCE
FACULTY OF COMPUTING AND APPLIED SCIENCE
BAZE UNIVERSITY, ABUJA
September, 2020
DECLARATION
This is to certify that this Report entitled “DESIGN AND DEVELOPMENT OF CAR RENTAL
MANAGEMENT SYSTEM ”, which is submitted by YASIR ADO HASSAN in partial
fulfilment of the requirement for the award of degree for B.Sc. in Software Engineering to the
Department of Computer Science, Baze University Abuja, Nigeria, comprises of only my
original work and due acknowledgement has been made in the text to all other materials used.
APPROVED BY ……………………
Dean
Faculty of Computing & Applied Science
CERTIFICATION
This is to certify that this Report entitled DESIGN AND DEVELOPMENT OF CAR RENTAL
MANAGEMENT SYSTEM, which is submitted by YASIR ADO HASSAN in partial fulfilment
of the requirement for the award of degree for B.Sc. in Software Engineering to the Department
of Computer Science, Baze University Abuja, Nigeria is a record of the candidate’s own work
carried out by the candidate under my/our supervision. The matter embodied in this thesis is
original and has not been submitted for the award of any other degree.
ii
APPROVAL
This is to certify that the research work, CAR RENTAL MANAGEMENT SYSTEM and the
subsequent preparation by YASIR ADO HASSAN with BU/18A/IT/3041 has been approved by
the Department of Computer Science, Faculty of Computing and Applied Science, Baze
University, Abuja, Nigeria.
By
2nf Supervisor
External Examiner
iii
DEDICATION
This work is dedicated to God Almighty, my strong pillar, my source of inspiration, wisdom,
knowledge and understanding. He has been the source of my strength throughout this program.
This work is also dedicated to my parents and my lecturers.
Thank you, my love for you all can never be quantified. God bless you.
iv
ACKNOWLEDGEMENTS
All form of praise and thanks is due to Allah, the creator of mankind, the most merciful and
gracious for his blessings, protections, courage and guidance.
I would like to acknowledge and thank Prof. Sylvanus Ehikioya, who stood by me and made sure
I did everything regarding this project efficiently and effectively, my gratitude to him is
unparalleled. I also thank my second supervisor Dr. Samuel Ubaru and my parents for their
immense support, guidance and encouragement to make sure that I complete this program
successfully. I would also like to acknowledge my lecturers and all who have contributed to this
point in the success of my academic pursuit.
ABSTRACT
This application presents a data management system for a car rental company. This enables the
administrator to keep track of all the customers information. This system increases customer
retention and simplify vehicle and customers management in efficient way. The car rental
management system has a very user-friendly interface. Thus, the users will feel very easy
to work on it. By using this system admin can manage their rental, bookings, customer issues
and vehicle issues etc. The car rental information can be added to the system, or existing
information can be edited or deleted by the administrator. The transaction reports of the car
rental system can be retrieved by the administrator, when its required. Thus, there is no delay in
the availability of any car information, when ever needed the car rental information can be
captured very quickly and easily.
vi
Table of Contents
ABSTRACT ..........................................................................................................................................VI
CHAPTER 1: INTRODUCTION ......................................................................................................... 1
OVERVIEW .......................................................................................................................................... 1
BACKGROUND AND MOTIVATION ........................................................................................................ 1
STATEMENT OF THE PROBLEM ............................................................................................................. 2
AIM AND OBJECTIVES.......................................................................................................................... 3
SIGNIFICANCE OF THE PROJECT ........................................................................................................... 3
PROJECT RISKS ASSESSMENT .............................................................................................................. 3
SCOPE/PROJECT ORGANIZATION.......................................................................................................... 4
CHAPTER 2: LITERATURE REVIEW.............................................................................................. 6
INTRODUCTION.................................................................................................................................... 6
HISTORICAL OVERVIEW ...................................................................................................................... 6
RELATED WORK .................................................................................................................................. 7
SUMMARY ......................................................................................................................................... 21
CHAPTER 3: REQUIREMENTS ANALYSIS AND DESIGN ......................................................... 22
OVERVIEW ........................................................................................................................................ 22
PROPOSED METHODOLOGY ............................................................................................................... 22
APPROACH TO CHOSEN METHODOLOGY/METHODS ........................................................................... 23
TOOLS AND TECHNIQUES................................................................................................................... 23
REQUIREMENT ANALYSIS .................................................................................................................. 24
REQUIREMENT SPECIFICATIONS......................................................................................................... 24
Functional Requirement Specifications.......................................................................................... 24
Non-Functional Requirement Specifications .................................................................................. 25
SYSTEM DESIGN ................................................................................................................................ 25
Use case Diagram ......................................................................................................................... 25
Class Diagram .............................................................................................................................. 29
Database Design ........................................................................................................................... 30
Dataflow Diagram (DFD) ............................................................................................................. 31
Activity Diagram ........................................................................................................................... 33
Application Architecture ............................................................................................................... 38
SUMMARY ......................................................................................................................................... 40
CHAPTER 4: IMPLEMENTATION AND TESTING ...................................................................... 41
OVERVIEW ........................................................................................................................................ 41
DEVELOPMENT TOOLS AND TECHNOLOGIES ....................................................................................... 41
IMPLEMENTATION PROBLEMS............................................................................................................ 41
TESTING ............................................................................................................................................ 46
Test Plans ..................................................................................................................................... 46
Test Traceability Matrix ................................................................................................................ 48
Test Report Summary .................................................................................................................... 48
USE GUIDE ........................................................................................................................................ 49
SUMMARY ......................................................................................................................................... 49
CHAPTER 5: DISCUSSION, CONCLUSION, AND RECOMMENDATIONS............................... 50
OVERVIEW ........................................................................................................................................ 50
OBJECTIVE ASSESSMENT ................................................................................................................... 50
vii
viii
LIST OF TABLES
ix
LIST OF FIGURES
LIST OF ABBREVIATIONS
IT Information Technology
xi
CHAPTER 1: INTRODUCTION
Overview
As the internet improves the life of people, it also gives access to things that were inaccessible
before. The internet is one of the most important tools of communication. The world has become
a place where there is a lot of technological development which brings the result of almost every
single thing has been transformed into computerized form. These days, individual activities have
been changed into work done by information systems. One of which is the primary objective of
this project which is about car rental management system. Renting car system exists in the previous
years where people rent cars for their own reasons. Car rentals is basic to numerous individuals’
arrangement to travel or move from one place to another for business purposes, tour, and visit
occasions. Thus, car rental is extremely useful.
My car rental management system is a web-based system for an organization that rents out cars.
This system empowers the organization to make their services accessible to the public through the
web and furthermore keep records about their services.
RISK PREVENTION
Scope/Project Organization
The aim of this project is to develop a web-based car rental management system. At this stage of
development, the project would be launched using IIS Express web server which already comes
along with Visual Studio.
The remaining part of this project is organized as follows:
Chapter Two contains literature review; historical overview of the system and some related
works and incredible achievements made by other researchers and entrepreneurs towards
enhancing car rental company and the current implemented functionalities which will help in
deciding what to add, remove or which part of the system to enhance to reflect the modern way
of carrying out those processes.
Chapter Three primarily covers the analysis and design of the system, which are noted after
intensively and carefully chosen the development methodology and how the methodology would
be approached. In the analysis part, combination of data gathering techniques such as interview
and observation were used to gather the data, followed by the modelling that depicts the logical
model of the system and the subsequent design that shows the physical design of the system.
Chapter Four comprises the implementation of the system, the programming language used, test
cases i.e. the functionalities tested and some errors encountered during the development, those
that are resolved and those that are not.
Finally, Chapter Five defines the project evaluation, conclusion, further studies as well as
recommendation. Evaluation are literally the assessment of the project with respect to its
objectives and subjective, followed the expected further studies then at the end the conclusion.
Historical Overview
A car rental is a company that rents automobiles for short periods of time, generally ranging from
a few hours to a few weeks. Car rental agencies primarily serve people who require a temporary
vehicle, for example, those who do not own their own car, travelers who are out of town, or owners
of damaged or destroyed vehicles who are awaiting repair or insurance compensation.
The earliest known example of cars being offered for rent dates back to 1906 [1]. The German
company Sixt was established in 1912 under the name Sixt Autofahrten und Selbstfahrer (Sixt Car
Cruises and Self Drivers) [2]. Joe Saunders of Omaha, Nebraska first started with only one
borrowed Model T Ford in 1916, but by 1917, his Ford Livery Company was renting out 18 Model
Ts at 10 cents per mile. The company name became Saunders Drive-It-Yourself System and
then Saunders System. By 1926, Saunders had expanded to 56 cities. Saunders' company was
bought by Avis in 1955 [3]. An early competitor to Saunders was Walter L. Jacobs, whose
Chicago-based Rent-a-Car opened in 1918 with twelve Ford Model T [4]. The company was
bought in 1923 by John Hertz. In Britain, car rental started with Godfrey Davis, established in
1920, and bought by Europcar in 1981. (Walter L. Jacobs, 88; Rent-a-Car Pioneer, 2015) The
sector expanded rapidly in the US; in 1926, the American Driveurself Association assembled over
1200 delegates in Chicago [1]. The growth in travel after World War II led to the establishment of
several well-known international companies, including National Car
Rental (1947), Europcar (1949), Enterprise Rent-A-Car (1957), Thrifty Rent A Car (1958),
and Budget Rent a Car (1958). (Walter L. Jacobs, 88; Rent-a-Car Pioneer, 2015)
Related Work
The existence of the internet and the World Wide Web in the mid-1980s and late-1980s
respectively resulted in an exceptional revolution that inspire provision of car rental related
services effectively and efficiently. Below are some related systems.
2.1.1 Car Rental System
The project is designed to help people utilize transport effectively [10]. In recent times cars have
become most convenient modes of transportation. Sheth, Jay [10] said “our car rental system helps
in making this an easier, hassle-free and enjoyable experience to acquire and use a car as per ones
needs”. A person can book a car specifically for his travel time, co-travelers and the nature of
travel. The rental system traverses from designing a database to understanding business concept
and above all to make this easy to adapt system for various travelling needs [10].
Sheth, Jay [10] used the following entities which made up the car rental system database:
• People
• Customers
• Agents
• Employees
• Car_details
• Car_bookings
• Extra_driver
• Location
• Insurance
• Bill_generate
• Payment
o The Car_bookings table keeps the records of the cars booked by the travelers at the specific
locations. The booked car is added to this table with its car id and itinerary id of the person
who booked the car.
o Extra_driver; This is a weak entity derived from the customers table which has customer id
as a foreign key which references to the customers table. This entity keeps the record of the
person who might drive the rented car with the customer. Driving license number will also
store of that person.
o Locations are either a car rental distribution center which holds rental cars waiting to be rented,
or an office where agents work. This is distinguished by attribute Type.
o Insurance table has Insurance Type as primary key which keeps record of insurance type. This
table has other entities like collision coverage which stores amount of Collison, Body coverage
will cover amount of body damage of car and medical coverage will cover medical issue with
customer in accidents.
o Bill table holds the bill for the customers. This table has bill number as primary key. Rent per
day and rented days are attributes for counting bill amount which shows amount customer
needs to pay.
o Payment entity has payment id as primary key and bill number is foreign key to get bill details
from bill generate. And some other attributes like card number, expiry date, cvv are for the
customer who wants to pay by credit card.
Below is an Entity Relationship Diagram for the car rental system.
2.1.2 Development of Car Rental Management Information System for Avis Indonesia
The information system is designed to more closely manager’s needs and the system is set up as
major computer application area [9]. The Management Information System (MIS) as a computer-
based system makes information available to users with similar needs [11]. Manager used the
output information. The earlier studies shown that MIS could use to manage car rental, expected
to accelerate as well as archiving services to customers better and safer, making it easier when
required at any time [12] [13]. The online implementation of management information system
provides and supports the customers for reservations, assist management in knowing rental car
inventory at a specified time, to process transactions between branches car rental, transportation
processing, which supports satisfactory service to customers and support the company’s
operational process [14]. Web-based car rental information system increases the customers, and
help promotion [15]. The aim of the research is solving the problems that occur in Avis Indonesia.
The method that was used during the development of system was Software Development Life
Cycle (SDLC) which is a series of processes or phases that is used in designing, developing and
testing high quality software.
1. Planning Phase: This is the first phase for the researchers when developing an information
system which is to find the core problems and constraints that occur when running the
system, and to formulate goals and system development that focuses on online car rental
system. In prior planning stage, researchers observe and collect data in Avis Indonesia [14].
2. Analysis Phase: The researchers analyze the company’s management, workflow, look for
problems that occur within the company, car rental procedures and car rental data
processing. System analysis aim is to find the ideal form of application a researcher will
develop by taking into account of various issues and needs that exist on the system as
specified in system planning [9].
Figure 1. 3 System Comparison Analysis for Car Rental Management Information System
of Avis Indonesia
3. Design Phase: The researchers used several tools to create system design, i.e. process
design, flowchart for owner and area manager, and Data Flow Diagram (DFD) for the car
rental system.[18] [19] [20].
10
Figure 1. 4 Flow Chat for Car Rental Management Information System of Avis Indonesia
11
Database Design: after designing the system, researchers design the database using the tool
of Entity Relationship Diagram (ERD) that describes the relationship between entities that
exist in DFD [21] [22] [23].
12
13
14
2.1.3 Online Car Rental System with Web-Based and SMS Technology
Car rental or car hire agencies are private companies that provide short time leasing vehicles for a
specified time with a fee to their customers [17]. Osman, M., Muhd, Z., Nurzaid, Paidi, Z., &
Sedek, K. [17] show that In Malaysia, car rental service increasingly becomes the preferred option
for most people, especially among students in campuses and universities. This occurs because not
all students can afford having their own vehicle and perhaps the university bus service doesn’t
always help. Besides, the raising taxi fares and inconsistent bus arrivals in Malaysia continue to
discourage people from taking up the public transport. Therefore, car rental service continues to
grow in Malaysia, hence it required an improvement and good monitoring system.
The web-based car rental system integrated with SMS technology has a very user-friendly
interface. By using this system, employees can manage bookings, payment, vehicle issues and
15
SMS notification to the customers within a few clicks only [17]. The new data can be added or an
existed data can be edited or deleted too by administrators. Thus, there is no delay in the
availability of any information, whether needed, can be captured very quickly and easily. For
security purposes, all customers need to create a new account before logging in or he/she can log
into the system with his/her created account before they can make a reservation for a car. Then,
the customer will be notified the availability of the car reserved through SMS. This system
becomes very helpful for employees, administrator and customers [17].
The Software Development Life Cycle (SDLC) was used to develop the web-based system and
SMS notification. SDLC is a framework that describes all activities and processes in a software
development project. The process is associated with the waterfall model which consists of five
phases such as planning, analysis, design, development, and evaluation.
16
Valley, daily chauffeur rate, in Kuala Lumpur or out of the town, economical, family or luxury
vehicles, and more![6]
In cooperation with reliable Strategic Partners, SCR also provide customized individual and
corporate services including incentive tour, MICE and group outing both in Malaysia and overseas.
Their customized service in the travel industry has benefited their clients from various industries
covering government, large corporation, small and medium enterprises and individual clients
(Who we are, 2020). In order to achieve the successfulness of theirr services, SCR and its Strategic
Partners in Malaysia and oversea always ensure its daily operation being carried out professionally
and reliable, which in turn, allowing them to maintain the quality services standard that is beyond
industry benchmark over the years.
17
2.1.6 WS RENT-A-Car
WSRAC is licensed by the Ministry of Culture, Arts, and Tourism to carry out a car rental business
in Malaysia.Their head office is located at Kuala Lumpur [7]. They offer car rental and car leasing
services in major cities and airports throughout Malaysia.They offer wide choice of vehicles, from
economical to luxury cars, vans, MPV and SUV for their customers to choose the one and most
appropriate for their trip and travelling comfort.
18
19
they offer their customers the best booking and car hire experience possible. Nova has had over
1.5million satisfied customers and sold over 12million rental days across the world.
20
Summary
This chapter shows that there is increase in the development of car rental industry, many companies
are established and digital innovation has extremely changed the way car rental companies are
running their businesses. In addition, customers can now rent a car without suffering from manual
registrations, booking and payment. Car rental companies also can keep track of all their data
without encountering any problem. Customer can also drop-off a car at any location, provided
there is a branch of a particular car rental company in that location.
21
This chapter describes the analysis and design of car rental management system and the type of
the methodology used in the system development. The requirements of the car rental management
system are identified in this chapter, which includes functional and non-function requirements.
The tools that are used when developing the system are identified, which consists of hardware and
software tools as well as the technologies used.
In addition, this chapter describes the model of the system which is a simplified, complete, and
consistent abstraction of the system, that is created for better understanding of the system using
DFDSs and UML diagrams. Finally, this chapter displays the system design; the system
architecture, the user interfaces, and the database design which are the physical view of the system.
Proposed Methodology
Methodology in information system development is the process of dividing software development
work into distinct phases to improve design, product management, and project management. Some
of the methodologies used in system development include agile development methodology, water
fall development methodology, rapid application development methodology, prototyping
methodology and spiral development methodology. Each of these methodologies are chosen based
on the nature of the system to be developed or the information technology project to be carried out
and the stakeholders of the system.
However, in this project, prototyping methodology is chosen, because prototyping methodology
is one of the most important software developments models, it’s the process of building prototype
(which is the first design of the system). Prototyping methodology allows you to build the first
design of your system which will be shown to the system stakeholders in order to go through the
prototype and find their likes and dislikes based on how the final system will look like.
Stakeholders will constantly be going through the prototype until an acceptable prototype is
achieved, which is going to be used to develop the final application.
More so, prototyping methodology is chosen because stakeholders are actively involved in the
system development. Using the system prototype, the stakeholders will also have a full knowledge
and understanding of the system to be developed, how the system works and also errors will be
detected as early as possible.
22
23
Requirement Analysis
At the end of the requirement analysis process, the expected deliverable is System Requirement
Specification (SRS), which describes the behaviors and features of the system. It also contains the
list of requirements of the system as well as the diagrams.
Requirements list are the list of functions that a system must possess. Requirements are of two
categories, which are functional and non-functional. Functional requirements are the requirement
that the stakeholders need from the system, how is the system going to be operated and what the
system should have. Non-functional requirements are the requirements that specifies the criteria
that can be used to judge how the system operates.
The diagrams, which are also known as system model are the abstraction of the system. Each
model is presenting a particular view of the system. The diagrams also show the relationship
between the system and the external entities.
Requirement Specifications
The two tables below contain the functional and non-functional requirements
Functional Requirement Specifications
Table 2. 1 Functional Requirements
Req. No. Description Type
R-1 A customer should be able to register with google Functional
account
R-2 A customer should be able to view the details of a Functional
particular car
R-3 Functional
R-4 The system should show available cars to the customer Functional
during reservation
R-5 The system should allow customer to delete reservation Functional
R-6 The system should display the summary of successful Functional
reservations
R-7 Admin should be able to login to the system using Functional
his/her username and password
R-8 The system should allow new user account to be created Functional
by the Admin
24
System Design
Use case Diagram
Below use case diagrams show the interaction between the external entities and the system
25
26
27
28
This figure shows the overall actions that can be performed by the customer, staff, and the admin,
which are represented by what are called use cases. From left-side of the system are customer and
staff actors, while from the right side of the system is an admin actor.
Class Diagram
29
inheritance. Every line that is drawn from a single class to another class in the diagram is called
Association. The shaded arrows from the payment and rent class to Customer class show that
payment and pent cannot exist with Customer, likewise rent and report.
Database Design
30
31
32
Activity Diagram
Below activity diagrams model the workflow within a system with the use of activity, action,
decision, etc.
33
34
35
36
37
Application Architecture
38
39
The application architectures above give the high-level representation of the system. It also
represents the sub-process, component, and navigation to other parts of the system.
Summary
This chapter shows the analysis and design of the system requirements which are functional and
non-functional requirements, the models and designs of the system that were developed using
different kinds UML diagrams and DFDs. The application would also be developed using
prototyping methodology.
40
41
42
The second problem arises when there is no argument given that corresponds to the required formal
parameter “Id” of get car method in ICarRepository.
43
The fourth problem encountered was in the index view of the cars which happens as the result of
omitting forward slash of the images folder.
The above figure shows the solution to the first problem encountered
44
45
Testing
This section shows the test carried out in order to check whether the application is error free or
not. Test plan was developed and used which contains all the system functionalities that are going
to be tested in case of any error. System testing also helps to check whether the system meets its
requirements or not. MSUnit framework is used to test all the functionalities to confirm if there is
error.
Test Plans
Table 3. 1 Test Plans
Test Suite ID Car Rental System release 1.0 (MTP) 1.0
Test Case ID #1
Test Case Summary The system should allow user to sign up with or without google
account
Expected Result After signing up, the application should redirect to home page
Actual Result After signing up, the application should redirect to home page
46
Status Pass
Executed by Yasir Ado Hassan
Date of Execution 4/09/2020
Test Environment Opera
Table 3. 2
Test Suite ID Car Rental System release 1.0 (MTP) 1.0
Test Case ID #2
Test Case Summary Does the system allow user to make reservation
Expected Result After making reservation, the application should navigate to
reservation details
Actual Result After making reservation, the application should navigate to
reservation details
Status Pass
Executed by Yasir Ado Hassan
Date of Execution 4/09/2020
Test Environment Opera
Table 3. 3
Test Suite ID Car Rental System release 1.0 (MTP) 1.0
Test Case ID #3
Test Case Summary Admin should be able to assign roles to users
Expected Result Users should be able to access some functionalities based on
their roles
Actual Result Users should be able to access some functionalities based on
their roles
Status Pass
Executed by Yasir Ado Hassan
Date of Execution 4/09/2020
Test Environment Opera
Table 3. 4
Test Suite ID Car Rental System release 1.0 (MTP) 1.0
Test Case ID #4
Test Case Summary Does the system allow administrator to manage users, roles,
cars, and reservations
Expected Result Admin should be able to manage roles, users, cars and
reservations
47
Actual Result Admin should be able to manage roles, users, cars and
reservations
Status Pass
Executed by Yasir Ado Hassan
Date of Execution 4/09/2020
Test Environment Opera
48
Use Guide
The user guide describes how user is going to use the system with ease to accomplish his/her goal,
including all the processes involved in operating the system. The user guide also serves as a short
reference to some particular aspects of the system. The user guide for the application can be found
in Appendix E.
Summary
This chapter shows the implementation of the system, the tools and technologies used during the
implementation, which are asp.net core MVC, bootstrap, jQuery, JavaScript, HTML and CSS.
This chapter also covers the problems that were encountered during the implementation and how
the problems were solved, test plans, test traceability matrix and test report summary as well.
49
50
Yet, there are some functionalities that should be evoked, need to be designed, elicited and also
implemented.
Limitations and Challenges
This project is been developed for ysquare rentals which is a Nigeria car rental company based in
Kano, therefore the project is currently limited within Nigeria, and most of the users will are
Nigerians. Majority of the processes that will be carried out manually in the company are analyzed
and implemented. So, it would be easy for them to use the system than any other person outside
Nigeria. For a user to rent a car, he/she must sign in to their own account, and guest must create
their own account.
During the analysis and implementation of this project, there are challenges that were encountered.
When analyzing the requirements of the system, there was difficulty in understanding what exactly
the users want, because they might not know what and how the system will look like. The
challenges were addressed by the application of some skills which like; problem solving skills,
communication skills as well as critical thinking skills to think, solve problems, and communicate
with people. Challenges were also faced during the prototype development which did not fit the
users; therefore, it has to be analyzed and designed again.
Future Enhancements
Some enhancements are supposed to be made as this project is launched, it includes;
• Application should run on mobile phones
Nowadays, the number of mobile phone users is very high than computer users most especially in
Nigeria. The application is going to be in android and iOS platforms and also developed in order
to increase accessibility and inclusiveness.
• Staff Interface
• Geofencing and remote car deactivation
When geofencing is integrated in the application, it will use GPS or WI-FI to trigger a pre-
programmed action when the mobile device owned by the customer enters or leaves a virtual limit
set up around a geographical area.
• Car sales
Car sales functionality will be implemented to the system when this project got online; therefore,
user can register with the system as a salesman and add the car he/she wants to sale. So, when this
functionality is in place, customers can not only rent car, but buy cars from the system as well.
51
Recommendations
The car rental company need to open branches in some other states within Nigeria. The project
should have a cloud storage for backing up user’s data because the cloud storage can save costs,
protects user’s data from ransomware or malware, regulatory compliance, and data tiering for cost
savings. Also, the web-based car rental system should also be developed in form of mobile
application, to help improve usability for mobile phone users.
52
REFERENCES
1. Car Renting… Its Development… And Future (2020). Retrieved from
https://www.automotive-fleet.com/147063/car-renting-its-development-and-future
2. “History – The beginning of a moving tale”, Sixt (2020). Retrieved from
https://about.sixt.com/websites/sixt_cc/English/0/about-us.html#HISTORY
3. “Joe Saunders, Omaha Innovators” (2020). Retrieved from
http://www.douglascohistory.org/
4. “Walter L. Jacobs, 88; Rent-a-Car-Pioneer” (2020). Retrieved from
https://www.latimes.com/archives/la-xpm-1985-02-08-me-4716-story.html
5. Mike, A. (2018). Design and development of online car rental system. Ahmadu Bello
University Zaria.
6. About Us (2020,) https://www.scr.com.my/about-us/
7. Few words about us (2020). Retrieved from https://www.wsrentacar.com.my/kl-car-rental-
klia-klia2/
8. About us (2020). Retrieved from https://www.novacarhire.com/about/about-us.htm
9. Waspodo, Bayu, Aini, Qurrotul and Nur, Syamsuri. (2011). Development of Car Rental
Management Information Systems (Case Study: Avis Indonesia).
10. Sheth, J.. (2016). Car Rental System. 10.13140/RG.2.2.12716.87680.
11. Mcleod, R. and Schell, Jr. G. P.(2007). Management Information System, (10th Edition).
India: Pearson Education, Inc.
12. Damayanti, Y. (2005). “Car Rental Information System Design using Microsoft visual
basic version 6.0”. Gunadarma University.
13. Cahyanto, M. R.T. et al. (2010). “Car Rental Management Information System CV
transport with Java SE and MySQL based OOP”
14. Yodiyanto. (2006). “Analysis and Design of Web-based Car Rental and Travel
Transportation Information Systems at PT”. Bina Nusantara University.
15. Sar, R. D. (2011). “Building Application System Car Rental Reservation and Payment
Online Web-based (Case Study in Th Rental Daras Corporation)”.
16. Avis Indonesia. (2009). “Journal Avis Indonesia”. Jakarta: Avis Indonesia.
17. Osman, M., Muhd, Z., Nurzaid, Paidi, Z., and Sedek, K. (2017). Online Car Rental System
using Web-Based and SMS Technology.
53
18. Jogiyanto. (2001). Information System Analysis and Design Structured Approach, Theory
and Practical Business Application (2nd Edition). Yogyakarta: Andi Yogyakarta.
19. Andri, K. (2004) Software Device Manipulation. Yogyakarta: Gava Media.
20. Kendall, K. (2006). System Analysis and Planning. Jakarta: Penerbit Indeks.
21. Connolly, T. and Begg, C. (2002) Database System: A practical Approach to Design,
Implementation, and Management, (3rd Edition). England: Addison Wesley.
22. Fathansyah. (2000). Basis Data: CV. Informatics.
23. Ladjamudin, A. (2005). Analysis and Design of Information Systems. Yogyakarta: Science
House.
24. Hakim, L. (2004). 150 Secretes and Tricks to Master PHP. Jakarta: Elex Media
Komputindo.
25. Sidik, B. (2001). Web Programming with PHP. Bandung: Informatics.
26. Sidik, B. (2005). MySQL for Administrator Users and Web Application Development.
Bandung: Informatics.
27. Siswoutomo, W. (2008). PHP Enterprise. Jakarta: Elek Media Komputindo.
28. Sudirman. (2003) Build Web Applications with PHP and MySQL. Yogyakarta: Science
House.
29. Suprianto, D. (2008). Smart Book PHP programming. Jakarta: Oase Media.
54
APPENDICES
Appendix A – Project Management Document
Task No Task Name Duration Start Finish Deliverable
Work breakdown
2nd March, 7th March,
1 Project Plan 6 days structure and Gantt
2020 2020
Chart
23rd
22nd April, Reviewed
3 Literature Review 30 days March,
2020 Literature
2020
System
requirement
specification which
includes functional
requirements, non-
functional
requirements and
System Analysis and 23nd April, 18th May,
4 27 days their models which
Design 2020 2020
are Activity
Diagram, Class
Diagram, Use
Case, Data flow
diagram, Entity
Relationship
Diagram, etc.
55
56
Q10. What are the procedures or steps when a customer rents a car?
Q12. How do you keep track of which cars are rented and which are not?
57
58
59
60
2. SYSTEM SUMMARY
This section shows the general overview of the system. It outlines the uses of the system’s
hardware and software requirements, system’s configuration, user access levels and system’s
behavior.
2.3 Contingencies
If there is no internet connection, the system pages will not be loaded and system will not connect
to the web server so data will be saved to the database.
3 GETTING STARTED
Getting started section describes how to get the system on the internet and use it.
3.1 Searching for The System and Logging In
61
When the system is launched, it can be found in any search engine by typing
www.ysquarerentals.com or ysquare rentals and hit the link that appears on the browser. The user
as to register first before logging in to system.
62
63
64
Home Controller
namespace CarRentalSystem.Controllers
{
[Authorize(Roles = "Admin")]
//[Authorize(Roles = "User")]
public class CarController : Controller
{
private readonly ICarRepository _carRepository;
private readonly IHostingEnvironment hostingEnvironment;
// GET: Car
[AllowAnonymous]
public ActionResult Index()
{
var model = _carRepository.GetAllCar();
return View(model);
}
// GET: Car/Details/5
[AllowAnonymous]
public ViewResult Details(int? id)
{
Car car = _carRepository.GetCar(id.Value);
if(car == null)
{
Response.StatusCode = 404;
return View("CarNotFound", id.Value);
}
return View(carDetailsViewModel);
}
// GET: Car/Create
public ViewResult Create()
{
return View();
}
// POST: Car/Create
65
[HttpPost]
//[ValidateAntiForgeryToken]
public IActionResult Create(CarCreateViewModel model)
{
if (ModelState.IsValid)
{
string uniqueFileName = null;
if(model.Photo != null)
{
string uploadsFolder = Path.Combine(hostingEnvironment.WebRootPath,
"images");
uniqueFileName = Guid.NewGuid().ToString() + "_" +
model.Photo.FileName;
string filePath = Path.Combine(uploadsFolder, uniqueFileName);
model.Photo.CopyTo(new FileStream(filePath, FileMode.Create));
}
Car newCar = new Car
{
CarName = model.CarName,
CarModel = model.CarModel,
CarStatus = model.CarStatus,
CarSeat = model.CarSeat,
CarDoor = model.CarDoor,
//Gearbox = model.Gearbox,
PhotoPath = uniqueFileName
};
_carRepository.Add(newCar);
return RedirectToAction("details", new { id = newCar.CarId });
}
return View();
}
// GET: Car/Edit/5
public ViewResult Edit(int id)
{
Car car = _carRepository.GetCar(id);
CarEditViewModel carEditViewModel = new CarEditViewModel
{
CarId = car.CarId,
CarName = car.CarName,
CarModel = car.CarModel,
CarStatus = car.CarStatus,
CarSeat = car.CarSeat,
CarDoor = car.CarDoor,
//Gearbox = car.Gearbox,
ExistingPhotoPath = car.PhotoPath
};
return View(carEditViewModel);
}
// POST: Car/Edit/5
[HttpPost]
//[ValidateAntiForgeryToken]
public IActionResult Edit(CarEditViewModel model)
{
if (ModelState.IsValid)
{
Car car = _carRepository.GetCar(model.CarId);
66
car.CarName = model.CarName;
car.CarModel = model.CarModel;
car.CarStatus = model.CarStatus;
car.CarSeat = model.CarSeat;
car.CarDoor = model.CarDoor;
//car.Gearbox = model.Gearbox;
if (model.Photo != null)
{
if(model.ExistingPhotoPath != null)
{
string filePath = Path.Combine(hostingEnvironment.WebRootPath,
"images", model.ExistingPhotoPath);
System.IO.File.Delete(filePath);
}
car.PhotoPath = ProcessUploadedFile(model);
}
_carRepository.Update(car);
return RedirectToAction("index");
}
return View();
}
private string ProcessUploadedFile(CarCreateViewModel model)
{
string uniqueFileName = null;
if (model.Photo != null)
{
string uploadFolder = Path.Combine(hostingEnvironment.WebRootPath,
"images");
uniqueFileName = Guid.NewGuid().ToString() + "_" + model.Photo.FileName;
string filePath = Path.Combine(uploadFolder, uniqueFileName);
using (var fileStream = new FileStream(filePath, FileMode.Create))
{
model.Photo.CopyTo(fileStream);
}
}
return uniqueFileName;
}
Account Controller
namespace CarRentalSystem.Controllers
{
public class AccountController : Controller
{
private readonly UserManager<ApplicationUser> userManager;
private readonly SignInManager<ApplicationUser> signInManager;
67
[HttpPost]
public async Task<ActionResult> Logout()
{
await signInManager.SignOutAsync();
return RedirectToAction("homepage", "home");
}
// GET: /<controller>/
[HttpGet]
[AllowAnonymous]
public IActionResult Register()
{
return View();
}
[HttpGet][HttpPost]
[AllowAnonymous]
public async Task<IActionResult> IsEmailInUse(string email)
{
var user = await userManager.FindByEmailAsync(email);
if (user == null)
{
return Json(true);
}
else
{
return Json($"Email{email} is already in use");
}
}
if (result.Succeeded)
{
if (signInManager.IsSignedIn(User) && User.IsInRole("Admin"))
{
return RedirectToAction("ListUsers","Administration");
}
68
[HttpGet]
[AllowAnonymous]
public async Task<IActionResult> Login(string returnUrl)
{
LoginViewModel model = new LoginViewModel
{
ReturnUrl = returnUrl,
//getexternal...returns us the list of all configuredd external login
providers
ExternalLogins = (await
signInManager.GetExternalAuthenticationSchemesAsync()).ToList()
};
return View(model);
}
if (result.Succeeded)
{
if (!string.IsNullOrEmpty(returnUrl) && Url.IsLocalUrl(returnUrl))
{
return LocalRedirect(returnUrl);
}
else
{
return RedirectToAction("homepage", "home");
}
[AllowAnonymous]
[HttpPost]
public IActionResult ExternalLogin(string provider, string returnUrl)
{
var redirectUrl = Url.Action("ExternalLoginCallback", "Account",
new { ReturnUrl = returnUrl });
69
var properties =
signInManager.ConfigureExternalAuthenticationProperties(provider, redirectUrl);
return new ChallengeResult(provider, properties);
}
[AllowAnonymous]
public async Task<IActionResult> ExternalLoginCallback(string returnUrl = null,
string remoteError = null)
{
returnUrl = returnUrl ?? Url.Content("~/");
if(remoteError != null)
{
ModelState.AddModelError(string.Empty, $"Error fromexternal provider:
{remoteError}");
if (email != null)
{
var user = await userManager.FindByEmailAsync(email);
if ( user == null)
{
user = new ApplicationUser
{
UserName = info.Principal.FindFirstValue(ClaimTypes.Email),
Email = info.Principal.FindFirstValue(ClaimTypes.Email)
};
70
await userManager.CreateAsync(user);
}
await userManager.AddLoginAsync(user, info);
await signInManager.SignInAsync(user, isPersistent: false);
return LocalRedirect(returnUrl);
}
return View("Error");
71