0% found this document useful (0 votes)
37 views69 pages

Car Rental Management System Overview

The document outlines a Car Rental Management System designed to streamline operations for rental companies by automating tasks such as fleet management, customer management, and payment processing. It addresses challenges faced by the car rental industry, including manual processes and the need for real-time data access. The system aims to enhance efficiency, improve customer relations, and provide valuable insights through data analysis and secure online transactions.

Uploaded by

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

Car Rental Management System Overview

The document outlines a Car Rental Management System designed to streamline operations for rental companies by automating tasks such as fleet management, customer management, and payment processing. It addresses challenges faced by the car rental industry, including manual processes and the need for real-time data access. The system aims to enhance efficiency, improve customer relations, and provide valuable insights through data analysis and secure online transactions.

Uploaded by

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

CAR RENTAL MANAGEMENT SYSTEM

I
TABLE OF CONTENTS

Title Page Number


Candidate’s Certificate I
Plagiarism Certificate II

Acknowledgment III
List of Abbreviations V
List of Figures VI-VII
List of Tables VIII
Abstract IX
Chapter - 1 Introduction
1.1 Introduction 1
1.2 Problem Statement 1
1.3 Objectives 2
1.4 Scope 2-3
Chapter - 2 - Literature Survey 4-7

Chapter - 3 System Analysis and Development


3.1 System Design 8-10
3.2 System Analysis 11-13
3.3 System Development 13-15
3.4 Database Design 15-17
Chapter - 4 Performance Analysis
4.1 Technology Stack 18-19
4.2 Source Code 19-56
Chapter - 5 Result and Conclusion
5.1 Result and Conclusion 57
5.2 Future Scope 58
References 59-60

II
LIST OF ABBREVIATIONS

1. [Link] - Active Serve [Link]

2. MVC - Model View Controller

3. SQL - Structured Query Language

4. HTML - Hypertext Markup Language

5. CSS - Cascading Style Sheets

6. API - Application Programming Interface

7. AJAX - Asynchronous JavaScript and XML

8. CRUD - Create, Read, Update, Delete

9. ORM - Object-Relational Mapping

10. JWT - JSON Web Tokens

11. DAL – Data Access Layer

12. URL - Uniform Resource Locator

13. HTTPS - Hypertext Transfer Protocol Secure

14. DNS - Domain Name System

15. SMTP - Simple Mail Transfer Protocol

16. FTP - File Transfer Protocol

17. LINQ - Language Integrated Query

18. XML - Extensible Markup Language

19. JSON - JavaScript Object Notation

III
LIST OF FIGURES
Figures Name Page
No.
Figure [Link] Software architecture design with three major microservices 9
Figure [Link] Schematic Diagram design with two major use case clients 9
Figure [Link] Use case diagram (Contextual) depicting customer 10
interactions
Figure [Link] Use case (high) diagram depicting customer interactions 10
Figure 3.3.1 Data flow diagram depicting customer interactions 14
Figure 3.4.1 data model diagram of the project depicting how the how all 16
three tables are connected to each other
Figure 4.2.1-4.2.4 Workflow and files available for project 20-21
Figure [Link]- Attributes in Car database and its DbContext 21-22
[Link]
Figure 4.2.6-4.2.9 CarRepository file with data logic 22-23
Figure 4.2.10 ICarRepository interface for implementation of CarRepository 24
Figure 4.2.11 CarDto for modular and flexible application 24
Figure 4.2.12- CarService with business services and DTOs 25
4.2.14
Figure 4.2.15 ICarService for implementation of CarService 26
Figure 4.2.16- CarController for handling requests and responses 26-27
4.2.18
Figure 4.2.19 [Link] for handling attributes in customer table 27
Figure 4.2.20 [Link] for handling attributes in rental table 28
Figure 4.2.21 [Link] for handling attributes in rented cars table 28
Figure 4.2.22- CustomerRepository file with data logic 29
4.2.23
Figure 4.2.24 ICustomerRepository interface for implementation of 30
CustomerRepository
Figure 4.2.25 IRentalRepository interface for implementation of 30
RentalRepository
Figure 4.2.26- RentalRepository file with data logic 31-32
4.2.28
Figure 4.2.29- RentalCarRepository file with data logic 32-33
4.2.31
Figure 4.2.32 IRentalCarRepository interface for implementation of 33
RentalCarRepository
Figure 4.2.33 RentalDbContext database with tables and attributes 34

VII
Figure 4.2.34- CustomerService with business services and DTOs 34-35
4.2.37
Figure 4.2.38 ICustomerService 36
Figure 4.2.39 IRentalService 36
Figure 4.2.40- Rental Service with DTOs 37-38
4.2.45
Figure 4.2.46 IRentalCarService 39
Figure 4.2.47- RentalCarService with DTOs 39-40
4.2.50
Figure 4.2.51 and CustomerDto and RentalDto (separate figures) 40-41
4.2.52
Figure 4.2.53 RentalCarDto 41
Figure 4.2.54- CustomerController 41-42
4.2.56
Figure 4.2.57- RentalCarController 42-43
4.2.59
Figure 4.2.60- RentalsController 43-44
4.2.63
Figure 4.2.64 [Link] 45
Figure 4.2.65 PaymentDbContext and Payments Table 45
Figure 4.2.66- PaymentRepos and IPaymentRepos 45-46
4.2.69
Figure 4.2.70 PaymentDto 47
Figure 4.2.71 IPaymentService 47
Figure 4.2.72- PaymentService with DTOs 48-49
4.2.76
Figure 4.2.77- PaymentController 49-50
4.2.79
Figure 4.2.80- Migrations 50-53
4.2.87
Figure 4.2.88 [Link] 53
Figure 4.2.89 [Link] 54
Figure 4.2.90- Functioning of Controllers on Swagger 54-55
4.2.93
Figure 4.2.94- Database creation using Code First Approach 55
4.2.97
Figure 4.2.98- Schema of 5 tables with columns 56
4.2.99

VII
LIST OF TABLES

Table Name Page


No.
Table -1.4.1 Requirements of Microservices in Project 2-3
Table -2.1 Author, Proposed Approaches, Journal, Year, and 4-7
Technologies
Table -3.4.1 Car Module Table and Column Names with DataTypes 16
Table -3.4.2 Rental Car Module Table and Column Names with 17
DataTypes
Table -3.4.3 Payment Module Table and Column Names with 17
DataTypes

