This report is part of the end of studies project that was developed within
InspiredWorkX enterprise, with a view to obtaining a Bachelor degree in Software Engineering
at Esprit Tunisia. The work carried out consisted in designing, developing and making a success
P2P car rental web application named RentedWheels
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
P2P car Rental platform.pdf
1. Software engineering
Design and development of a P2P car
Rental Platform
2020 - 2021
By: Raed Hamaoui
Academic supervisor: Mrs. Rawia Bdiwi
Corporate Internship Supervisor: Mr. Travor Akwenye
2. I authorize The student Raed Hamaoui to submit his
final internship report.
Mrs. Rawi Bdiwi, Academic Supervisor
Signature
3. DEDICATIONS
I dedicate this work to my loving parents, the crown jewel of my life. They never left my side
and always supported me no matter what. Thank you for giving me the warmth of love and
believing in me, caring about me and giving me the iron will to break my limits and advance
onto new heights.
My Sister and my brother to whom I owe all my love, with all my heart I wish to see them
succeed in their lives.
And my friends, the ones who encouraged and challenged me, thank you for being besides All
this time.
Raed Hamaoui
4. APPRECIATIONS
We’d like to start by expressing our appreciation and gratitude towards Madame
Rawia Bdiwi who was an amazing academic advisor. We'd like to thank her for all the
support that she provided through those times.
We’d also like to thank Mr. Travor Akwenye for his dedication towards the project
and Mr. Kheireddine Akrmi for Helping and pushing us beyond our limits.
The whole academic family of Esprit for being such great mentors and for the effort
that they’ve put into teaching and training us students throughout the past years. We sincerely
and deeply thank the members of the jury for their time and expertise to evaluate our work. It
is an honor for us to have our work reviewed by you.
5. Table of Contents
General introduction .......................................................................................................... 18
Project Context .................................................................................................................. 20
Introduction .......................................................................................................................... 20
1. Presentation of the host organization ............................................................................ 20
1.1 Organization Chart................................................................................................. 20
1.2 Organization Services ............................................................................................ 21
1.2.1 Website and Software Development .............................................................. 21
1.2.2 Mobile App Development .............................................................................. 21
1.2.3 Logo and Branding ......................................................................................... 21
1.2.4 Search Engine Optimization........................................................................... 21
1.2.5 Social Media Marketing ................................................................................. 22
2. Context and objectives .................................................................................................. 22
2.1 The problem statement........................................................................................... 22
2.2 Existing state analysis............................................................................................ 22
1.2.1 Location context and area of interest.............................................................. 23
1.2.2 Delay of response ........................................................................................... 23
1.2.3 User Experience.............................................................................................. 23
2.3 Proposed Solution .................................................................................................. 23
3. Development methodology ........................................................................................... 24
3.1 Agile methodology................................................................................................. 24
3.2 Scrum Methodology............................................................................................... 25
3.3 Modeling languages............................................................................................... 26
4. Actual and Provisional planning ................................................................................... 26
6. 4.1 Provisional planning .............................................................................................. 26
4.2 Actual planning...................................................................................................... 27
5. Conclusion..................................................................................................................... 28
State of art.......................................................................................................................... 29
Introduction .......................................................................................................................... 29
1. Sharing and P2P Economy............................................................................................ 29
1.1 Sharing Economy................................................................................................... 29
1.2 P2P Economy......................................................................................................... 29
2 P2P Vehicle Sharing Concept ....................................................................................... 29
3 Solutions for Car Rental Platform RentedWheels......................................................... 30
3.1 Module for Client................................................................................................... 31
3.2 Module for Host..................................................................................................... 31
3.3 Administrative Core............................................................................................... 31
3.4 APIs from third parties........................................................................................... 31
3.5 High-tech and high-performance ........................................................................... 31
3.6 Increased Productivity ........................................................................................... 31
3.7 Car Rental Software Program Features.................................................................. 32
3.7.1 System for booking Management :................................................................. 32
3.7.2 Integration of a Payment Gateway : ............................................................... 32
3.7.3 Manage Reservations :.................................................................................... 32
3.7.4 Reports :.......................................................................................................... 32
3.7.5 Identity verification ........................................................................................ 32
3.7.6 Smart search Filter:......................................................................................... 33
3.7.7 Blogging ......................................................................................................... 33
1 Conclusion..................................................................................................................... 33
Requirements Analysis and Design................................................................................... 34
7. Introduction .......................................................................................................................... 34
1. Functional and non-functional requirements................................................................. 34
1.1 Functional requirements......................................................................................... 34
1.1.1 Car Renters Booking Website. ....................................................................... 34
1.1.2 Car Owners Dashboard panel......................................................................... 36
1.1.3 Car Owners Dashboard panel......................................................................... 36
1.2 Non-functional requirements ................................................................................. 37
2. Project management using Scrum................................................................................. 38
2.1 Scrum Team........................................................................................................... 38
2.2 Product Backlog..................................................................................................... 38
2.3 Specification of global functional requirements .................................................... 39
2.3.1 Identifying the actors...................................................................................... 39
2.3.2 Global use case diagram................................................................................. 40
3. Release planning ........................................................................................................... 41
4. Development environment ............................................................................................ 42
4.1 Hardware environment........................................................................................... 42
4.2 Software environment............................................................................................ 42
5. Architectural View of the system.................................................................................. 45
5.1 MVVM Design Model........................................................................................... 45
5.2 Logical architecture of the system ......................................................................... 46
6. Conclusion..................................................................................................................... 47
Sprint 1: Account Management......................................................................................... 48
Introduction .......................................................................................................................... 48
1. Sprint Backlog............................................................................................................... 48
2. Functional requirement ................................................................................................. 49
2.1 Use case diagram of sprint 1.................................................................................. 49
8. 2.2 Text description of the use cases: .......................................................................... 50
Use case Register .......................................................................................................... 50
Use case Authentication................................................................................................ 51
Use case Edit Profile ..................................................................................................... 52
Use case Update password ............................................................................................ 53
3. Conceptual modeling..................................................................................................... 54
3.1 Class diagram......................................................................................................... 54
3.2 Sequence diagrams................................................................................................. 54
3.2.1 Sequence diagram for “Authenticate” use case.............................................. 55
3.2.2 Sequence diagram for “Edite profile” use case .............................................. 55
4. Activity diagram............................................................................................................ 56
1.1 Activity diagram “Edit profile”............................................................................. 56
5. Implementation.............................................................................................................. 57
5.1 Login...................................................................................................................... 57
5.2 Register .................................................................................................................. 57
5.3 Edit Profile............................................................................................................. 58
5.4 Change Password................................................................................................... 58
6. Conclusion..................................................................................................................... 59
Sprint 2: Booking Management......................................................................................... 60
Introduction .......................................................................................................................... 60
1. Sprint Backlog............................................................................................................... 60
2. Functional requirement ................................................................................................. 61
2.1 Use case diagram of sprint 2.................................................................................. 61
2.2 Text description of the use cases: .......................................................................... 61
2.2.1 Use case Search car: ....................................................................................... 61
2.2.2 Use case Filter ................................................................................................ 63
9. 2.2.3 Use case View cars......................................................................................... 64
2.2.4 Use case Select car ......................................................................................... 65
2.2.5 Use case Validate Identity .............................................................................. 66
2.2.6 Use case Payment ........................................................................................... 67
2.2.7 Use case Review car....................................................................................... 68
3. Conceptual modeling..................................................................................................... 69
3.1 Class diagram......................................................................................................... 69
3.2 Sequence diagrams for car booking....................................................................... 70
4. Activity diagram............................................................................................................ 71
4.1 Activity diagram “Booking”................................................................................. 71
5. Implementation.............................................................................................................. 72
5.1 Register Cars.......................................................................................................... 72
5.1.1 Add Car Info.................................................................................................. 72
5.1.2 Add Basic Info details .................................................................................... 72
5.1.3 Add Mile age cap............................................................................................ 73
5.1.4 Add Car feature and specifications................................................................. 73
5.1.5 Add Car rules and precautions........................................................................ 74
5.1.6 Display Cars in host Panel.............................................................................. 74
5.2 Search car............................................................................................................... 75
5.2.1 Search box and input ...................................................................................... 75
5.2.2 Select Car Make.............................................................................................. 75
5.3 Select Car by Latest cars, Popular destination or experience ........................... 76
5.4 Advanced Filter...................................................................................................... 77
5.5 Display cars............................................................................................................ 78
5.5.1 Display cars .................................................................................................... 78
5.5.2 ToggleMap...................................................................................................... 79
10. 5.5.3 Toggle Map and filer ...................................................................................... 79
5.6 Display car and select booking options.................................................................. 80
5.7 Payment.................................................................................................................. 81
5.8 Current and Booking history.................................................................................. 82
5.8.1 Display Current booking ................................................................................ 82
5.8.2 Display Booking history................................................................................. 82
5.9 Identity verification................................................................................................ 83
5.9.1 Add license ..................................................................................................... 83
5.9.2 Take a capture................................................................................................. 83
5.9.3 List Users........................................................................................................ 84
5.9.4 Verify User ..................................................................................................... 85
5.10 Check Rating and reviews ..................................................................................... 85
6. Conclusion..................................................................................................................... 86
Sprint 3 : Communication Modules................................................................................... 87
Introduction .......................................................................................................................... 87
1. Sprint Backlog............................................................................................................... 87
2. Functional requirement ................................................................................................. 88
2.1 Global use case diagram of sprint 3....................................................................... 88
2.2 Text description of the use cases............................................................................ 89
2.2.1 Use case Check Privacy policy....................................................................... 89
2.2.2 Use case Check Cancellation Policy .............................................................. 89
2.2.3 Use case Check Help Page ............................................................................. 90
2.2.4 Use case diagram Chat ................................................................................... 91
2.2.5 Use case diagram Mange blog........................................................................ 92
3. Conceptual modeling..................................................................................................... 93
3.1 Class diagram......................................................................................................... 93
11. 3.2. Sequence diagrams................................................................................................. 93
3.2.1 Sequence diagram for “Check Help Message” use case ................................ 94
3.2.2 Sequence diagram for “Check Help Message” use case ................................ 94
3.2.3 Sequence diagram for “manage blogs” use case ............................................ 95
4. Implementation.............................................................................................................. 96
4.2 Notification ............................................................................................................ 96
4.2.1 Check for Notification.................................................................................... 96
4.3 Cancellation Policy ................................................................................................ 97
4.3.1 Edit cancellation policy .................................................................................. 97
4.3.2 Cancellation policy Page ................................................................................ 97
4.4 Help........................................................................................................................ 98
4.4.1 FAQs............................................................................................................... 98
4.4.2 Help Message ................................................................................................. 98
4.5 Chat........................................................................................................................ 99
4.6 Blog...................................................................................................................... 100
4.6.1 Preview Blog ................................................................................................ 100
4.6.2 Create Blog................................................................................................... 100
4.6.3 Blogs............................................................................................................. 101
4.6.4 Blog details................................................................................................... 102
4.6.5 Blog comments and responses...................................................................... 102
5. Conclusion................................................................................................................... 103
Sprint 4: Rental Stats and Coupons Management ........................................................... 104
Introduction ........................................................................................................................ 104
1. Sprint Backlog............................................................................................................. 104
2. Functional requirement ............................................................................................... 104
2.1 Text description of the use cases: ........................................................................ 105
12. 2.1.1 Global use case diagaram of Sprint 4 ........................................................... 105
2.1.2 Use case Preview statistics ........................................................................... 106
2.1.3 Use case Preview and Manage Coupons ..................................................... 107
2.1.4 Use case Withdraw history and payment ..................................................... 108
3. Conceptual modeling................................................................................................... 109
3.1 Class diagram....................................................................................................... 109
3.2 Sequence diagrams............................................................................................... 109
Sequence diagram for “Preview and add coupons” use case ...................................... 110
4. Implementation............................................................................................................ 110
1.1 Preview stats ........................................................................................................ 110
Total revenue and commission graph.......................................................................... 111
Total revenue............................................................................................................... 111
Sales report.................................................................................................................. 112
1.2 Coupons ............................................................................................................... 112
Display coupons .......................................................................................................... 112
Add Coupon ................................................................................................................ 113
1.3 Payment withdrawal............................................................................................. 114
Payment cards ............................................................................................................. 114
Add Withdraw............................................................................................................. 115
5. Conclusion................................................................................................................... 115
Conclusion and Perspectives ........................................................................................... 116
Annex............................................................................................................................... 117
13. List Of figures
Figure 1:logo of InspiredWorkX.............................................................................................. 20
Figure 2: Organization chart..................................................................................................... 20
Figure 3: Agile Scrim process.................................................................................................. 24
Figure 4:Scrum process............................................................................................................ 25
Figure 5: UML modeling Language......................................................................................... 26
Figure 6:Gantt chart of the actual project schedule.................................................................. 27
Figure 7: Global Use Case Diagram ........................................................................................ 40
Figure 8:Sprint Planning .......................................................................................................... 41
Figure 9:Angular MVVM Pattern............................................................................................ 45
Figure 10: Physical architecture............................................................................................... 46
Figure 11:Use case diagram Sprint1 ........................................................................................ 49
Figure 12: class diagram sprint #1 ........................................................................................... 54
Figure 13:Sequence diagram for “Authenticate” use case....................................................... 55
Figure 14:sequence diagram "edit profile ................................................................................ 55
Figure 15:Activity diagram Edit profile................................................................................... 56
Figure 16::Login desktop interface .......................................................................................... 57
Figure 17:Figure 38::Sign up Desktop interface..................................................................... 57
Figure 18:Edit desktop interface ............................................................................................. 58
Figure 19:Use case diagram of sprint 2.................................................................................... 61
Figure 20:Class diagram Sprint #2........................................................................................... 69
Figure 21:Sequence diagram for “Car Booking process” ........................................................ 70
Figure 22:Activity diagram booking........................................................................................ 71
Figure 23:Add car info interface .............................................................................................. 72
14. Figure 24: car basic info details ............................................................................................... 72
Figure 25: Mile age cap interface............................................................................................. 73
Figure 26: Car features interface.............................................................................................. 73
Figure 27:Car rules and precautions interface......................................................................... 74
Figure 28:My cars list interface ............................................................................................... 74
Figure 29:Header card interface............................................................................................... 75
Figure 30: Select car make interface........................................................................................ 75
Figure 31; Interfaces for select car by latest cars, destination and experience ........................ 76
Figure 32:Advanced filter dialog HMI..................................................................................... 77
Figure 33: display cars interface .............................................................................................. 78
Figure 34:Display cars and filter card ...................................................................................... 79
Figure 35:display cars and Map card ....................................................................................... 79
Figure 36:Figure 36:Car details................................................................................................ 80
Figure 37: Payment interface ................................................................................................... 81
Figure 38:Current booking interface........................................................................................ 82
Figure 39:Booking history interface ........................................................................................ 82
Figure 40: Add driver's license interface.................................................................................. 83
Figure 41:Take capture interface.............................................................................................. 83
Figure 42:Capture with license id ............................................................................................ 84
Figure 43: Display user interface ............................................................................................. 84
Figure 44: Verify user interface ............................................................................................... 85
Figure 45:My rating and reviews interface .............................................................................. 85
Figure 46: use case diagram of sprint #3.................................................................................. 88
Figure 47:class diagram of sprint #3........................................................................................ 93
Figure 48:Sequence diagram “send suggestion”...................................................................... 94
Figure 49:Sequence Diagram of chat....................................................................................... 94
16. List Of Tables
Table 1:Scrum Team ................................................................................................................ 38
Table 2:Main Actors................................................................................................................. 39
Table 3:hardware environment................................................................................................. 42
Table 4:Text description of the use case “Register” ................................................................ 50
Table 5:Text description of the use case “Authenticate” ......................................................... 51
Table 6:Text description of the use case “Edit Profile”........................................................... 52
Table 7:Text description of the use case “Update Password”.................................................. 53
Table 8:Text description of the use case “search car”.............................................................. 62
Table 9:Description of use case “filter” ................................................................................... 63
Table 10:Text description of use case “View cars” ................................................................. 64
Table 11:Text description of the use case “Select Car”........................................................... 65
Table 12:Text description of use case “Validate identity”....................................................... 66
Table 13:Text Description of use case “Payment”................................................................... 67
Table 14:Text description of sprint4 ........................................................................................ 68
Table 15:Text description of “consult privacy policies” use case............................................ 89
Table 16:Text description of “consult cancellation policies” use case .................................... 89
Table 17:Text description of “consult faqs and send suggestion” use case............................. 90
Table 18:Text description of use case chat .............................................................................. 91
Table 19:text description of the use case “Manage blogs” ...................................................... 92
Table 20:Text description of “Preview stats” use case .......................................................... 106
Table 21:Text description of “Preview and manage coupons” use case............................... 107
Table 22:Text description of “Withdraw history and payment” use case.............................. 108
Table 23:Product Backlog...................................................................................................... 117
17. Table 24:Sprint Backlog #1.................................................................................................... 121
Table 25:Backlog of sprint #3................................................................................................ 126
Table 26:Backlog of sprint 4.................................................................................................. 129
18. List of abbreviations
• P2P=Peer to Peer
• CSS = Cascading Style Sheets
• HTML = Hypertext Markup Language
• SQL = Structured Query Language
• UML = Unified Modeling Language
• HMI = Human Machine Interface
• MVVM = Model Vew Vew Model
19. General Introduction
P a g e 18 | 134
General introduction
Technology has infiltrated every aspect of our lives, and it has also had an impact on
travel and transportation. Car rental platforms have recently shown that the need is much bigger
than we might have thought. This is all due to the advent of online car rental software and
booking apps and the integration of new concepts and models like the sharing economy,
spatially the peer to peer model economy, which have allowed new entrepreneurs to provide a
seamless and organized service to their consumers.
Peer to Peer car rental management can seem like a broad and all-encompassing term.
P2P car rental management is the process that business uses to manage all rentals and asset
information, from acquisition through to disposal. This enables businesses to reduce costs,
increase revenue for car owners, improve efficiency and ensure compliance across an entire
fleet operation.
In order to manage a fleet, a P2P car sharing service provider may rely on a rental
management platform; this software is aiming to hold all the records of vehicles, clients, car
owners and manage its information through a large and complex suite of options.
The peer-to-peer car sharing market size (1) was valued at $1,015.7 million globally in
2020, and it is expected to grow at a CAGR of 21.7% during 2020–2030.
In this context fits our end-of-study project realized in InspiredWorkX for the client
RentedWheels which is a startup that plans to launch a peer-to-peer (P2P) car-sharing
marketplace, and is aiming to become the world's largest peer-to-peer car-sharing platform.
The desired result is to have a robust, reliable structure that alleviates the complexities and
flaws in the existing solution. This report describes the different stages of our work, and is
structured around 7 chapters and lastly, we will close this report and illustrate our conclusion
and the project perspectives.
20. General Introduction
P a g e 19 | 134
1. The first chapter will cover the general context of our project.
2. In the second chapter, we will present the state of art of the platform.
3. The third chapter will cover the project planning, the global requirement’s analysis
design, illustrate our product backlog, and finally present the logical architecture of
the project and our development environment
4. The fourth chapter will cover the development of the first sprints where we will
explain the sprint backlogs, the description of use cases, it will include the
conceptual phase and we will finish with the implementation and the result achieved.
5. The fifth chapter will cover the development of the Cooking Management sprint
where we will explain the sprint backlogs of the booking process, the description of
use cases, it will include the conceptual phase and we will finish with the
implementation and the result achieved.
6. The sixth chapter will cover the development of the communication modules where
we will explain the sprint backlogs, the description of use cases, it will include the
conceptual phase and we will finish with the implementation and the result achieved.
7. The seventh chapter will cover the development of the last sprint where we will
explain the sprint backlogs, the description of use cases for the rental stats and
coupons management, it will include the conceptual phase and we will finish with
the implementation and the result achieved.
21. Chapter 1 : Project Context
P a g e 20 | 134
Project Context
Introduction
This first chapter presents the host organization as well as the motivations and the
context of the project to be carried out. Thereafter, we will explain the problem and the
objectives of the work to achieve.
1. Presentation of the host organization
InspiredWokX was founded in 2020, It is a professional experienced and forward
thinking full-service digital agency, its greatest strength is transforming the client needs into
effective solutions that drive client trust, loyalty and revenue growth.
Figure 1:logo of InspiredWorkX
We present in the following the host organization in which our internship took place and
its services.
1.1 Organization Chart
Figure 2: Organization chart
22. Chapter 1 : Project Context
P a g e 21 | 134
1.2 Organization Services
InspiredWokX offers various services in the technology sector:
1.2.1 Website and Software Development
• MyAjarn: A cloud-based unified e-learning solution that combines a learning
management system (LMS), a classroom management system (CMS) and a virtual
classroom.
• Happy Grocers: This is the leading online platform in Southeast Asia , currently
operating in various cities in Indonesia, Malaysia, and Thailand and aims to create
a sustainable food system.
• Website Design : InspiredWorkX will provide a unique, responsive, eye catching
and user-friendly design that will attract visitors.
✓ A design for your desktop, tab and mobile.
✓ A beautiful, modern design that makes a difference.
✓ sales with a strategically built user experience.
1.2.2 Mobile App Development
InspiredWorkX is offering IOS and Android mobile app development services to reach
customers on their preferred devices.
• IOS app development
• Android app development
1.2.3 Logo and Branding
As Branding is a critical component of the company, InspiredWorkX can help clients to create:
• One design for desktop, tab and mobile.
• Beautiful and modern design that adds business value.
• Branding that creates an emotional connection with customers.
1.2.4 Search Engine Optimization
InspiredWorkX will help the client to develop his unique SEO Strategy and continually
train him on SEO principles so that it becomes a natural part of his development process.
23. Chapter 1 : Project Context
P a g e 22 | 134
• Local SEO Services.
• Content Driven, White Hat SEO.
• Increase your online visibility with custom SEO Strategy.
1.2.5 Social Media Marketing
InspiredWokX makes a result-oriented approach where everything from social profile
listing to the execution of social media campaigns have a specific goal of meeting your brand’s
objectives. They include:
• Organic Social Media Strategy.
• Creating and managing campaigns.
• Creating & managing campaign assets: pages, accounts etc.
2. Context and objectives
We cannot start this project without having a clear and precise idea of the problematic
and a full understanding of the requirements and needs of the Client
2.1 The problem statement
In order to be successful, RentedWheels must intervene in the transportation sector to
meet the needs of any user to have momentary use of a desired vehicle through its own platform
which must guarantee the communication between three main actors, the customer, the renter
and the service provider.
RentedWheels must ensure the reliability of the data gathering and all the information
of the customers, the cars and the car owner, the challenge is to automate more tasks, reduce
the response time, increase the performance and certainly provide identity verification and
make emergent improvements compared to the existing solutions.
➢ Solving the underused vehicle issue, while making renting easier and more
affordable.
2.2 Existing state analysis
In recent years, various companies have invested in the carsharing marketplace but they
differ greatly in terms of perspectives. In this section, we will discuss some of the existing
distributed solutions, and present common shared critics.
24. Chapter 1 : Project Context
P a g e 23 | 134
1.2.1 Location context and area of interest
Most of the service promoters focus on local customers like Turo, Getaround.
Moreover, we can see that the Middle East, Africa and Latin America are still absent, but they
remain a potential future market due to the revolution and the development of infrastructure,
technology and civilization in these countries.
Some players focus on a context of proximity, rather rural. This is the case for example
of Buzzcar, Drivy, and Ouicar in France whose main area of interest is around airports.
1.2.2 Delay of response
Once registered with a company as carshare, the customer must wait for a membership
card to arrive in the mailing box before being able to rent a vehicle. The card is used to unlock
the car so the client may not make an instant location.
1.2.3 User Experience
It is clear that the providers of p2p car sharing service are focusing on the customer side
but regarding the host, the experience might be stressful which is reasonable because of security
reasons. Indeed the stack of a smoother user experience and less tasks is highly recommended.
2.3 Proposed Solution
After further examination of the already existing solutions and with the aim of
overcoming the limitations, we were able to identify several anomalies that we have detailed in
the previous section.
To make use of these anomalies, RentedWheels seeks to propose to design and
implement a platform that will enhance the user experience, represent in a coherent and high
frequency manner three models:
• Car Renters Booking Website.
• Car Owners Dashboard panel And Master Admin Dashboard Panel.
In this project we are aiming to solve two major problems, the ease of searching the
desired car, the booking and the identity verification process, in addition of the key
functionalities of the renter and the admin panels, reduce response time and increase
performance.
25. Chapter 1 : Project Context
P a g e 24 | 134
The system will be written in AngularInvalid source specified. (frontend) and
NodJS[4] (Backend Rest API) using MySQL Database.
3. Development methodology
A development methodology is a set of principles and values that help guide a team to
achieve their desired goal by defining steps to follow and documents to prepare in order to
finalize a project. It is crucially important to choose the right methodology based on the size
and type of the project.
3.1 Agile methodology
The Agile methodology was born out of frustration with the long (and often tedious)
development cycle associated with traditional product development. The time required to
complete each step of the process, from writing requirements to the end product delivery was
too long and did not meet the needs of a constantly changing business.
Organizations that use agile methods not only enjoy benefits such as faster software
delivery schedules, but also manage to better align customer and business needs and deliver the
software in the best delays. In addition, teams use metrics to track progress and evaluate their
performance after each iteration.
Indeed, as the diagram in the figure shows, agility must affect all stages of the project,
not just the development teams.
Figure 3: Agile Scrim process
26. Chapter 1 : Project Context
P a g e 25 | 134
3.2 Scrum Methodology
For the design and implementation of our project and in order to ensure the good
progress among the various phases, we opted for the Scrum agile method for several reasons.
indeed the Scrum process adapts perfectly to the decomposition of our system, it is based on
the following advantages:
• More flexibility and reactivity,
• Great capacity to adapt to change thanks to short iterations,
• Satisfy the client's needs as much as possible.
Scrum: Is an agile methodology that consists of having a cooperative team guiding the
project’s progress. This approach is both dynamic and productive, resulting in the realization
of functionalities by iteration including the participation of the client. Each iteration can last
from two to four weeks and at the end of each sprint a functional product must be delivered.
Indeed, Scrum defines three roles:
• The Product Owner: is the official representative of the customer within a SCRUM
project. He defines and prioritizes the product requirements. This role is presented in
our project by Mr. Travor Akwenye.
• The SCRUM Master: this is the person who facilitates the application of the method
and ensures that its objectives are met. He is responsible for the communication. He
does not play the role of a project manager, but he is in charge of overcoming any
obstacles that would prevent the team and the project from progressing during the
different Sprints. He is the key player in the conflict management.
• The project team (SCRUM Team Members): These are the people responsible for the
execution of the Sprints and deliverables. The members must collaborate together and
be autonomous in order to meet the customer's requirements and commitments.
Figure 4:Scrum process
27. Chapter 1 : Project Context
P a g e 26 | 134
3.3 Modeling languages
To help visualize and conceptualize our project, we opted to use the unified modeling
language UML. The UML was developed in 1994-1996 by Grady Booch, Ivar Jacobson and
James Rumbaugh at Rational Software in order to specify, visualize and construct documents
that describe the development process of the project.
We consider the language best suited to provide RentedWheels with an understandable
presentation. The various UML diagrams provide a good exposition of our solution.
Figure 5: UML modeling Language
4. Actual and Provisional planning
4.1 Provisional planning
In January, about a month after the beginning of the development, a provisional sheet
was made on the planning. It appeared that the realization of certain tasks was very laborious
because of the lack of resources and information, or sometimes the feasibility of the task.
Adding to that I’m simply an intern who is aiming to learn more tools, gain more
knowledge and practice my development and soft skills in a professional environment with
direct clients and superiors. I was required to develop the entire platform; client side and 2
dashboards for both desktop and mobile apps with Ionic.
In order to unblock the development of the project, it was decided for the internship
period To focus on the client side development which must be responsive and prepare the two
dashboards panels for the super admin and host.
28. Chapter 1 : Project Context
P a g e 27 | 134
4.2 Actual planning
The following Gantt chart reconstitutes and describe the progress of the tasks carried
out since the launch of the project.
Figure 6:Gantt chart of the actual project schedule
29. Chapter 1 : Project Context
P a g e 28 | 134
5. Conclusion
In this chapter, we gave a brief description of the host organization, the main problem
and the required work to solve it, while also providing the development methodology and
modeling language used to achieve our goal. Finally, this will lead us to the next chapter in
which we will discuss the requirements specification.
30. Chapter 2: State of Art
P a g e 29 | 134
State of art
Introduction
This first chapter presents the state of arts of our project, there for we will go throw
some relative definitions and present the advantages, the innovative and advances modules that
our platform is seeking to achieve.
1. Sharing and P2P Economy
1.1 Sharing Economy
The sharing economy (2) is a new consumption model linked to the development of the
Internet and communication technologies. It is based on the exchange, sharing and collaboration
between individuals of goods, services, resources, time or knowledge via dedicated platforms.
1.2 P2P Economy
A peer-to-peer economy (3) is a model of the sharing economy in which two individual
parties (buyer and seller) interact directly to provide goods and services. There is no need for a
third-party intermediary. The sharing economy model and applications such as Uber and Airbnb
allow the peer-to-peer economy to thrive because they remove the role of third parties.
2 P2P Vehicle Sharing Concept
Peer-to-Peer Vehicle Sharing Platform means any software, application, website, or
online system offered or used for the purpose of renting cars and providing various services for
the rental of vehicles. “Definition based on TNC legislation”
In recent centuries, metropolitan cities have been welcoming more people from the
working class, especially young people, who contribute greatly to the middle level income of
the population. This set of people want to enjoy the various luxuries of life, but this luxury is
not always their top priority like possessing a car.
31. Chapter 2: State of Art
P a g e 30 | 134
Cars: The initial investment is heavy, in the long run it is practical but it remains an
essential vector of the development of our personal mobility for prosperity. On the other hand,
in this paradigm of personal mobility, we mark every day a real paradox creating a disparity
between the ownership and the use of a vehicle (cars are driven only 8% of the time on average)
presenting many negative consequences while marking our footprint on the environment.
The peer-to-peer model is gaining popularity. Young adults are generally the main target
of collaborative consumption sites. They often have low incomes, but thanks to this concept,
they can enjoy convenient and inexpensive services.
Studies show that peer-to-peer (P2P) carsharing has increased, reduced vehicle miles
traveled, and reduced fuel consumption and greenhouse gas emissions, “For service members
and their families, P2P carsharing has the potential to provide on-demand, short-term access to
a fleet of personally owned motor vehicles while allowing service members to share their
vehicles and earn additional income during temporary absences, such as temporary duty
assignments and deployments.” added Susan Shaheen, professor in civil and environmental
engineering, and co-director of the Transportation Sustainability Research Center, at the
University of California, Berkeley.
It is a renowned car rental software firm that creates unique car booking systems for
clients all over the world. With a vehicle rental website, booking engine, end user, host, super
admin web apps, the automobile reservations system is a full solution. This cloud-based
automobile booking system can be incorporated into your existing website, giving your
customers access to real-time car availability, pricing, and quick booking confirmation.
Using our booking software, which includes reservation, scheduling, dispatch, and
payment processing, you can streamline your car rental business. Connect with digital
customers using passenger mobile apps that are custom-branded for your company. With our
driver mobile app, you can communicate with drivers and track their progress.
3 Solutions for Car Rental Platform RentedWheels
With advanced fleet management, online bookings, billing, smart search, instant chat
and identity verification, we provide a comprehensive car rental software platform. Rented
Wheels platform is composed of three related web apps that can be complemented by native
Android and IOS mobile apps as Ionic combines Ionics’s core UI components, gestures and
animations with tools and APIs tailored for Angular which may be deployed afterwards.
32. Chapter 2: State of Art
P a g e 31 | 134
3.1 Module for Client
A user-friendly UI interface with a comprehensive booking process for end users. Users
can see cars listed for booking and click on smart search filter that return results of cars based
in the filter and display the results on the google maps as markers.
Users can also get a fare calculator for budgeting and coupons in addition to the main
features of the booked car. They can also send an instant chat to the car owners, rate a car and
comment the blogs. The Billing and Invoicing System generates an invoice based on the
vehicle’s trip distance and duration.
3.2 Module for Host
A one of kind interfaces enabling car owners to examine all information related to
booking requests and can access and change desired inventory and pricing information. Admins
can establish profiles for various hosts in order to connect their cars.
3.3 Administrative Core
Inventory management, clients and hosts management, payments modules are among
the modules that make up the core admin. The Admin can view statics of the fleet and download
reports based on calendar.
3.4 APIs from third parties
Smouth and well organized API solutions and a variety of third-party APIs, such as
SMS gateways and online payment gateways, may all be smoothly integrated with the core
vehicle rental platform.. Our next-generation car rental software (with API integration) includes
best-in-class modules to keep RentedWheels ahead of the competition.
3.5 High-tech and high-performance
RentedWheels development deliverables are based on top technology stacks in various
technological platforms. Infrastructure, operational, and resource costs, are taken into account.
3.6 Increased Productivity
While delivering the RentedWheels platform, we use agile development process and
daily communication to stay on track.
33. Chapter 2: State of Art
P a g e 32 | 134
3.7 Car Rental Software Program Features
3.7.1 System for booking Management :
The Host and the admin of RentedWheels have the ability to manage the car that has
been added to the system. cars can be added based on the hosts and include all necessary
information. This system includes a panel for detailed bookings stats and reporting. There is
also a tracking system for the active bookings.
3.7.2 Integration of a Payment Gateway :
Customers can pay for their rental car using a variety of methods. Users will be able to
use credit cards, debit cards to make payments. Users can also keep track of their payments and
booking status in their account.
3.7.3 Manage Reservations :
Admin are in charge of all reservations. Depending on the protocol, booking approval
might be done automatically or manually. Cancellations are completely relative to cancellation
policies.
3.7.4 Reports :
The admin / super admin of the P2P car rental platform can generate a variety of reports.
These reports can provide a detailed image of the system’s bookings, earnings, and fleet
reporting.
3.7.5 Identity verification
The system suggest that you get approved to drive before booking. Doing so, it ensures
a smooth approval process, go to your profile page, upload a current photo that clearly shows
your entire face (no sunglasses or hats). Hosts will use this photo and the photo on your driver’s
license to verify your identity when you pick up the vehicle at the start of the trip. Next, upload
close-up photo in which all four corners and sides of the license are visible. Finally take a Selfie
of you holding your driver's license next to your face. The super Admin has the privilege to
approve or refuse the user based in his uploads and capture.
34. Chapter 2: State of Art
P a g e 33 | 134
3.7.6 Smart search Filter:
The system will provide a smart search feature so that the user will be promoted to
search his desired card based in as smooth and multiple filter options
3.7.7 Blogging
Rented wheels platform encapsules a successful blogging interfaces where user is able
to react to a blog, enter comments and interact with other comments by responding to other
comments or responses.
1 Conclusion
In this chapter, we gave a brief description and definitions about the concept of P2P car
sharing, the main advantages and features that our platform is offering while we presented the
stack of technologies and advanced tools that are deployed to ensure the ease of usability of
RentedWheels. Finally, this will lead us to the next chapter in which we will discuss the
requirements specifications, the sprints’ analyses and developments process.
35. Chapter 3: Requirements Analysis and Design
P a g e 34 | 134
Requirements Analysis and Design
Introduction
In the previous chapter, we chose to adopt the scrum methodology for the design of our
future system. Indeed, our Scrum will be organized in three phases starting by the planning and
architecture phase (also called sprint0). This phase is the most important in the scrum
development cycle since it directly influences the success of the sprints.
During this chapter we will walk through the analytical phase and specify the
requirements of our project, which is a critical phase throughout the whole development
process. We will determine the functional and non-functional requirements for our application.
Next we will adopt the scrum methodology for the design of our future system and present the
global modeling, preparing our release plan and finally we will illustrate the main system
architecture and development environment.
1. Functional and non-functional requirements
1.1 Functional requirements
Our mission is to create and design a combination of a peer to peer rented system and
in order to meet the requirements of the client.
1.1.1 Car Renters Booking Website.
Ability to view listed cars
• Car’s per hour, per day & per week renting cost.
• How much renting the car will cost for the selected trip.
• Option to share car page with friends on social media or via email.
• Car owner details.
• Car features & specifications.
• Precautions renters need to take while using the car.
36. Chapter 3: Requirements Analysis and Design
P a g e 35 | 134
• Location & availability chart with the pick-up location information.
• Mileage cap.
Ability to search for cars the car search toolbox has the following search
fields:
• Location (or address).
• Pick-up date & time.
• Return date & time.
Ability to view search results using map-view, this helps renters to know
right away how far the car’s location is. Plus, the vertical panel, next to the
map view, can feature the basic rental details such as year, rent, etc.
Following filters should also be present on the search page:
• Price and No. of passengers..
• Pickup/delivery.
• No. of passengers..
• Vehicle type and Make..
• Users should be able to hover over the list results and the corresponding
map results should get highlighted.
Ability to book a rental: Only registered users should be able to book a rental.
The checkout process should be short and simple. It should have the
following important text fields and options:
• Detailed personal information (name, age, contact).
• Driver’s license details.
• Payment options (credit card/ debit card/ PayPal etc.) Checkout with
available payment methods. Users can rent cars and pay..
Ability to register, login and manage profiles. Users can create a personal
account that records rental history and banking details. User must meet the
General requirements of RentedWheels Car Rental App.
The legislation of RentedWheels requires all drivers to be over the age of 18
years. The company encourages clients to ensure they upload verification
document and possess each of the following when renting a car:
• An Identity card or passport.
• A driver’s license or an international permit
37. Chapter 3: Requirements Analysis and Design
P a g e 36 | 134
• Recording of bookings..
Adding cars to favorites
Viewing favorites ..
Removing cars from favorites
Help Section - Registered users should be able to search for an answer as
well as ask questions if they cannot find the answer they were looking for.
Blog Posts..
Ability to rate and review car rentals, and owners.
1.1.2 Car Owners Dashboard panel
Ability to list cars: There should be a distinct ‘List Car’ option on the top
navigation bar. Since listing a car would require the car owner to input a lot
of detail, the process should be divided into steps.
In the first step, car owners should be asked the basic details such as:
• location (zip code),
• Car make, year, license plate, trim, style
• photographs of car
• Car’s per hour, per day & per week renting cost
• How much renting the car will cost for the selected trip
Next, the car owner should be asked various car features & specifications
(preferably through checkbox selection).
• Car features & specifications
• Location & availability chart with the pick-up location information
• Mileage cap
Ability to approve or cancel client’s request…
1.1.3 Car Owners Dashboard panel
Development of administrative panel for super user with following features:
38. Chapter 3: Requirements Analysis and Design
P a g e 37 | 134
• Ability to view overall statistics, visible in bar and line chart form.
Statistics should include performance tracking: Revenue, total rentals,
total users, commission paid.
• Ability to view rentals made and listed
• Ability to create rental notifications
• Ability to create coupons…
1.2 Non-functional requirements
Non-functional requirements are a set of rules that we must follow in order to provide a
better user experience while using the application, they help separate the bad from the good
applications on the market. That’s why we worked hard to meet the user’s expectations to
provide the most suitable experience. In order to do so we had to follow those requirements :
a. Security: Ensuring the security and confidentiality of the user’s data and applying the
best security practices.
b. Scalability and performance: Making sure that the system can scale to meet higher
traffic at a normal rate and peak times.
c. Accessibility: Ensuring that the application meets basic accessibility standards.
d. Extensibility: Ensuring that the application can be extended or updated in the future
without causing any issues and allow the addition of other modules at any time.
e. Portability: The application must be functional in different environments.
f. Usability: The system provides a help and support menu in all interfaces for the user
to interact with the system. The user can use the system by reading help and support
g. User Friendly: The application must be impressive, well designed and intuitive.
Considered the level of knowledge possessed by the users of this system, a simple but
quality user interface should be developed to make it easy to understand and required
less training.
39. Chapter 3: Requirements Analysis and Design
P a g e 38 | 134
2. Project management using Scrum
2.1 Scrum Team
For our application the roles are distributed as the following:
Table 1:Scrum Team
2.2 Product Backlog
The product backlog is the most important artifact of Scrum. Indeed, it is the set of
functional requirements that are called user stories. Each user story is characterized by a priority
defined by the Product Owner.
Our Product Backlog includes the following fields:
• ID: This is the identifier of the sprint containing an ordered list of tasks.
• User Story ID: This is the user story identifier.
• Feature: Represents the sprint to which this user story belongs.
• User Story: It is the user story representing a functional need desired by the
customer.
• Priority: Illustrates one of the most important notions of Scrum which is the
prioritization of tasks by applying the “MoSCoW” method. Each user story is
prioritized as follows:
→ High: The functionality must be done.
→ Medium: The functionality is important but not urgent.
→ Low: The functionality is not important
➢ Table 2 in thee annex describes the product backlog of our application.
Scrum® Roles People concerned
Product Owner Travor Akwenye: Business
Development Director
Scrum Master Daniel Goncalves: Project manager
Team Raéd Hamaoui: Full stack
developer
40. Chapter 3: Requirements Analysis and Design
P a g e 39 | 134
2.3 Specification of global functional requirements
RentedWheels platform offers various functionalities. The global use case diagram
represented by the next figure, models the functionalities of each actor. We will detail in the
following chapters the realized use cases.
2.3.1 Identifying the actors
An actor is an entity that interacts with the application, and in response to the actor’s
actions, The RentedWheels platform involves four main players as shown in the table below.
Table 2:Main Actors
Role Functions
Client • The client will be able to Authenticate and log into his account.
• The client will be able to manage Profile.
• The client will be able to search a car: the RentedWheels customer must
be able to search for a suitable vehicle and apply a filter according to the
proposed platform filtering system.
• The client will be able to select a vehicle and make payments.
• The client will be able to send and receive messages via chat and
evaluate a car.
• The client will be able to browse the list of blogs, comment on a blog or
reply to a comment.
• The client will be able to consult the privacy and cancellation policies
and manage and Validate Identity by uploading a license document and
take a snapshot in order to be able to book a car.
• The client will be able to consult booking history and be able to rebook
a car or cancel a booking., consult Notifications and manage favored
cars.
Host • The host will be able to authenticate and log into his account.
• The host will be able manage his profile.
• The host will be able manage booking requests.
• The host will be able to list bookings for different booking’s status…
• The host will be able to manage his fleet.
Super Admin • The super admin will be able to approve users, send notifications,
manage his profile and visualize data.
41. Chapter 3: Requirements Analysis and Design
P a g e 40 | 134
2.3.2 Global use case diagram
Figure 7: Global Use Case Diagram
42. Chapter 3: Requirements Analysis and Design
P a g e 41 | 134
3. Release planning
The sprint is the heart of scrum. As we already defined in the second chapter the sprint
is a block of time during which an increment of the product will be realized. This sprint will be
sliced into tasks that can be completed in a reasonable amount of time to see how the work is
progressing.
In order to prepare a release plan, the following elements must be available:
• A prioritized and estimated Scrum product backlog.
• The velocity of the Scrum team.
• Conditions of satisfaction (goals for the schedule, scope, resources).
For RentedWeels, we did split our project into 4 Releases as shown in table below.
Indeed, each release, which is the set of iterations (sprint) illustrates a distributed vision over
time of the production of the deliverable code. The development of each sprint goes through
the stages of analysis, design and implementation.
Figure 8:Sprint Planning
43. Chapter 3: Requirements Analysis and Design
P a g e 42 | 134
4. Development environment
4.1 Hardware environment
This section is reserved to present the hardware that was used during the development of this
project.
Table 3:hardware environment
4.2 Software environment
Programming language
Type Script : It is a free and open source programming language
that aims to improve and secure the production of JavaScript code. It
is a superset of JavaScript (i.e. any correct JavaScript code can be used
with Type Script).
JavaScript : Is an object-oriented scripting language mainly used
in HTML pages. In fact in our project working with Java Script tool in
Backend
Sass: It is a preprocessor scripting language that will be compiled
or interpreted into CSS. Sass Script is itself a scripting language while
Laptop US X556U
RAM 8 Go
Microprocessor Intel(R) Core(TM) i5-4210U CPU @
1.70GHz 2.40 GHz
Disque dur 1 To
OS Windows 10
44. Chapter 3: Requirements Analysis and Design
P a g e 43 | 134
SCSS is the main syntax of SASS which builds on the existing CSS
syntax.
HTML5: Is a Markup Language used for the creation of web
pages
Libraries
KNEX.js[7] : It is a JavaScript query generator for relational
databases, including PostgreSQL, MySQL, SQLite3 and Oracle. It
supports transactions and connection pooling.
Software
Visual code studio : For the development of our frontend and
backend application, we used a Visual code studio editor. It's an open
source editor that facilitates development with TypeScript[6].
StarUML : It is an Open Source UML modeling software,
developed in Delphi. It is modular and offers several code generators
and it also offers several project templates
Tailwind CSS[4] : Tailwind CSS is essentially a CSS utility
framework for quickly creating custom user interfaces. This means
that we can use utility classes to create custom designs without writing
CSS like in the traditional approach.
Angular V13 [5]: Angular is an open-source JavaScript
framework written in TypeScript. It allows you to create more
responsive and “one page” interfaces, i.e. without reloading the page.
It is one of the best technical solutions that offers a real gain in
productivity for the development of ergonomic web applications.
Indeed, it allows users to create large applications in a maintainable
way.
45. Chapter 3: Requirements Analysis and Design
P a g e 44 | 134
NodeJS +Express: Express is a minimal and flexible Node.js web
application framework that provides a robust set of features for
developing web and mobile applications. It facilitates the rapid
development of Node-based web applications.
WAMPSERVER : WampServer is a web development
environment that allows to create web applications with Apache2, PHP
and a MySQL database
Postman : Postman is an API platform for building and using
APIs. Postman simplifies every step of the API lifecycle and
streamlines collaboration so you can build better APIs faster.
Project and version management
Trello : A powerful project management system helps companies
track projects and ensure that everyone is working to their full
potential.
Git : This is the most commonly used version control
System.
GitHub : GitHub is a code hosting platform for version control
and collaboration. This tutorial teaches you the essentials of GitHub
such as repositories, branches, commits and pull requests.
46. Chapter 3: Requirements Analysis and Design
P a g e 45 | 134
5. Architectural View of the system
5.1 MVVM Design Model
MVVM stands for Model, View, View Model. It is a software design pattern that aims
to increase the readability and maintainability of source code, by dividing the code into the 3
sections
Figure 9:Angular MVVM Pattern
a. Model
A Model is a container defining the structure of an entity and it is implemented as an
Angular service.
b. View
The view is implemented using an Angular “model” (HTML with data binding). The
view is bound to the View Model so that when a property is changed in the View Model, it is
instantly reflected in the view. Data binding can work both ways in special cases like HTML
forms, where the user can manipulate a property directly.
c. View Model
The View Model is implemented as an Angular controller. The “ngController” directive
is used to specify a controller for a view. It can expose properties and methods to the view. It
can also be attached to the DOM by declaring it in a route definition via the “$route” service.
47. Chapter 3: Requirements Analysis and Design
P a g e 46 | 134
5.2 Logical architecture of the system
The logical architecture identifies the software components required to implement a
solution and describes the relationships between these components.
a. Clients: The client's web browser is responsible for the dialogue with the user
and the application server.
b. Application server (NodeJS): The application server is responsible for the
functional part of the application and data processing.
c. Database server: This server will allow to save and restore the data of the
application.
Figure 10: Physical architecture
48. Chapter 3: Requirements Analysis and Design
P a g e 47 | 134
6. Conclusion
In this chapter, we have gone through the functional and non-functional requirements
of our application. This helped us to have a clearer and deeper vision of our project so that we
can plan our sprints. We have also identified our main actors and presented the global use case
diagram. Then, we presented the planning of releases. This will lead us to our next chapters
where we will discuss how we turned the requirements of RentedWheels into an implementable
form of programming language based in each sprint release.
49. Chapter 5: Sprint 2 - Booking Management
P a g e 48 | 134
Sprint 1: Account Management
Introduction
After we finished talking about the global use case, the requirements of the project and
the implementation of scrum in the last chapter. We will be diving into the phase where we will
make the most of the requirements and design presented in the first release and turn it into an
implementable form of programming language. In this chapter, we will detail the work done
during the first sprint “Account Management”.
1. Sprint Backlog
The goal of this sprint is to answer the fundamental question: “why do we do this
sprint?”. Following a conversation between the product owner and the scrum team, we decided
the following goal: “finish the part that cover the customer registration, authentication and
profile management”.
Once we have defined our sprint goal, it is time to decide which user stories to include
in the sprint, specifically, which user stories from our product backlog will be included in the
backlog of the first sprint.
Table 5 in the annex shows the backlog for our first sprint. Next, we will identify the
functional specification and design, of this sprint, we will respect these two activities in each
sprint during our first release.
50. Chapter 5: Sprint 2 - Booking Management
P a g e 49 | 134
2. Functional requirement
The functional specification in our case is translated by the UML use case diagram and
it’s textual description.
To better understand the functionalities of our application and the interactions with the
different the different actors, we detail in this part the main use cases identified previously.
2.1 Use case diagram of sprint 1
Figure 11:Use case diagram Sprint1
51. Chapter 5: Sprint 2 - Booking Management
P a g e 50 | 134
2.2 Text description of the use cases:
Use case Register
Starting with the Register car functionality that allows the user of the application to be able to
Register a new account
In the following table, we will illustrate the preconditions, post-conditions and the main
scenario for the use case ”Register”.
Table 4:Text description of the use case “Register”
Action Value
Use case Register
Actors Web User
Purpose Create an account to access the application.
Precondition Account email and phone number aren’t used before.
Post-condition Account created and user redirected to login page.
Main Scenario
1. Web user clicks the register button.
2. The system displays registration form.
3. The user types the necessary information.
4. The user clicks the register button.
5. The system verifies the information inserted.
6. The system send a validation code to the user email.
7. The system validates the user credentials and saves his account
Alternative scenario 5.1 The user enters wrong information or an already in use phone or
email.
5.2 The system displays the same interface indicating the error.
52. Chapter 5: Sprint 2 - Booking Management
P a g e 51 | 134
Use case Authentication
In this section we will describe the Authentication functionality that allows user of the
application to be able to Login to his profile.
In the following table, we will illustrate the preconditions, post-conditions and the main
scenario for the use case ”Authentication”.
Table 5:Text description of the use case “Authenticate”
Action Value
Use case Authentication
Actors Client
Purpose Get access to the application.
Precondition The user must have an account.
Post-condition The user logged in and redirected to the appropriate interface.
Main Scenario
1. The system displays the authentication interface.
2. The user types his credentials.
3. The user clicks the login button.
4. The system verifies the information inserted.
5. The system validates the user credentials and redirect the user
to the appropriate interface.
Alternative scenario 5.1 The user enters wrong credentials or an already in use phone
or email.
5.2 The system displays the same interface indicating the error.
53. Chapter 5: Sprint 2 - Booking Management
P a g e 52 | 134
Use case Edit Profile
In the following table, we will illustrate the preconditions, post-conditions and the main
scenario for the use case ”Edit Profile”.
Table 6:Text description of the use case “Edit Profile”
Action Value
Use case Edit Profile
Actors Client
Purpose Editing the profile.
Precondition Users logged in.
Post-condition Profile edited.
Main Scenario
1. The User clicks on Profile
2. The System displays menu and the profile with user’s details.
3. The User clicks on Edit profile button.
4. The System displays a form with the information that can be edited.
5. The User can update his user name or last name and save.
6. The user can edit his email or phone number.
7. The system displays a validation code dialog and sends a validation
code to the user email.
8. The user must enter the validation code and save.
9. The User upload an new profile button and save.
10. The System saves and redirect user to the appropriate interface.
Alternative scenario 3.1 The system displays the same interface indicating the error.
54. Chapter 5: Sprint 2 - Booking Management
P a g e 53 | 134
Use case Update password
In the following table, we will illustrate the preconditions, post-conditions and the main
scenario for the use case ”Update Password”.
Table 7:Text description of the use case “Update Password”
Action Value
Use case Update Password
Actors Client
Purpose Change Password
Precondition Users logged in.
Post-condition Password changed
Main Scenario
1. The User clicks on change password in menu.
2. The System displays a form to update password.
3. The user enters his old password.
4. The user enters his new password.
5. The user confirms his new password and click on save button.
6. The user clicks on save button.
Alternative
scenario
5.1 The system displays the same interface indicating the error
of password mismatch.
6.1 The system displays the same interface indicating that the
password is not valid
55. Chapter 5: Sprint 2 - Booking Management
P a g e 54 | 134
3. Conceptual modeling
3.1 Class diagram
The class is the main building block of object-oriented modeling. It is used for general
conceptual modeling of the structure of the application, and for detailed modeling. Therefore,
we present in the figure below the class diagram of this sprint.
Figure 12: class diagram sprint #1
3.2 Sequence diagrams
A sequence diagram represents the interaction between different entities in a timespan.
It helps us visualize the flow of our application and validates different scenarios which could
lead to predicting how the system behaves and help us prevent undesirable scenarios.
In this section we will present different scenarios in our platform through these sequence
diagrams.
56. Chapter 5: Sprint 2 - Booking Management
P a g e 55 | 134
3.2.1 Sequence diagram for “Authenticate” use case
3.2.2 Sequence diagram for “Edite profile” use case
Figure 13:Sequence diagram for “Authenticate” use case
Figure 14:sequence diagram "edit profile
57. Chapter 5: Sprint 2 - Booking Management
P a g e 56 | 134
4. Activity diagram
The activity diagram is a UML behavioral diagram used to describe a workflow and
represent the triggering of events according to the system states and to model parallelizable
behaviors. It is composed of activities, decisions, and paths (flows).
1.1 Activity diagram “Edit profile”
The next diagram figures out the activities that happen when a user logs in to a system.
This example illustration shows the activities and scenarios done in the edit profile. Thus, the
actions and decisions included were all emphasized here.
Figure 15:Activity diagram Edit profile
58. Chapter 5: Sprint 2 - Booking Management
P a g e 57 | 134
5. Implementation
We will expose in this section the HMI of our application realized during this sprint.
This section is reserved for all of the user where they will be prompted to fill the form to either
login in order to access the platform or register a new account and lastly edit his personal profile.
5.1 Login
Figure 16::Login desktop interface
This page represents the HMI where users will be able to fill the login form and respect
the form validation to be able to login to his profile.
5.2 Register
Figure 17:Figure 38::Sign up Desktop interface
This page represents the HMI where users will be able to fill the registration form and
respect the form validation to be able to register his account into the platform.
59. Chapter 5: Sprint 2 - Booking Management
P a g e 58 | 134
5.3 Edit Profile
Figure 18:Edit desktop interface
This dialog represents the HMI where users will be able to fill the edit form, respect the
form validation and upload new image profile.
5.4 Change Password
This dialog represents the HMI where users will be able to update his password.
60. Chapter 5: Sprint 2 - Booking Management
P a g e 59 | 134
6. Conclusion
In this chapter, we have shown the backlog of the "Account Management" sprint, which
describes the processed tasks. Then, we illustrated the different UML diagrams, to model our
platform. Finally, we have presented the interfaces of the different tasks handled during this
sprint. The next chapter is dedicated to the analysis of the "Booking Management" sprint.
61. Chapter 5: Sprint 2 - Booking Management
P a g e 60 | 134
Sprint 2: Booking Management
Introduction
The goal of this sprint is to answer the fundamental question: “why do we do this
sprint?”. Following a conversation between the product owner and the scrum team, we decided
the following goal: “finish the part that covers the fleet management by the host and the booking
modules.
Once we have defined our sprint goal, it is time to decide which user stories to include
in the sprint, specifically, which user stories from our product backlog will be included in the
backlog of the first sprint. Table 5 shows the backlog for our sprint:
1. Sprint Backlog
Table 6 in thee annex shows the backlog for our sprint: Next, we will identify the
functional specification and design, of this sprint, we will respect these two activities in each
sprint during our first release.
62. Chapter 5: Sprint 2 - Booking Management
P a g e 61 | 134
2. Functional requirement
2.1 Use case diagram of sprint 2
Figure 19:Use case diagram of sprint 2
2.2 Text description of the use cases:
In this section, we will detail the main use cases previously identified
Starting with the Register car functionality that allows the user of the application to be
able to Register a new account
2.2.1 Use case Search car:
To better understand the functionalities of our application and the interactions with the
different the different actors, we detail in this part the main use cases identified previously.
previously.
In the following table, we will illustrate the preconditions, post-conditions and the main
scenario for the use case ”Search car”.
63. Chapter 5: Sprint 2 - Booking Management
P a g e 62 | 134
Table 8:Text description of the use case “search car”
Action Value
Use case Search car
Actors Client /web user
Purpose Search car based in keys words or location and start and return time
or car’s make, or latest cars, or pets friendly or popular locations
Precondition The user goes to the landing page
Post-condition The system returns and displays cars based in the search option
Main Scenario
1. The User goes to the home page.
2. The system displays the landing page
3. The user fills the search bar by entering the desired address and
select the start and return dates and time then clicks on the search
button.
4. The user selects one of the displayed car makes.
5. The user selects one of the displayed latest added cars.
6. The user selects one of the popular locations displayed.
7. The user selects one of the cars displayed as pets friendly.
8. The user enters a key word and press Enter.
9. The user Clicks on filter button to make filters.
10. The system verifies the data and display the cars page within the
cars returned based in the search option.
Alternative scenario 3.1 the user clicks in the search button with an empty address.
3.2 The user selects a return time which is less than 60 minutes
add to the start time
3.3 the system displays an error message in the same interface
64. Chapter 5: Sprint 2 - Booking Management
P a g e 63 | 134
2.2.2 Use case Filter
In the following table, we will illustrate the preconditions, post-conditions and the main
scenario for the use case “filter”.
Table 9:Description of use case “filter”
Action Value
Use case Filter
Actors Client / Web user
Purpose Return cars based in Filter .
Precondition The user goes to the landing page
Post-condition The system returns and displays cars based in the filter.
Main Scenario
1. The user goes to the home page.
2. The system displays the landing page
3. The user clicks on the filter button.
4. The system displays the filter dialog form.
5. The user enters his desired location
6. The user selects start date and time.
7. The user selects return date and time.
8. The user selects car’s type.
9. The user selects price range.
10. The user selects car make.
11. The users selects fuel option.
12. The user selects delivery option.
13. The user selects seats number.
14. The user selects mile age..
15. The user clicks on search button.
16. The system verifies the data and display the cars page within the cars
returned based in the users ‘filter.
Alternative scenario 5.1 The user clicks in the search button with an empty address.
5.2 The system displays an error message in the same interface
65. Chapter 5: Sprint 2 - Booking Management
P a g e 64 | 134
2.2.3 Use case View cars
In the following table, we will illustrate the preconditions, post-conditions and the main
scenario for the use case “View cars”.
Table 10:Text description of use case “View cars”
Action Value
Use case View cars
Actors Client / Web user
Purpose Consult available cars to make a choice.
Precondition Search cars
Post-condition List of cars.
Main Scenario
1. The system displays the cars page based in the user filter or search.
2. The user clicks on the filter toggle button
3. The system displays the filter card
4. The user selects car’s type.
5. The user selects price range.
6. The user selects car make.
7. The users selects fuel option.
8. The user selects delivery option.
9. The user selects seats number.
10. The user selects mile age.
11. The user clicks on filter button
12. The system displays cars based in the result of filter.
13. The user clicks again on the filter toggle button.
14. The system hides the filter card.
15. The user clicks on the map toggle button
16. The system displays the map card.
17. The user search cars cards in google maps
18. The system displays cars card in google maps
19. The user enter new address in the location input.
20. The system displays cars based in the new location.
21. The user clicks again on the maps toggle button.
22. The system hides the map card.
66. Chapter 5: Sprint 2 - Booking Management
P a g e 65 | 134
2.2.4 Use case Select car
In the following table, we will illustrate the preconditions, post-conditions and the main
scenario for the use case “Select Car”.
Table 11:Text description of the use case “Select Car”
Action Value
Use case Select Car
Actors Client / Web user
Purpose Select car to book, view car details and the ability to select booking
options
Precondition View list cars
Post-condition Display selected car details.
Main Scenario
1. The user clicks on Book button in car card.
2. The system displays the page related to the Id of the selected car
and shows the selected car details.
3. The user is able to select booking option like Price, fuel option and
delivery options.
4. The user clicks on “Continue Button” in order to proceed to the
payment page.
Alternative scenario 2.1 If the user is authenticated, the System save the user selections
and check the user status and .
2.2 If the account status is “Uncompleted” the system redirects to
the Identity page. 2.3 If the account status is “Pending “ the system
inform the user that is account is in hold to be verified.
4.1 If the status is “Verified” the system redirects to the payment
page.
4.2 If the user is not authenticated the system redirects to
Login page if not
67. Chapter 5: Sprint 2 - Booking Management
P a g e 66 | 134
2.2.5 Use case Validate Identity
In the following table, we will illustrate the preconditions, post-conditions and the main
scenario for the use case “Validate Identity”.
Table 12:Text description of use case “Validate identity”
Action Value
Use case Validate Identity
Actors Client
Purpose Validate the client identity.
Precondition Consult the validation Identity guide.
Post-condition Validation steps completed.
Main Scenario
1. The User clicks on Identity in the profile menu.
2. The System displays the page that cover the identity validation guide
3. The user clicks on “Get Approved” button..
4. The system displays the validation steps.
5. The User uploads his driver’s license.
6. The user takes a screenshot holding his driver’s license.
7. The system shows a message to inform that the steps and change the
account status to “pending”
Alternative
scenario
3.1 The system displays an error message to inform the user that a
step is not completed selections and check the user status and .
68. Chapter 5: Sprint 2 - Booking Management
P a g e 67 | 134
2.2.6 Use case Payment
In the following table, we will illustrate the preconditions, post-conditions and the main
scenario for the use case “Payment”.
Table 13:Text Description of use case “Payment”
Action Value
Use case Payment
Actors Client
Purpose Pay the car booking bill.
Precondition Account approved and car selected
Post-condition Payment success.
Main Scenario
1. The system generates and displays the price or the billing details of
he selected car.
2. The user select his payment method.
3. The user fills the form with his payment account details.
4. The system displays a success message if payment will success.
Alternative
scenario
3.1 The system displays an error message in the same interface
related to the payment process.
69. Chapter 5: Sprint 2 - Booking Management
P a g e 68 | 134
2.2.7 Use case Review car
In the following table, we will illustrate the preconditions, post-conditions and the main
scenario for the use case “Evaluate Cars”.
Table 14:Text description of sprint4
Action Value
Use case Evaluate Cars
Actors Client
Purpose Evaluate a trip or a booked car.
Precondition Completed booking.
Post-condition Rating or Review displayed.
Main Scenario 1. The system displays an evaluation card.
2. The user Select his Rating
3. The system save the rating and displayed by the car card and
the client “Rating and Reviews Page”.
4. The user add a review.
5. The system save the review and displayed in the car details
page and the reviewer “Rating and Reviews Page”.
6. The user click on My Ratings and Reviews Item in the profile
menu.
7. The system displays the client’s ratings and reviews details.
Alternative scenario The evaluation card is displayed for 10 days after the user finish his
booking.
70. Chapter 5: Sprint 2 - Booking Management
P a g e 69 | 134
3. Conceptual modeling
3.1 Class diagram
The class is the main building block of object-oriented modeling. It is used for general
conceptual modeling of the structure of the application, and for detailed modeling. Therefore,
we present in the figure below the class diagram of this sprint.
Figure 20:Class diagram Sprint #2
71. Chapter 5: Sprint 2 - Booking Management
P a g e 70 | 134
3.2 Sequence diagrams for car booking
In this section we will present different scenarios in our sprint through these sequence diagram.
Figure 21:Sequence diagram for “Car Booking process”
72. Chapter 5: Sprint 2 - Booking Management
P a g e 71 | 134
4. Activity diagram
4.1 Activity diagram “Booking”
The next diagram figures out the activities that happen when a user aims to book a car.
This example illustration shows the activities and scenarios done for this process Thus, the
actions and decisions included were all emphasized here.
Figure 22:Activity diagram booking
73. Chapter 5: Sprint 2 - Booking Management
P a g e 72 | 134
5. Implementation
We will expose in this section the HMI of our application realized during this sprint. This
section is reserved for all of the user where they will cover the booking process.
5.1 Register Cars
5.1.1 Add Car Info
Figure 23:Add car info interface
This section is reserved for car owners, who will be invited to add a new car by uploading
a photo of the car and filling in the car information form while respecting the validation of the
form.
5.1.2 Add Basic Info details
Figure 24: car basic info details
This section is reserved for car owners. They will be invited to add the details of their car
by entering the required price information and selecting the fuel type while respecting the
validation of the form.
74. Chapter 5: Sprint 2 - Booking Management
P a g e 73 | 134
5.1.3 Add Mile age cap
Figure 25: Mile age cap interface
This section is reserved for car owners. They will be invited to add the mile age details
and additional price while respecting the validation of the form.
5.1.4 Add Car feature and specifications
This section is reserved for car owners. They will be invited to select car features and
add some specifications .
Figure 26: Car features interface