VIII
ABSTRACT
Automobile companies need effective tools at their disposal in order to administer their
complex operational tasks such as managing fleets , customers and reservations efficiently .
Our program provides one such solution that offers a range of inventory management
services to rental firms to help achieve this. Rental businesses can count on our software to
maintain the up to date information of all vehicles in their inventory . By using this program
managers can easily add, edit, or delete any car belonging to the company fleet and keep
accurate records of its vital attributes like make, model , year and mileage for improved
decision making purposes. Ultimately cutting down on time consuming activities such as
paperwork thus freeing up more time that can be dedicated to serving customers better.

A significant advantage offered by modern technology in the field of car rentals is its ability
to provide companies with valuable customer insights garnered through tracking personal
details and rental histories. By assessing this information over time businesses can leverage
it for improving customer relations through personalized services tailored specifically
towards their needs. The Car Lease Management Systems adept booking management
feature further simplifies the process by enabling clients to browse available vehicles online
in real time – ensuring hassle free travel planning and access to necessary cars at all times.

Clients can pay securely via the payment interface built into the system, thus enhancing the
convenience of the booking procedure. This project has functions including fleet
management, client management, reservation management, and payment processing, and it
is simple to use. Additionally, the system is dependable and safe, protecting user
information and ensuring continuous system available.

IX
CHAPTER -1 INTRODUCTION
1.1 Introduction
The car rental industry has grown significantly over the last few years as a result of the constant
increase of interest for vehicles for both business and personal travel. Managing a car rental
company is challenging for a variety of reasons, including managing the inventory, handling clients,
scheduling management, the processing of payments, and data confidenttiality. These issues can be
resolved by developing a comprehensive and efficient system for managing car rentals.

The system will offer ressources for better fleet management, such as tools for analyzing upkeep,
locating underutilized cars, and making information-driven fleet acquisition decisions. Additionally,
it will offer resources for more effective management of client data, such as personal information,
rental historys, and likes and dislikes. By giving clients a quick and accessible way to look for
accessible cars, bookings online, and select their choosen model and other brand, the system will
simplify reservation administration. Clients can make payments online using the system's safe and
dependable payment gateway.

1.2 Problem Statement


The laborious, susceptible to error, and ineffective manual procedures employed by
automobile rental firms include manual documentation, telephone-based reservation
territory, and hands-on payments. The dearth of modern conveniences like real-time
accessibility, e- payments, and management of clients in out-of-date software packages may
make it challenging for vehicle rental companies to compete in a market that is changing
quickly.

As a result, the problem statement of this project would be to offer a thorough, protected,
and effective computerized solution to the obstacles that firms encounter while trying to
coordinate their processes, fleet, clients, and schedules. For the system to adapt to the
evolving demands of the automobile rental sector, it ought to be simple to use, extensible,
and adaptable. In order to safeguard the platform and its clients, it ought to additionally
incorporate real-time car availability, payment processing, client administration, and strong
security measures.

1
1.3 Objectives
1.3.1 Simplify reservation management: The system should provide customers with a simple and
convenient way to search for available cars, make reservations online, and choose their preferred
pick-up and drop-off locations. The system should also provide real-time availability of cars,
making it easier for customers to plan their trips and ensuring that they can get the cars they need
when they need them.

1.3.2 Improve fleet management: The system should provide car rental companies with tools to
manage their fleet more efficiently, such as tracking vehicle maintenance, identifying underutilized
or over utilized vehicles, and making data-driven decisions regarding fleet acquisition and
retirement.

1.3.3 Streamline customer management: The system ought to give automobile rental businesses
the instruments they need to better handle client data, such as personal information, rental history,
and preferences. The client experience is able to be enhanced by using the aforementioned data to
deliver improved client service.

1.3.4 Provide scalability and flexibility: The system should be created with scalability as well as
adaptability in mind, enabling automobile rental businesses to adjust to shifting client demands and
competitive circumstances. This can assist automobile rental businesses in long-term profitability
and competitiveness.
1.4 Scope
A car rental management system developed is a software application that providess a web-based
platform for car rental companies to manage their operations. The scope of a car rental
mannagement system developed includes the following features:

Requirement Requirement Requirement Description


Number Name

Requirement-01 Car Inventory This module is a Middleware Microservice that performs


module following operations:
This module will allow customers who wish to rent cars to see
from inventory, its pictures, model, price and other important
details

2
This module is a Middleware Microservice that performs the
following operations:
Requirement-02 Car Rental
This module works in way that it allows customers to see the
module
total amount of rent that has to be paid including security
amount.
Requirement -03 Car Total This module is a Middleware Microservice that performs the
Payment module following operations:
This module basically performs functions that will provide
what amount has to be paid.

Requirement -04 User Management A Web Portal that allows a user to Login and allows to do
portal following operations:
Login
Load the Customer Detail
Invoke the Process Car Inventory module

Table 1.4.1: The Table shows requirements of the microservices that are being developed in
this project.

3
CHAPTER -2 LITERATURE SURVEY
A comprehensive array of features is offered by car rental management systems to assist
organizations in managing their inventory of cars and streamlining their internal operations. Car
inventory management, booking and reservation administration, rental administration, transaction
management, and maintenance scheduling are a few of the key characteristics and capabilities of
these computerized platforms.

The management of leasing operations, car inventory, and network upkeep are only a few of the
difficulties faced by car rental organizations. A huge network of cars requires routine service,
maintenance, and tidying up, which is a difficult undertaking. Cars must always be in mint
condition and ready for lease, according to car rental businesses. It can be difficult to keep track of
all these tasks for an extensive inventory of cars. Yet another big difficulty is to make sure that
there are certainly constantly sufficient cars on hand to rent. To maximize utilization and lower the
chance of accumulating a surplus of idle cars, car rental firms have to manage their fleet of cars.

Through automating numerous of the procedures required in handling an inventory of cars, car
rental management systems are able to help in overcoming these obstacles. These kinds of systems
frequently have functions like managing stock, automated warnings for maintenance and repairs,
and upkeep scheduling. The result is that it is easier for car rental firms to maintain tabs of their
fleet, plan repair duties more effectively, and guarantee that cars are accessible for rental whenever
they're required. Additionally, by streamlining operations like making the reservation, bookings,
and billing purposes, car rental management systems can assist rental companies in managing rental
purchases successfully. This lowers the possibility of inaccuracies and raises customer loyalty by
enabling rental organizations to handle rental payments fast and properly.

Authors Published Title Technology Description

Shikha Dhiman Performance Testing: [Link] In order to pinpoint bottlenecks


Pratibha Sharma [1] A Comparative Study in performance and assess the
and Analysis of Web effects of various configuration
Service Testing options and tuning techniques,
Tools, ICMSR, 2021 the authors combine load testing,
profiling, which is an efficiency
metric analysis.

4
Sandra Sarasan, Ayana Detection of Security [Link] This study is concerned with
Ajith , Archana A.B. Attacks and their detecting security vulnerabilities
[2] Countermeasures in in [Link] online applications
[Link] Web and suggesting solutions to
Applications, reduce those vulnerabilities.
IJCSIS,2021 systems, and encryption
methods.

Fanie Reynders [3] Introduction to [Link] The authors go over the


[Link] Core framework and parts of
Springer,2018 [Link] Core, including its
backing for dependency
injection, middleware pipeline,
and flexible layout.

Jean-Rémy Falleri & Automated Web-API In order to identify and build


Xavier Blanc [4] generation of REST APIs based on their functionality
API specification and semantics, this paper
from plain HTML provides a novel method for
documentation automated API creation and
testing.

Lucas Pelloni, Andrei RESTful API Web-API The authors list popular API test
Zgirvaci, and Integration Testing: types as well as the programmes
Thomas Fritz A Survey, IEEE, and frameworks that can be used
[5] 2017 to automate API testing. The
limits and unanswered research
problems in this field are also
covered in the report.

Julie Lerman[6] Entity Framework 6: Entity This paper explores the hybrid
Extending Database- Framework- approach of combining
First with Code-First, 6 Database-First and Code-First
IEEE 2018 approaches in EF6. The author
demonstrates how to use
Database-First to generate an
initial model, and then extend
and customize the model using
Code-First techniques.

[Link][7] [Link] MVC - Entity This study investigates EF6's


generic repository Framework- hybrid strategy, which combines
6 the Database-First and Code-

5
pattern and unit of First techniques. The author
work, IJARW,2019 shows how to create an initial
model using database-first
techniques, then how to enhance
and customize the model using
code-first techniques.

Rowan Miller, Julian Entity Framework 6 Entity This book provides an in-depth
Bucknall, and Chris in Action, Springer Framework- guide to Entity Framework 6, a
Anderson[8] 2020 6 popular Object-Relational
Mapping (ORM) framework for
.NET applications. The authors
cover a wide range of topics
related to EF6, including data
modelling, querying,
performance tuning, and
database migrations.

Spadini, Davide and To Mock or Not To Mocking This paper’s main contribution
Antiche,Mauricio [9] Mock? An Empirical was a categorization of the most
Study on Mocking often mocked and not mocked
Practices, IEEE,2017 dependencies, based on a
quantitative analysis on three
OSS systems and one industrial
system and the main challenges
faced by developers when
making use of mock objects in
the test suites, also extracted
from the interviews and surveys

Shaikh Mostafa and An Empirical Study Mocking In practice, mock objects have
Xiaoyin Wang[10] on the Usage of been used in
Mocking software testing to simulate such
Frameworks in missing dependencies, and A
Software Testing, number of popular mocking
QSIC,2014 frameworks have been
developed for software testers to
generate mock objects more
conveniently.

Mohammad Mahdi Testability and Unit Testing It works on Software robustness


Hassan and Wasif Software Robustness: and software testability
Afzal.[11] A Systematic

6
Literature Review,
IEEE,2015

Sharma, Rashmi and A Systematic Review Unit Testing This paper works upon software
Saha, Anju[12] of Software quality, testability assessment,
Testability testability improvement,
Measurement controllability, observability.
Techniques,
IEEE,2018

Mustafa M. Tikir and Efficient Unit Testing The paper presents an approach
Jeffrey Kenneth Instrumentation for to dynamically insert and remove
Hollingsworth[13] Code Coverage instrumentation code to reduce
Testing, ACM, 2002 the runtime overhead of code
coverage. It also explores the use
of dominator tree information to
reduce the number of
instrumentation points needed

Table 2.1: The Table shows the Author's name, the Proposed Approaches, the Journal it was
published in, the Year of publication and their technologies.

7
CHAPTER -3 SYSTEM ANALYSIS AND DEVELOPMENT

3.1 System Design

3.1.1 Proposed Design


The design would consist of three main microservices that are being developed and secondary
technologies that will aid in proper functioning of the project. The project design components are as
follows:

1. Car Management Microservice: The management of the rental car inventory would fall
under the purview of the fleet of vehicles microservice. Then, for each car, it would log the
year, make, model, and any other relevant data. The microservice would also keep track of
the availability, location, and history of each car's rentals.

2. Rental Microservice: In addition to monitoring the number of vehicles, length, kind,


clientele for whomever it is being hired, period of rental; additionally, and status of
payment, the car rental micro-services could also be in responsibility for renting cars to
customers.

3. Payment Microservice: The money transfer microservice would have the responsibility in
charge of tracking payments, comprising the billing process, the sum paid, its type, and its
current status, as well as calculating any potential price breaks.

4. Database: All pertinent information, including client identities, car specifics, rental
contracts, and financial information, must be kept in a centralized database.

5. User Interface: Clients must be able search for, reserve, and keep track of automobiles
through a platform that is easy to use. Employees will be able to manage bookings, modify
car accessibility, and examine reports thanks to the user interface.

Overall, the system is broken down into smaller, more manageable components that can be
developed, deployed, and maintained independently. This approach offers greater scalability,
resilience, and flexibility, making it easier to add new features or update existing ones.

8
3.1.2 System Architecture Design

Figure [Link] This above figure depicts the software architecture design of the project with three
major microservices.

3.1.3 Schematic Diagram

Figure [Link] This above figure depicts the Schematic Diagram design of the project with three
major microservices with two major use case clients, that are User and Admin.
9
3.1.4 Use Case Diagram (Contextual Level)

Figure [Link] This above figure depicts the use case diagram (Contextual) of the project depicting
how the how customer and rental company interacts with each other on the application.

3.1.5 Use Case Diagram (High Level)

Figure [Link] This above figure depicts the use case (high) diagram of the project depicting how
the how customer and rental company interacts with each other on the application.

10
3.2 System Analysis
3.2.1 Assumptions

The following could be presumptions for an automobile rental management system:

1. The programme will store data about customers, vehicles, rental agrements, and various other
appropriate data in a single centralised location.

2. The portal will let customers search for and reserve cars based on their prefereneces, such as the
kind of caar, how long they want to rented it for, where they live, and other details.

3. The system will control the entire rentaal process, includingg picking up and returning the car,
billing, and managing payments.

4. The online platform will have security features to protect confidential client information and
prevent fraud.

3.2.2 Dependencies
The dependencies of a car rental management system project could include:

1. Hardware and software infrastructure: In order to execute the programme, the platform would
need hardware like server infrastructure, network components, and storage devices. Additionally, it
would require software dependencies including programming tools, management systems for
databases, and operating systems.

2. Data management: The platform depends on a dependable and safe database to record all
pertinent data, including client details, car specifics, rental contracts, and information about
payments.

3. User interface design: For consumers as well as staff members to interact with the system, it
would be necessary to have an intuitive user interface.

4. Testing and quality assurance: In-depth analysis as well as quality management procedures
would be necessary to make sure the system performs as intended, complies with the demands of
the company, and provides free of defects and faults.

11
3.2.3 Risks

There are several risks that could be associated with a car rental management system project, including:

1. Data breaches: Since the system will likely retain private consumer and banking details, it
might become an easy target for attacks via the internet and data breaches. By putting in
place robust safety precautions like encryption, access controls, and recurring security
inspections, the danger of breaches of data could be reduced.

2. System downtime: Any system outage could put clients out of their comfort zone and cost
the car rental company money. Employing resilience regulations such as servers for
backups and rollover methods, could reduce the likelihood of system outages.

3. User adoption: The appliance's success would be contingent on how well clients and staff
members used it. Any problems with customer acceptance could lead to poor system
utilization and reduced revenue. By educating and assisting consumers, doing studies on
users, and enhancing interface design, the likelihood of user adoption problems may be
reduced.

4. Regulatory compliance: The entire system would have to abide by all applicable
regulations and legislation, including those governing safeguarding information and the
handling of payments. Administrative and economic penalties could be imposed for any
non- compliance. By being aware of and abiding by all pertinent laws and regulations, the
risk of non-compliance may be reduced.

These potential risks might have been recognized, assessed, and reduced by carrying out a thorough
risk assessment and putting risk management techniques into place.

3.2.4 Hardware and Software Requirements

[Link] Hardware Requirements

1. Developer Desktop PC with 8GB RAM

12
[Link] Software Requirements
1. Frontend/UI:
1.1 HTML/CSS/JavaScript
1.2 A frontend framework or library (e.g., React, Angular, [Link])
1.3 UI design tools (e.g., Adobe XD, Sketch)
2. Backend/API:
2.1 C#/.NET framework
2.2 [Link] Core for building the RESTful API
2.3 Entity Framework Core for handling database operations
2.4 Swagger for API documentation
3. Database:
3.1 Microsoft SQL Server or another relational database management system (RDBMS)
3.2 Additionally, some other tools and services that may be helpful for development and
deployment include:
3.2.1 Git/GitHub for version control
3.2.2 Visual Studio for development

3.3 System Development


System evaluation, development, execution, and validation are usual phases during developing of
a car rental management system. Finding the system's minimum specifications, which include the
capacity to manage client data, car inventory, bookings, and transactions, is the initial step in the
system evaluation.

Using a programming language like [Link], the application is put into effect once the data model
and application framework have been developed. The user interface, database access layer, and
business logic must all be coded in order to accomplish this.

The following phase is to develop the system's framework and data model after the application's
specifications have been established. This entails figuring out the general framework of the
system, together with the numerous elements and their interactions, the relational database
schema, and the links amongst tables.

13
Figure 3.3.1 This above figure depicts the data flow diagram of the project depicting how the how
customer and rental company interacts with each other on the application with each of the
mircroservices.

3.3.1 System Development – Car Microservice

The Car microservice will be defined in the data model, which has the features like and data
variables like CarId, CarType, Brand etc. Taking advantage of the [Link] Web API framework
to create the Car micro-services API. For maintaining the Car entity, the API ought to encompass
CRUD actions (Create, Read, Update, and Delete).

Then next step would be to integrate car microservice with the Rental microservices and Payment
microservice to give complete car rental system capabilities. To validate the car microservice's
usability and dependability, testing it employing a unit testing framework like NUnit would be the
next phase.

3.3.2 System Development – Rental Service Microservice

RentalId, CarId, CustomerId, RentalSTime, RentalETime, and RentalType are just a few of the
components that make up the Rental microservice in the automobile rental system. All rental
payment's special identification number is the RentalId, which is produced automatically. To
preserve the connections among the things, CustomerId are foreign keys that respectively point to
the car microservices. While the RentalETime column records the completion time of the rental

14
duration, the RentalSTime column records the beginning of the rental time frame. The RentalType
column lists the many types of rentals, including hourly, daily, and weekly rentals. The car rental
company may supervise rental operations and keep account of which automobiles have been
rented out and for duration thanks to this microservice.

3.3.3 System Development –Payment Microservice

The payment is the name of the microservice in charge of handling transactions for renting a
vehicle. The PaymentId column, which has an integer data type, serves as the Payment table's
primary key. This update-incrementing field assigns an identity number to each customer who
makes a purchase. The RentalId column is an integer data type foreign key that corresponds to the
Rental table's primary key. It depicts the renting process that is related to payments.

3.3.4 System Development – User Authorisation and Authentication

Throughout the car rental management system, user profiles, authorization, and authentication are
managed by the customer authorization and authentication microservice. This microservice's
purpose is to handle and safely preserve user data, such as credentials for login, roles, and
permissions. Only those individuals who have been granted access to the application and the
associated assets can use it thanks to the secure authentication and authorisation processes
provided by these protocols. In its entirety, through guaranteeing that client accounts are
administered safely and effectively and that clients are given adequate access and rights to the
platform and its facilities.

3.4 Database Design


The database design, which dictates the way data will be retained and accessed across the system,
is an essential part of the vehicle rental management system. The database design for the
undertaking contains tables for cars, clients, rentals, and payments.

The cars inventory table provides details concerning the automobiles being rented, such as their
model and manufacturer, rental rates per hour, day, and week, date as well as cost of purchase, and
capacity. The renters' names, contact details, and previous rentals are all kept on file.

The rentals table keeps account of every rental transaction, comprising the person who leased the
vehicle, the vehicle itself, how long it was rented for, and how much it charged. The rental ID and
the amount paid are two pieces of data that are included in the payments table for every one of the
payments provided by the client.

15
Relationships amongst those tables are also part of the relational database schema. To differentiate
between the car that is being leased and the individual who is borrowing it, for instance, the rentals
table has foreign keys that link to the cars and payments tables. In order to connect payments to
rental operations, the payments table additionally has a foreign key that refers to the rentals table.

Figure 3.4.1 This above figure depicts the data model diagram of the project depicting how the how
all three tables are connected to each other for each of the following microservices.

1. Car Inventory Service

Column Name Data Type Length Nulls


CarId Int - No
CarType varchar 50 No
Brand varchar 50 Yes
Model varchar 50 Yes
BuyDate datetime - Yes
BuyPrice decimal - Yes
RentalCostPerHour decimal - Yes
RentalCostPerDay decimal - Yes
RentalCostPerWeek decimal - Yes
AvailQuantity int - No
Table 3.4.1: The Table shows Car Module table and Column Name and its DataType

16
2. Rental Car Service:

Column Name Data Type Length Nulls


RentalId int - No
CarId int - No
CustomerId int - No
RentalSTime datetime - No
RentalETime datetime - Yes
RentalType int - No
Table 3.4.2: The Table shows Rental Car Module table and Column Name and its DataType

3. Payment Service:

Column Name Data Type Length Nulls


PaymentId Int - No
RentalId Int - No
PaymentAmount decimal - No
PaymentTime datetime - No
Table 3.4.3: The Table shows Payment Module table and Column Name and its DataType

17
CHAPTER -4 PERFORMANCE ANALYSIS
4.1 Technology Stack
The advanced technology underpinning the automobile rental management system is adaptable and
will take the growth department's demands and requirements into account. However, a few of the
developments and those that are widely applied in implementations are as follows:

4.1.1 [Link]
The Application Programming Interface is the primmary web application building platform used in
the this projeect. The MVC construction, one of its many characteristics, allows developers to
separate a platform's display and functionality layers, making code administration and upkeep
easier. A range of built-in instruments and features, such as input validation, registration and
authentication, and the use of encryption, are also provided by [Link] for developing secure
applications for the interneet. Finally, ASP..NET is a powerful development framework that
providees developers with the tools and capabiliities they require to build scallable, simple to
manage, and dependable web- basedd applications.

4.1.2 Entity Framework Core-6


The multiple platforms EF-Core- 6 framework is an inexpensive and free to download. Programmer
may interact regarding database using .NET entities thanks to a method that lets them map .NET
instances to table contents in databases and the other way around. Among of the numerous database
providers confirmed by EF Core 6 that enables developers to generate inquiries using C#
programming language is Microsoft SQL Server.

[Link] Code First Approach

An ORM framework called EF offers a mechanism for mapping table contennts in databases to
CLR instances. In EF Core, the entity classes that represent the database tables are made, and the
resulting classes are then used for producing the database schema. The database structure is then
developed by the EF Core using the entity classes. The structure of the database can be created and
maintained as code using the CF methodology, which makes it simpler to manage and modify.
Migrations refers to the technique of building a database schema from entitty types. The migrations
functionality is used by EF Core to monitor modificattions to the entity classes and implement those
modifications to the database schema. Developers need to initialise the entity classses and
relationships betweeen them in order to adopt the CF strategy in EF Core.

18
4.1.3 Database
[Link] can be implemented in conjunction with SQL Server, a database management system, for
managing and retrieving data. The outcome is a robust database architecture that provides a number
of characteristics and abilities to manage data, including the capacity to process interactions,
backing up data and rehabilitation, along with data confidentiality. SQL Server is widely used in
[Link] applications that are intended for business use due to its reactivity and versatility. It can
handle a lot of data and integrate easily with other Microsoft programmes. It also offers cutting-
edge security techniques like data compression, position-based protection, and the field of auditing,
which can assist protect critical database [Link] things considered, Microsoft's SQL Server
is a reliable and practical database platform that can be utilised to administer and save data in
[Link] programmes.

4.1.4 Web-API
The term "Web API," which stands for "Web Application Programming Interface," refers to a
specific type of API designed only for web-based applications. Numerous programmes can
communicate with other applications using HTTP and HTTPS, two widely used web-based
guidelines, through a connection to the web. A RESTful API is an administrative framework for a
website that is based on the HTTP protocol. The acronym RST stands for a set of guidelines that
describe how interactions among servers and their clients should be handled. GET, POST, PUT, and
DELETE are common HTTP methods that the client can use to interact with the server-provided
contents in a RESTful architecture.

4.1.5 Unit Testing and Mocking


Mocking and Unit Testing are crucial elements in the process of producing software because they
assure the precision and standard of the manuals being written. Unit evaluation is the practise of
examining solitary individual components or sections to ensure they are functioning properly and as
intended in the overall scheme of the rental car operation. To do this, one must write autonomous
execution tests that simulate various situations and relevant data in order to verify that the final
product of the produced code produces the desired outcomes. It offers an arrangement for creating
and executing digital investigations that test the effectiveness of the many steps, techniques, and
methodologies used to create software applications.

19
4.2 Source Code
Following figures will show the source code of the CarRentalManagement Project which is written
on VS Code. This source code follows the code first approach. For each microservice the flow go as
follows, it will start from data access layer folder which has the file in models folder then to go to
the file Data folder then it will traverse itself fully in business layer and then it will move to
repositories in DAL and then move to controller.

Flow of Whole Project

20
Figure 4.2.1 – 4.2.4 These images show the workflow and all files that are available for this project.
These figures basically cover microservices and layers formed in each one of them.

Car Microservice –> Data Access Layer -> Models -> [Link]

Figure [Link] This figure depicts the attributes that will be present in Car database which is the data
that would be available for this microservice hence in the data access layer.

21
Car Microservice –> Data Access Layer -> Data -> [Link]

Figure [Link] This figure depicts the Database of CarDbContext which also makes a table
CarsFromInventory and then show the results that each of the attributes has.

Car Microservice –> Data Access Layer -> Repositories-> [Link]

22
Figure 4.2.6-4.2.9 This figures shows the CarRepository file which comprises classes or methods
that encapsulates all data logic.

23
Car Microservice –> Data Access Layer -> Repositories-> [Link]

Figure 4.2.10 This figure shows the ICarRepository which is an interface for the implementation for
CarRepository.

Car Microservice –> Business Layer ->Models-> [Link]

Figure 4.2.11: This figure shows the CarDto which is data transfer objects which is used to make
application more modular and flexible.

24
Car Microservice –> Business Layer ->Services -> [Link]

Figure 4.2.12 – 4.2.14: These figures depicts the CarService include the business services, the
services that are in charge of carrying out the program's business logic. The services themselves can
interface with the presentation layer and the data access layer in a standardised way by using Data
Transfer Objects (DTOs) in the services.

25
Car Microservice –> Business Layer ->Services -> [Link]

Figure 4.2.15: This figure shows the ICarService which is used in order to give the layer that
presents data the necessary features, the business logic layer needs to implement a set of functions
that are defined by the interface

Car Microservice –>Controller-> [Link]

26
Figure 4.2.16- 4.2.18: This figure shows the CarController is essential for handling requests that
come in, sending them through the right action method, and producing a response to send back to
the user.

RentalManagementService Microservice –>Data Access Layer-> Models


-> [Link]

Figure 4.2.19: This figure shows the file [Link] essential for handling attributes and the
columns in the customer table regarding the customers in the microservices.

27
RentalManagementService Microservice –>Data Access Layer-> Models -> [Link]

Figure 4.2.20: This figure shows the file [Link] is essential for handling attributes and the
columns in the rental table regarding the rentals in the microservices.

RentalManagementService Microservice –>Data Access Layer-> Models -> [Link]

Figure 4.2.21: This figure shows the file [Link] is essential for handling attributes and the
columns in the rented cars table regarding the rentals in the microservices.

28
RentalManagementService Microservice –>Data Access Layer-> Repositories->
[Link]

Figure 4.2.22-4.2.23: This figures shows the CustomerRepository file which comprises classes or
methods that encapsulates all data logic.

29
RentalManagementService Microservice –>Data Access Layer-> Repositories->
[Link]

Figure 4.2.24 - This figure shows the ICustomerRepository which is an interface for the
implementation for CustomerRepository

RentalManagementService Microservice –>Data Access Layer-> Repositories->


[Link]

Figure 4.2.25 - This figure shows the IRentalRepository which is an interface for the
implementation for RentalRepository.

30
RentalManagementService Microservice –>Data Access Layer-> Repositories->
[Link]

31
Figure 4.2.26-4.2.28: This figures shows the RentalRepository file which comprises classes or
methods that encapsulates all data logic.

RentalManagementService Microservice –>Data Access Layer-> Repositories->


[Link]

32
Figure 4.2.29-4.2.31: This figures shows the RentalCarRepository file which comprises classes or
methods that encapsulates all data logic.

RentalManagementService Microservice –>Data Access Layer-> Repositories->


[Link]

Figure 4.2.32 - This figure shows the IRentalCarRepository which is an interface for the
implementation for RentalCarRepository.

33
RentalManagementService Microservice –>Data Access Layer-> Data-> [Link]

Figure 4.2.33-This figure depicts the Database of RentalDbContext which also makes a table Rentals,
RentalCars, Customers table and then show the results that each of the attributes has.

RentalManagement Microservice –> Business Layer ->Services -> [Link]

34
Figure 4.2.34- 4.2.37 These figures depicts the CustomerService include the business services, the
services that are in charge of carrying out the program's business logic. The services themselves can
interface with the presentation layer and the data access layer in a standardised way by using Data
Transfer Objects (DTOs) in the services.

35
RentalManagement Microservice –> Business Layer ->Services -> [Link]

Figure 4.2.38 This figure shows the ICustomerService which is used in order to give the layer that
presents data the necessary features, the business logic layer needs to implement a set of functions
that are defined by the interface.

RentalManagement Microservice –> Business Layer ->Services -> [Link]

Figure 4.2.39 This figure shows the IRentalService which is used in order to give the layer that
presents data the necessary features, the business logic layer needs to implement a set of functions
that are defined by the interface

36
RentalManagement Microservice –> Business Layer ->Services -> [Link]

37
Figure 4.2.40- 4.2.45 These figures depicts the Rental Service include the business services, the
services that are in charge of carrying out the program's business logic. The services themselves can
interface with the presentation layer and the data access layer in a standardised way by using Data
Transfer Objects (DTOs) in the services.

38
RentalManagement Microservice –> Business Layer ->Services -> [Link]

Figure 4.2.46 This figure shows the IRentalCarService which is used in order to give the layer that
presents data the necessary features, the business logic layer needs to implement a set of functions
that are defined by the interface
RentalManagement Microservice –> Business Layer ->Services -> [Link]

39
Figure 4.2.47- 4.2.50 These figures depicts the RentalCarService include the business services, the
services that are in charge of carrying out the program's business logic

RentalManagement Microservice –> Business Layer ->Models ->[Link]

Figure 4.2.51: This figure shows the CustomerDto which is data transfer objects which is used to
make application more modular and flexible.

40
RentalManagement Microservice –> Business Layer ->Models ->[Link]

Figure 4.2.52: This figure shows the RentalDto which is data transfer objects which is used to make
application more modular and flexible.
RentalManagement Microservice –> Business Layer ->Models ->[Link]

Figure 4.2.53: This figure shows the RentalCarDto which is data transfer objects which is used to
make application more modular and flexible.
RentalManagement Microservice –>Controller-> [Link]

41
Figure 4.2.54 – 4.2.56: This figure shows the CustomerController is essential for handling requests
that come in, sending them through the right action method, and producing a response to send back
to the user.

RentalManagement Microservice –>Controller-> [Link]

42
Figure 4.2.57 – 4.2.59: This figure shows the RentalsCarController is essential for handling
requests that come in, sending them through the right action method, and producing a response to
send back to the user.

RentalManagement Microservice –>Controller-> [Link]

43
Figure 4.2.60 – 4.2.63: This figure shows the RentalsController is essential for handling requests
that come in, sending them through the right action method, and producing a response to send back
to the user.

44
PaymentService -> DataAccessLayer ->Models-> [Link]

Figure 4.2.64: This figure shows the file [Link] is essential for handling attributes and the
columns in the rented cars table regarding the rentals in the microservices.
PaymentService -> DataAccessLayer ->Data-> [Link]

Figure 4.2.65 This figure depicts the Database of PaymentDbContext which also makes a table
Payments and then show the results that each of the attributes has.

PaymentService -> DataAccessLayer ->Repositories-> [Link]

45
Figure 4.2.66-4.2.68: This figures shows the PaymentRepos file which comprises classes or
methods that encapsulates all data logic.

PaymentService -> DataAccessLayer ->Repositories-> [Link]

Figure 4.2.69: This figures shows the IPaymentRepos file which comprises classes or methods that
encapsulates all data logic.

46
PaymentService -> BusinessLogicLayer ->Models-> [Link]

Figure 4.2.70: This figure shows the PaymentDto which is data transfer objects which is used to
make application more modular and flexible.

PaymentService -> BusinessLogicLayer ->Services -> [Link]

Figure 4.2.71: This figure shows the IPaymentService which is used in order to give the layer that
presents data the necessary features, the business logic layer needs to implement a set of functions
that are defined by the interface

47
PaymentService -> BusinessLogicLayer ->Services -> [Link]

48
Figure 4.2.72 – 4.2.76: These figures depicts the PaymentService include the business services, the
services that are in charge of carrying out the program's business logic. The services themselves can
interface with the presentation layer and the data access layer in a standardised way by using Data
Transfer Objects (DTOs) in the services.

PaymentService -> BusinessLogicLayer ->Controller -> [Link]

49
Figure 4.2.77-4.2.79 This figure shows the PaymentController is essential for handling requests that
come in, sending them through the right action method, and producing a response to send back to
the user.

Migrations

50
51
52
Figure 4.2.80 – 4.2.87 These figure shows the Migrations which are used in database management
systems to help developers apply changes to the database schema.

[Link]

Figure 4.2.88 This figure shows the [Link], which has a connection string

53
[Link]

Figure 4.2.89 This figure shows the [Link]

Swagger - OpenAPI

54
Figure 4.2.90 – 4.2.93 This figure shows the Swagger API is a set of open-source tools built to help
programmers develop, design, document, and use REST APIs.

Figure 4.2.94 – 4.2.97 This figure shows the database was created on SSMS with the help of Code

55
First Approach.

56
Figure 4.2.98 – 4.2.99 These figure shows the schema of 5 tables that are made with the columns.

4.3 Limitations and restrictions


1. To establish and carry out the capacity to rent a car:
 Clients must sign onto their individual profiles.
 Each visitor is required to set up an account.

2. This application will not enable you do scheduling, booking and renting functionalities until the
billing step is finished.

3. This project prohibits renting the exact same vehicle on the exact same day. If such a result
occurred, it would throw a fatal error.

57
CHAPTER -5 RESULT AND CONCLUSION
5.1 Result and Conclusion
The primary goal of the application aims to offer a straightforward, intuitive user interface for
managing the rental sector. Customers may rapidly search for available vehicles, reserve them in
their final days and review their rental histories. It additionally provides a trustworthy financial
system that allows customers to pay for their services in a secure manner.

The project's architectural layout made use of a microservices framework, which allowed for flexible
development and adaptability. A variety of services, including those for purchases, permission from
users and authentication, rentals, and cars, are included in the project.

This project develops the backend of the project which includes the three microservices and each
microservices have all the three-layer architecture is developed. Here, we have followed best
practises were used in technologies like Entity Framework Core, SQL Server etc. The use of
architectural frameworks, interdepenndence injection, and the separation of responsibilities are all
adhered to in this project in accordance with standard behaviours for software development.

The Swagger port shows that WebAPI layer of all the microservices have been developed correctly as
all the 5 controllers have been listed and show all the HTTP verbs used are being tested out. The
Migrations were also developed so that all the tables that were made in entity models are made can
be seen on SSMS which means that migrations have been successfully made and will have the data
populated it

The PostMan was used to test and debug. The use of NUnit and Mocking was done to ensure efficient
testing and to ensure that all of it is working fine and as expected. Through the course of this
project, I understood the concepts of the CLR, CLS, FCL, code coverage, code analysis etc.

The car lease project based ASP..NET has, in general, demonstrated the practicalitty and advantages of
employing the mix of technologies to create an effective tool. Comprehension of all facets of
computer programme development, from gathering requirements to deployment, as well as the
value of applying effective developing software adheres to throughout the whole procedure, have
been provided.

58
5.2 Future Scope

The future scope of this project is to work up upon the limitations of the project that were discussed
earlier and also identify and add more functionalities to this project such as:

1. Language Support: This functionality would allow the web application to be accessible
to not only to the clients that understand English but also native languages of the country
basically make it diverse.

2. Integrating with social medias: It would help clients to share their locations to their family
members on different social media applications such as WhatsApp.

3. Rating and Feedback Services : It could develop a microservice where the client can
give rating and feedback after every rental experience.

59
REFERENCES
[1] S. Dhiman and P. Sharma, "Performance testing: A comparative study and analysis of web
service testing tools," International Journal of Computer Science and Mobile Computing, vol.5, no.
6, pp. 507-512, Jun. 2016.

[2] S. Sarasan, A. Ajith, and A. B. Archana, "Detection of Security Attacks and their
Countermeasures in ASP..//.NET Web Applications,"liin Proceedings of the IEEE International
Conference on Advances in Computing, Communications and Informatics (ICACCI), ‘’Jaipur,
India, 2016, pp. 906- 910. doi: 10.1109/ICACCI.2016.7732226.

[3] F. Reynders, "Introduction to ASP. NET Core," in Modern API Design with ASP. NET Core 2:
Building Cross-Platform Back-End Systems, 1st ed., Birmingham, UK: Packt Publishing, 2018, pp.
9-22.

[4] H. Cao, J. R. Falleri, and X. Blanc, "Automated generation of REST API specification from
plain HTML documentation," in Service-Oriented Computing: 15th International Conference,
ICSOC 2017, Malaga, Spain, November 13–16, 2017, Proceedings, Cham, Switzerland: Springer
International Publishing, 2017, pp. 453-461.

[5] A. Arcuri, "RESTful API automated test case generation," in 2017 IEEE International
Conference on Software Quality, Reliability and Security (QRS), 2017, pp. 9-20.

[6] J. Lerman and R. Miller , Programming Entity Framework: Code First: Creating and
Configuring Data Models from Your Classes, Sebastopol, CA, USA: O'Reilly Media, Inc., Nov.
2011.

[7] M. Prajapati, "ASP. NET MVC-generic repository pattern and unit of work," International
Journal of All Research Writings, vol. 1, no. 1, pp. 23-30, Jul. 2019.

[8] C. Cassell and P. Johnson, "Action research: Explaining the diversity," Human Relations, vol.
59, no. 6, pp. 783-814, Jun. 2006.

[9] D. Spadini, M. Aniche, M. Bruntink, and A. Bacchelli, "To mock or not to mock? An
empirical study on mocking practices," in 2017 IEEE/ACM 14th International Conference on
Mining Software Repositories (MSR), 2017, pp. 402-412.

[10] S. Mostafa and X. Wang, "An empirical study on the usage of mocking frameworks in
software testing," in 2014 14th International Conference on Quality Software (QSIC), 2014, pp.
127-132.

60
[11] M. M. Hassan, W. Afzal, M. Blom, B. Lindström, S. F. Andler, and S. Eldh, "Testability and
software robustness: A systematic literature review," in 2015 41st Euromicro Conference on
Software Engineering and Advanced Applications (SEAA), 2015, pp. 341-348.

[12] R. Sharma and A. Saha, "A systematic review of software testability measurement techniques,"
in 2018 International Conference on Computing, Power and Communication Technologies
(GUCON), 2018, pp. 299-303.

[13] M. M. Tikir and J. K. Hollingsworth, "Efficient instrumentation for code coverage testing," in
ACM SIGSOFT Software Engineering Notes, vol. 27, no. 4, pp. 86-96, July 2002.

61
62

Common questions

Powered by AI

Data Transfer Objects (DTOs) improve microservices architecture by facilitating structured, efficient data transfer between layers, reducing the need to expose complex internal models directly. DTOs enable the decoupling of the data access logic from business logic, which enhances modularity, readability, and maintainability of the code. This separation allows for changes within each layer without affecting the others, thus promoting more seamless scalability and evolution as applications grow in complexity over time .

Car rental management systems utilize microservices to streamline operations and improve their efficiency by dividing the system into smaller, independent services. The use of microservices allows the system to maintain and manage their fleet efficiently, including car details like availability and rental history. Each microservice focuses on specific tasks: the Car Management Microservice handles the fleet, the Rental Microservice manages rental transactions, and the Payment Microservice processes payments. This separation of concerns allows for better scalability, maintenance, and integration .

Mocking in software testing faces challenges such as identifying which dependencies should be mocked and maintaining test validity as code evolves. Despite these difficulties, mocking improves test coverage by allowing developers to isolate the unit under test from external dependencies, thus simulating interactions with components not directly involved in the test cases. This enables tests to be conducted in a controlled environment, focusing on the logic of the code itself rather than its dependencies, which ultimately increases the reliability of test outcomes .

Securing communication between microservices in a car rental management system involves several critical security measures. Implementing HTTPS ensures encrypted data transmission, while OAuth tokens or JWT (JSON Web Tokens) can be used for secure authentication and authorization. Network segmentation and firewalls restrict access levels between services, and API gateways help manage and secure endpoint access. Monitoring and logging provide real-time data to detect and respond to potential threats, enhancing the system's overall security posture .

The hybrid approach leveraging both Database-First and Code-First methodologies in Entity Framework 6 offers several advantages. It allows developers to generate an initial model using the structured approach of Database-First, which aligns well with existing database schemas. Subsequent model customization can be achieved using Code-First methodologies, providing flexibility to modify and extend models as application requirements evolve. This approach nurtures a balance between adhering to existing infrastructure while being adaptable to changes, fostering both stability and innovation in application development .

Methods to integrate the car microservice with other services like Rental and Payment microservices include using RESTful APIs to allow seamless communication between services. API gateways can be employed to aggregate service calls and handle cross-cutting concerns such as authentication, logging, and rate limiting. Message brokers could facilitate asynchronous communication, ensuring system reliability even if one service is temporarily unavailable. Data consistency and synchronization can be managed through techniques like two-phase commit or eventual consistency mechanisms, ensuring the entire system operates cohesively .

The payment microservice in a car rental management system handles transactions by managing the flow of financial data and ensuring secure, accurate payment processing. Key components include the PaymentDbContext, which manages database interactions such as storing and retrieving payment information, and classes like PaymentRepository, which encapsulate the business logic required for handling payments. This decoupled architecture ensures that payment logic can be updated or replaced without affecting other system parts, thereby maintaining overall resiliency and reliability .

ASP.NET Core enhances microservice architecture development by providing comprehensive tools and frameworks that support efficient service creation. It allows for dependency injection, which simplifies the management of component lifetimes and dependencies, supporting cleaner, more maintainable code. The middleware pipeline in ASP.NET Core aids in customizing requests and enhances security and performance. Furthermore, its modularity and support for RESTful services make it well-suited for developing scalable and robust microservices such as those needed in a car rental management system .

The data access layer (DAL) in the car management microservice plays a critical role in interfacing with the database to perform CRUD operations. It is implemented using Entity Framework, which supports ORM to map data between the class model and the relational database. Classes such as CarRepository and interfaces like ICarRepository encapsulate data logic, ensuring a structured approach to data handling. Through this layer, all data interactions are centralized and isolated, promoting maintainability and scalability .

Automated REST API generation enhances testing and development by providing a standardized approach to API development, leading to rapid iteration and reduced error rates. By automatically generating API specifications from existing HTML documentation, developers can ensure that the API is consistent and adheres to expected behavior, facilitating easier integration and testing processes. This approach aids in reducing manual intervention and allows developers to focus on other high-level design tasks, thereby streamlining development workflows and improving application reliability .

You might also like