0% found this document useful (0 votes)
2 views83 pages

Anuj Cse

Uploaded by

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

Anuj Cse

Uploaded by

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

Project Report

On

INTELLIGENT CARPOOLING SYSTEM USING SISTANCE


AND TIME MEASURE

Submitted in the partial fulfillment of the requirements


for
the award of Degree of B. Tech

By
Anuj Tyagi (1900680100066)
Aryan Bansal (1900680100075)
Ashutosh Sharma (1900680100080)

Under the Supervision of:-


Dr. Mukesh Rawat
(HOD, Department of CSE)

Department of Computer Science & Engineering


Meerut Institute of Engineering and Technology,
Meerut – 350005

Dr. A.P.J. Abdul Kalam Technical University, U.P., Lucknow


[3019-3033]

i|P a g e
DECLARATION

I hereby declare that this submission is my own work and that, to the best of my
knowledge and belief, it contains no material previously published or written by
another person nor material which to a substantial extent has been accepted for the
award of any other degree or diploma of the university or other institute of higher
learning, except where due acknowledgment has been made in the text.

Signature :
Name : Anuj Tyagi
Roll No. : 1900680100066
Date :

Signature :
Name : Aryan Bansal
Roll No. : 1900680100075
Date :

Signature :
Name : Ashutosh Sharma
Roll No. : 1900680100080
Date :

ii | P a g e
CERTIFICATE

This is to certify that Project Report entitled ―INTELLIGENT CARPOOLING


SYSTEM USING SITANCE AND TIME MEASURE which is submitted by Anuj Tyagi
(1900670100066), Aryan Bansal (1900670100075) and Ashutosh
Sharma(1900670100070) in partial fulfillment of the requirement for the award of
degree B. Tech. in Department of Computer Science and Engineering Of Dr. A.P.J.
Abdul Kalam Technical University, U.P., Lucknow., is a record of the candidate own
work carried out by him/her under my/our supervision. The matter embodied in this
Project report is original and has not been submitted for the award of any other degree.

Date: Supervisor

iii | P a g e
ACKNOWLEDGEMENTS

It gives us a great sense of pleasure to present the report of the B. Tech Project
undertaken during B.Tech. Final Year. We owe special debt of gratitude to our guide
Dr.Mukesh Rawat (HOD), Department of Computer Science and Engineering, Meerut
Institute of Engineering and Technology, Meerut for his constant support and guidance
throughout the course of our work. His sincerity, thoroughness and perseverance have
been a constant source of inspiration for us. It is only his cognizant efforts that our
endeavors have seen light of the day.

We also do not like to miss the opportunity to acknowledge the contribution of all
faculty members of the department for their kind assistance and cooperation during the
development of our project. Last but not the least, we acknowledge our friends for their
contribution in the completion of the project.

Signature : Signature :
Name : Anuj Tyagi Name : Ashutosh Sharma
Roll No : 1900680100066 Roll No : 1900680100080
Date : Date :

Signature :
Name : Aryan Bansal
Roll No : 1900680100075
Date :

iv | P a g e
ABSTRACT

The Carpooling System project aims to address the increasing challenges


associated with urban transportation, such as traffic congestion, environmental
pollution, and limited parking spaces. By promoting shared rides among
commuters, the project aims to maximize vehicle occupancy and minimize the
number of cars on the road.

The Carpooling System provides a user-friendly platform that connects


individuals traveling in the same direction, enabling them to share rides and
split transportation costs. The system utilizes advanced technologies, including
mobile applications and web-based platforms, to facilitate efficient coordination
and communication among users.

The key features of the Carpooling System include user registration, trip
creation, trip matching, secure payment processing, and rating/review system.
Users can create profiles, specify their travel preferences, and search for
suitable rides based on factors such as origin, destination, and departure time.
The system employs algorithms to match users with compatible travel
itineraries, ensuring optimal ride-sharing arrangements.

Furthermore, the Carpooling System prioritizes security and trust among users.
It incorporates verification processes to validate user identities, driving licenses,
and vehicle registrations. Additionally, a rating and review system allows
participants to provide feedback on their carpooling experiences, fostering a
sense of accountability and reliability within the community.

The project contributes to sustainable transportation by reducing traffic


congestion, lowering carbon emissions, and minimizing the need for parking
infrastructure. By promoting ride-sharing, the Carpooling System also enhances
social connectivity, encourages social interactions, and potentially reduces
commuting costs for individuals.

Through the implementation of the Carpooling System, urban areas can benefit
from improved traffic flow, reduced environmental impact, and enhanced
overall transportation efficiency. This project sets the foundation for a more
sustainable and interconnected future, as it encourages the adoption of shared
mobility solutions and the promotion of community-based transportation
initiative

v|P a g e
LIST OF FIGURES

S.NO DESCRIPTION PAGE NO.

3.3 General Architecture of Software 27

3.7.1 Use Case Diagram 32

3.7.2 Activity Diagram 33

3.7.3 Data Flow Diagram 36

3.7.4 Class Diagram 37

6.1.1 All Trip Screen 48

6.1.2 Book Trip Screen 49

6.1.3 Profile Screen 50

6.1.4 Add Trip Screen 51

6.1.5 Chat Screen 52

6.1.6 Maps 52

vi | P a g e
TABLE OF CONTENTS

PAGE NO

DECLARATION……………………………………………………………2
CERTIFICATES…………………………………………………………….3
ACKNOWLEDGEMENTS…………………………………………………4
ABSTRACT…………………………………………………………………5
LIST OF FIGURES………………………………………………………….6

CHAPTER 1 : INTRODUCTION…………………………………………..9
1.1 Introduction………………………………………………………………………...10
1.2 History……………………………………………………………………………...13
1.3 Scope………………………………..……………………………………………...14

CHAPTER 2 : THEORETICAL BACKGROUND…………………………15


2.1 Introduction…………………………………………………………………………16
2.2 Problem Statement…………………………………………………………………..17
2.3 Proposed System…………………………………………………………………….17
2.4 Literature Survey……………………………………………………………………19

CHAPTER 3 : SOFTWARE REQUIREMENT AND SPECIFICATION….21


3.1 Introduction…………………………………………………………………………...22
3.2 Intended Audience and Reading Suggestions………………………………………22
3.3 General Architecture of Software…………………………………………………..24
3.4 Requirement Specification………………………………………………………….26
3.4.1 Functional Requirements………………………………………………………26
3.4.2 Non-Functional Requirements…………………………………………………28
3.5 Feasibility Study……………………………………………………………………29
3.6 System Requirements………………………………………………………………30
3.6.1 Software Requirements………………………………………………………..30
3.6.2 Hardware Requirements……………………………………………………….31
3.7 User Requirement Document………………………………………………………31
3.7.1 Use Case Diagram……………………………………………………………..32
3.7.2 Activity Diagram………………………………………………………………33
3.8 System Design……………………………………………………………………...33
3.8.1 Introduction……………………………………………………………………33
3.8.2 Data Flow Diagram……………………………………………………………35
3.8.3 Class Diagram…………………………………………………………………36

CHAPTER 4 : IMPLEMENTATION………………………………………37
5.1 Application…………………………………………………………………………38
5.2 Scope of Application……………………………………………………………….
5.3 Features……………………………………………………………………………...40
5.3.1 Signup/Login……………………………………………………………………40
5.3.2 Trip Booking Dashboard………………………………………………………..40

7|P a g e
5.3.5 New Trip Creation………………………………………………………………...40
5.3.5 Chatting……………………………………………………………………………41

CHAPTER 5 : TECHNOLOGY USED……………………………………….42


5.1 Server-Side technology………………………………………………………………..43
5.2 Client- Side technology………………………………………………………………...43
5.3 Database………………………………………………………………………………..44
5.5 Other……………………………………………………………………………………47

CHAPTER 6 : RESULTS AND DISCUSSION……………………………….47


6.1 All Trip Screen…………………………………………………………………………48
6.2 Profile…………………………………………………………………………………..48
6.3 Book trip Screen………………………………………………………………………..49
6.4 Add Trip………………………………………………………………………………..50
6.5 Chat Screen…………………………………………………………………………….51
6.6 Maps……………………………………………………………………………………52

CHAPTER 7 : TESTING AND INTEGRATION……………………………..53


7.1 Principles……………………………………………………………………………..54
7.2 Steps…………………………………………………………………………………..54
7.3 Types………………………………………………………………………………….54
7.4 Conclusion…………………………………………………………………………….56
7.5 Future Enhancement…………………………………………………………………..56

REFERENCES...………………………………………………………………59

APPENDIX…………………………………………………………………….62

RESEARCH PAPER…………………………………………………………..77

8|P a g e
CHAPTER 1 : INTRODUTION

9|P a g e
1.1 Introduction

Carpooling system is very effective means to reduce pollution and the


congestion of vehicles in cities. It also provides an eco-friendly way to travel. It
also provides an opportunity to meet new people. As today most people prefer
private vehicle to travel due to delay caused in public transport system
and luxuries provided by private vehicles. Pre-registration ensures security, as
only identified people get into the vehicle so that trust can be established.
The people registered can be allotted specific days on which they should take
their private vehicle, so that no inconvenience is caused to its registered
passengers for daily commute. Thus, the proposed carpooling system will be
effective in reducing environment pollution.

The world population is ever increasing and with it increases the need for
transportation which intern increases pollution. A car-pooling system can
help reduce a lot of pollution and also reduce traffic on the streets. This
system also promotes healthy relation between the users as they are willing to
travel together and share a vehicle, this will also help a major upcoming
problem of petrol or diesel scarcity. All these natural resources and environment
could be preserved if this type of project is accepted on a global scale.

Vehicle Sharing System is a possible solution to lack of transportation


convenience aced by commuter. It is often observed that some people travel
with vacant passenger seats. The public transport are some very uncomfortable,
congested and unlikely to be in time. So,
the vacant seats in the automobiles can be used to help these traveller’s reach
their
destination. The major obstacles are difficulty of offering and finding rides
especially within a short-notice. But this android based application helps
solving the problem of finding the automobile owner who are willing to share
their vehicle and help the others to reach their destination.

Vehicle Sharing System is an easy alternative to driving alone, but for others it
requires more effort. The Parking and Sustainable Transportation division
recognizes the contributions made by carpoolers and has created two incentive
programs to encourage carpooling as a sustainable method of transportation. If
we were to list out the sustainable ways of transportation, carpooling can be
definitely considered to be a viable and comfortable option for those who are
not accustomed to the rigors of a public transport system. But, in reality, it is
indeed a fuel and expenditure saving option and that the activity requires
minimum efforts or infrastructure should be an added bonus . Although it could
take some time for any laws related to carpooling to come into effect, it is up to

10 | P a g e
the citizens to take it seriously whenever and wherever possible so that it
culminates into reduction in pollution and fuel consumption and ultimately
saves the environment from destruction.

The application is a meeting point for carpoolers, both drivers and passengers.
Users can share and find rides. The application will be divided into two main
parts. The first one is for intercity trips where users can post their trips and
register for trips created by other users. In addition to that, a check in system is
available to notify the users when the driver or the passenger reaches the
meeting point. The user will be able to interact with the driver and book his
seat easily. The user has to download this app and register themselves
for
carpooling. They will enter the source, destination and other details. These
details will be stored in the database to maintain records. If he/she is a
passenger they will be given options to select a driver of their choice. If he/she
is a driver they need to provide a valid license no. and their other details
correctly. This app is being developed for Android 3.0 and higher versions. The
app is connected to a Firebase database.

If the users are travelling long distances, and if they can both drive it will reduce
the drives fatigue as they can switch after intervals which intern ensures a safe
journey. This system has 2 modules and is built using android studio the first
module is for the Driver or the person who is travelling in which they will have
to provide their details and also the details
of their car. The second module is for the pooler or the person who is going to
the same location and is looking for a ride in which they will have to provide
their details too as
the traveller would like to know who will be accompanying him in the journey.
The users can set up a meet point as their contact details will be available to
each other.

1.2 History

The history of carpooling apps can be traced back to the early 2010s when
mobile applications and online platforms began to revolutionize the way people
coordinate and share rides. Here is a brief overview of the history of carpooling
apps:

1. Zimride (2007): Zimride, founded by Logan Green and John Zimmer, was
one of the pioneering platforms in the modern carpooling industry. Initially
launched as a long-distance ridesharing platform for college campuses, Zimride
later expanded to offer local carpooling options. In 2013, Zimride's local
carpooling service was spun off as a separate entity called Lyft.

11 | P a g e
2. Uber (2009): Uber, originally founded as UberCab, was initially focused on
providing on-demand black car services. However, in 2015, Uber launched
UberPOOL, its carpooling service. UberPOOL allowed passengers heading in
the same direction to share rides and split the cost, making it more affordable
and efficient. UberPOOL quickly gained popularity in urban areas and became
one of the most widely used carpooling options.

3. Carma (2011): Carma, previously known as Avego, was founded by Sean


O'Sullivan. Carma developed a mobile app that connected drivers with available
seats to passengers heading in the same direction. The app utilized GPS
technology to match users based on their travel routes and preferences. Carma
focused on reducing traffic congestion and promoting sustainable transportation
options.

5. BlaBlaCar (2006): BlaBlaCar, founded in France by Frédéric Mazzella,


introduced a long-distance carpooling platform that connected drivers with
passengers traveling between cities. BlaBlaCar gained popularity in Europe and
expanded to other regions globally. The platform focused on providing cost-
effective travel options for longer journeys and utilized user ratings and reviews
to establish trust among participants.

5. Waze Carpool (2016): Waze, a popular navigation app, introduced its


carpooling feature called Waze Carpool. The app allowed drivers already
heading in a specific direction to pick up passengers traveling along the same
route and share the cost of the trip. Waze Carpool aimed to reduce traffic
congestion by maximizing the occupancy of vehicles on the road.

6. Poparide (2015): Poparide, founded by Flo Devellennes, is a Canadian


carpooling platform that connects drivers with passengers traveling between
cities and towns. The app enables users to find and book rides, share travel
expenses, and build a trusted community of carpoolers.

7. Ride (formerly Hitch) (2017): Ride, previously known as Hitch, launched as


a carpooling app that connected commuters traveling between suburbs and
urban areas. The app focused on providing a reliable and cost-effective
alternative to traditional commuting options, particularly for longer distances.

Over time, these carpooling apps and platforms have evolved, incorporating
advanced features such as real-time matching algorithms, secure payment
systems, user ratings and reviews, and integration with public transportation
networks. They have played a significant role in promoting shared mobility,

12 | P a g e
reducing single-occupancy vehicle trips, and providing more sustainable
transportation options for users around the world.

1.3 Scope

Carpooling system is very effective means to reduce pollution and the


congestion of vehicles in cities. It also provides an ecofriendly way to travel. It
also provides an opportunity to meet new people. As today most people prefer
private vehicle to travel due to delay caused in public transport system
and luxuries provided by private vehicles. Pre-registration ensures security, as
only identified people get into the vehicle so that trust can be established. The
people registered can be allotted specific days on which they should take their
private vehicle, so that no inconvenience is caused to its registered passengers
for daily commute.

The scope of a carpooling system encompasses various aspects related to its


implementation, functionality, and impact. Here are key components that define
the scope of a carpooling system:

1. Geographic Scope: The carpooling system can be designed for a specific


region, city, or even for a particular transportation network, such as within a
university campus or corporate office complex. The geographic scope
determines the target user base and the reach of the system.

2. User Base: The carpooling system can cater to a wide range of users,
including commuters, students, employees of a particular organization, or
specific demographic groups. The system may be open to the general public or
limited to a specific user group based on eligibility criteria.

3. Ride Matching and Scheduling: The carpooling system's scope includes the
functionality to match drivers and passengers with similar travel routes and
preferences. It should enable users to schedule and coordinate rides efficiently,
taking into account factors such as departure times, pickup/drop-off locations,
and preferred number of passengers.

5. Payment and Cost-sharing: The scope of the carpooling system includes


mechanisms for handling cost-sharing among participants. This may involve
options such as cash payments, digital payment platforms, or predefined fare
structures. The system should provide transparency and security in handling
financial transactions.

5. Safety and Trust: The scope of the carpooling system encompasses


measures to ensure the safety and trustworthiness of participants. This may

13 | P a g e
include driver and passenger verification processes, user ratings and reviews,
insurance coverage, and collaboration with law enforcement agencies, where
necessary.

6. Integration with Public Transportation: The scope of the carpooling


system may extend to integration with existing public transportation networks.
This can involve coordinating carpooling options with bus, train, or subway
schedules, providing first/last-mile connectivity, or offering incentives for
carpool users to access public transit.

7. Data Analytics and Optimization: The scope of the carpooling system may
include the collection and analysis of data related to user behavior, travel
patterns, system performance, and environmental impact. Data analytics can be
leveraged to optimize matching algorithms, improve operational efficiency, and
measure the system's effectiveness in reducing congestion and emissions.

7. Scalability and Expansion: The scope of the carpooling system may include
provisions for scalability and future expansion. This involves designing the
system architecture to handle increasing user volumes, accommodating
additional features, and adapting to evolving transportation needs and
technologies.

9. Legal and Regulatory Compliance: The scope of the carpooling system


incorporates adherence to relevant legal and regulatory requirements. This
includes compliance with transportation regulations, licensing, insurance, and
privacy laws.

10. Social and Environmental Impact: The scope of the carpooling system
includes evaluating and monitoring the social and environmental impact it
generates. This involves assessing factors such as reduced traffic congestion,
improved air quality, cost savings for participants, and fostering a sense of
community and shared responsibility.

The scope of a carpooling system can vary depending on the specific goals,
target audience, and geographical context. However, it generally encompasses
the aforementioned aspects related to functionality, user experience, safety,
sustainability, and compliance.

14 | P a g e
CHAPTER 2 : THEORETICAL BACKGROUND

15 | P a g e
2.1 Introduction

The theoretical background of a carpooling system is rooted in various fields


and concepts that support its implementation and effectiveness. This section
provides an introduction to the theoretical foundations that underpin the
carpooling system.

1. Sustainable Transportation: The concept of sustainable transportation


forms the basis for carpooling systems. Sustainable transportation aims to
minimize the environmental impact of transportation activities while providing
efficient and accessible mobility options. Carpooling aligns with this goal by
promoting shared vehicle use, reducing the number of single-occupancy
vehicles, and minimizing traffic congestion and emissions.

2. Shared Mobility: Carpooling falls under the broader concept of shared


mobility, which encompasses various transportation modes and services that
enable multiple individuals to share rides. Shared mobility emphasizes
optimizing vehicle occupancy, reducing the need for private vehicle ownership,
and maximizing resource utilization. Carpooling systems facilitate shared
mobility by connecting drivers and passengers with compatible travel routes.

3. Social Exchange Theory: Social exchange theory provides insights into the
motivations and benefits underlying carpooling behaviors. According to this
theory, individuals engage in social interactions and exchanges to maximize
their rewards and minimize costs. Carpooling offers benefits such as cost
savings, reduced travel time, social interactions, and a sense of community,
which encourage individuals to participate in ride-sharing arrangements.

5. Technology Adoption Theory: The adoption and success of carpooling


systems rely on the principles outlined in technology adoption theories. These
theories, such as the Technology Acceptance Model (TAM) or the Diffusion of
Innovations theory, explore the factors influencing individuals' acceptance and
adoption of new technologies. Carpooling systems need to consider user
perceptions, usability, perceived benefits, and ease of use to encourage
widespread adoption.

5. Geographic Information Systems (GIS): Geographic Information Systems


play a crucial role in the implementation of carpooling systems. GIS technology
enables the mapping, analysis, and visualization of spatial data, including user

16 | P a g e
locations, travel routes, and traffic patterns. GIS helps optimize the matching of
drivers and passengers, identify areas with high carpooling demand, and support
route planning and real-time coordination.

6. Data Analytics and Optimization: Carpooling systems leverage data


analytics and optimization techniques to enhance their efficiency and
effectiveness. These techniques involve analyzing historical and real-time data
on user behavior, travel patterns, and system performance. By leveraging data-
driven insights, carpooling systems can improve matching algorithms, optimize
resource allocation, predict demand, and enhance the overall user experience.

7. Transportation Planning and Policy: Carpooling systems align with


transportation planning and policy goals. They contribute to reducing traffic
congestion, promoting sustainable transportation options, and addressing
transportation equity. Carpooling systems can complement public transit
networks and support transportation policies aimed at reducing private vehicle
usage and enhancing overall mobility efficiency.

By drawing from theories and concepts related to sustainable transportation,


shared mobility, social exchange, technology adoption, GIS, data analytics, and
transportation planning, carpooling systems can be designed and implemented
to achieve their objectives of reducing congestion, improving environmental
sustainability, and enhancing the overall transportation experience for users.

2.2 Project Objective

To make user’s experience cheap and enjoyable by means of carpooling. This


system enables user to book and post trip and allow user to pool a trip by
consulting with owner in every aspect.

2.3 Proposed System

This application serves as an interactive information system that aims to harness


the advantages of modern technology. Its primary objective is to automate and
optimize the utilization of resources, going beyond the mere storage and
presentation of patient information.

The general architecture of a carpooling system typically involves the following


components:

1. User Interface: This component includes the interfaces that users interact
with, such as mobile applications or web interfaces. Users can register, search
for rides, book rides, and communicate with other users through this interface.

17 | P a g e
2. User Management: This component handles user registration,
authentication, and profile management. It stores and manages user information
such as names, contact details, and preferences.

3. Ride Matching and Scheduling: This component is responsible for


matching users who share similar routes and scheduling their rides. It utilizes
algorithms that consider factors like location, time, and user preferences to find
suitable matches and create efficient carpooling arrangements.

4. Communication and Notifications: This component enables communication


between users participating in a carpool. It may include features like messaging,
notifications, and real-time updates to keep users informed about ride status,
changes, or cancellations.

5. Mapping and Routing: This component integrates with mapping and


routing services to provide optimal routes for carpool trips. It utilizes
geolocation and map data to calculate distances, estimate travel times, and
suggest efficient routes for drivers.

6. Payment Processing: If the carpooling system involves cost-sharing or fare


collection, a payment processing component handles financial transactions
between users. It may integrate with payment gateways or third-party services
to facilitate secure and convenient payments.

7. Rating and Feedback: This component allows users to rate and provide
feedback on their carpooling experiences. It helps maintain the quality and
reliability of the system by promoting accountability and transparency among
users.

8. Data Management: This component handles the storage, retrieval, and


management of various data entities, such as user profiles, ride details, ratings,
and feedback. It may involve a database or other storage systems to ensure
efficient data organization and retrieval.

9. Security and Privacy: This component incorporates measures to protect user


data, ensure secure communication channels, and prevent unauthorized access.
It includes encryption techniques, secure authentication methods, and privacy
safeguards to maintain user trust and confidentiality.

10. Administration and Analytics: This component provides administrative


tools and analytics functionalities to system administrators. It enables them to

18 | P a g e
manage system settings, monitor system performance, analyze user behavior,
and generate reports.

These components work together to create a comprehensive carpooling system


that facilitates efficient ride-sharing, enhances user experience, and promotes
sustainable transportation practices. The specific implementation and
technologies used can vary based on the requirements and preferences of the
carpooling service provider.

2.4 Literature Survey

Carpooling, also known as ridesharing or car-sharing, is a transportation system


that enables multiple individuals to share a single vehicle for their daily
commutes or specific trips. It aims to reduce traffic congestion, decrease fuel
consumption, lower greenhouse gas emissions, and provide a more cost-
effective transportation solution. Here is a literature survey on carpooling
systems:

1. "Carpooling: A Literature Review" by Dalia S. Moawad and Alaa A.


Kafafi (2015):
This review article provides an overview of carpooling systems, including
their benefits, challenges, and various implementation models. It discusses the
factors influencing carpooling participation, such as incentives, social norms,
and trust. The study also highlights the impact of emerging technologies, such
as smartphone applications and social networks, on the effectiveness of
carpooling systems.

2. "A Review of Carpooling Research: Lessons for Ridesharing" by Susan


Shaheen et al. (2015):
This review paper examines the literature on carpooling, focusing on factors
influencing participation, benefits, barriers, and policy implications. It discusses
the role of information technology, organizational strategies, and pricing
mechanisms in promoting carpooling. The study also presents case studies of
successful carpooling programs from around the world.

3. "A Comprehensive Review of Carpooling Research: The Evolutionary


Path and the Way Forward" by Mingxin Li et al. (2019):

19 | P a g e
This comprehensive review paper analyzes the evolution of carpooling
research and provides insights into its future development. It covers various
aspects of carpooling, including behavioral analysis, system design,
optimization algorithms, and policy recommendations. The study also highlights
emerging trends, such as shared autonomous vehicles and smart city integration,
and their potential impact on carpooling systems.

5. "Smart Carpooling Systems: A Review of the State of the Art" by Bin


Zhang et al. (2020):
This review article focuses on the advancements in smart carpooling systems
enabled by information and communication technologies. It discusses the
integration of real-time data, location-based services, and social networking into
carpooling platforms. The study also examines the challenges and opportunities
associated with smart carpooling, such as privacy concerns, trust issues, and
user behavior analysis.

5. "Factors Influencing Carpooling: A Literature Review and Proposals for


Future Research" by Maria Attard (2015):
This literature review explores the factors influencing carpooling adoption and
participation. It discusses individual-level factors (e.g., socioeconomic
characteristics, attitudes, and travel behavior), contextual factors (e.g., urban
form and transportation infrastructure), and organizational factors (e.g.,
workplace policies and incentives). The study provides insights into potential
research directions and policy interventions to promote carpooling.

These literature surveys offer valuable insights into the current state of
carpooling systems, including their benefits, challenges, and technological
advancements. They provide a foundation for understanding the factors
influencing carpooling participation and offer suggestions for improving the
effectiveness and adoption of carpooling as a sustainable transportation
solution.

20 | P a g e
CHAPTER 3 : SOFTWARE REQUIREMENT AND
SPECIFICATIONS

21 | P a g e
3.1 Introduction
A software requirements specification (SRS) includes in-depth descriptions
of the software that will be developed.

A system requirements specification (SyRS) collects information on the


requirements for a system.

“Software” and “system” are sometimes used interchangeably as SRS. But a


software requirement specification provides greater detail than a system
requirements specification.

3.2 Intended Audience and Reading Suggestions

Intended Audience:

The intended audience for the carpooling system includes:

1. Development Team: Software developers, programmers, and engineers


involved in designing, implementing, and maintaining the carpooling system.

2. Project Stakeholders: Individuals or organizations who have a vested


interest in the success of the carpooling system, such as project managers,
executives, and investors.

3. System Users: Commuters, travelers, and drivers who will be using the
carpooling system to find rides or offer rides to others.

5. Researchers and Academics: Professionals and scholars interested in


studying and analyzing carpooling systems, transportation solutions, and related
technologies.

22 | P a g e
5. Policy Makers and Transportation Planners: Government officials and
professionals responsible for transportation planning and policies, who can
explore the potential benefits and implications of carpooling systems.

Reading Suggestions:

1. "Ridesharing and Carpooling: Challenges and Opportunities" by Susan


Shaheen and Stacey Guzman (2017): This book provides a comprehensive
overview of ridesharing and carpooling, including their historical context, social
and environmental impacts, technological advancements, and policy
implications. It offers insights into the challenges and opportunities associated
with carpooling systems and serves as a valuable resource for researchers and
practitioners.

2. "Shared Mobility: Innovation for Liveable Cities" by Susan Shaheen et


al. (2020):This book explores the concept of shared mobility and its role in
creating sustainable and livable cities. It covers various forms of shared
transportation, including carpooling, ridesharing, bike-sharing, and public
transit. It delves into case studies, policy frameworks, and technological
advancements, providing a comprehensive understanding of shared mobility
systems.

3. "Dynamic Ridesharing and the Sharing Economy: Transportation


Paradigms for the 21st Century" edited by Guido Perboli and Luca P. B.
Talarico (2017): This book focuses on dynamic ridesharing, which includes
real-time matching of travelers for shared rides. It discusses the technological
aspects, optimization algorithms, economic models, and policy considerations
related to dynamic ridesharing. It provides insights into the potential of
dynamic ridesharing in transforming transportation systems.

5. "The Handbook of Transport and the Environment" edited by David A.


Hensher et al. (2019): This comprehensive handbook covers various aspects of
transportation and the environment, including sustainable mobility solutions. It
includes chapters on carpooling, ridesharing, and shared transportation services,
examining their environmental benefits, policy frameworks, and
implementation challenges. It serves as a valuable reference for policymakers,
researchers, and professionals working in the transportation field.

23 | P a g e
5. Research Papers and Articles: Explore academic journals and conference
proceedings in the fields of transportation, urban planning, and information
technology. Look for research papers and articles that specifically focus on
carpooling systems, their design, user behavior analysis, optimization
algorithms, and the impact of emerging technologies. Some notable journals
include Transportation Research Part C: Emerging Technologies,
Transportation Research Part D: Transport and Environment, and Journal of
Transport Geography.

These reading suggestions provide a comprehensive understanding of


carpooling systems, their benefits, challenges, policy implications, and
technological advancements. They cater to different audiences, including
researchers, practitioners, and policymakers, offering valuable insights into the
development and implementation of carpooling solutions.

3.3 General Architecture of Software:

The general architecture of a carpooling system typically consists of several


components that work together to facilitate the sharing of rides. Here is a high-
level overview of the general architecture of a carpooling system:

1. User Interface: The user interface component provides the interface for
users to interact with the carpooling system. It can include a web-based
application, mobile app, or both, allowing users to register, log in, search for
rides, create trip listings, view profiles, and communicate with other users.

2. User Management: The user management component handles user


registration, authentication, and profile management. It stores user information
such as names, contact details, and preferences. It also ensures the security and
privacy of user data.

3. Trip Management: The trip management component enables users to create,


manage, and search for trip listings. It allows drivers to post their trips with
details such as start and end locations, date, time, available seats, and any
specific requirements. Users can search for trips based on their preferences and
book seats in available trips.

5. Matching and Routing: The matching and routing component is responsible


for finding suitable matches between drivers and passengers based on their trip

24 | P a g e
preferences, locations, and schedules. It uses algorithms to optimize the
matching process and determine the most efficient routes for the shared rides.

5. Communication: The communication component enables users to interact


with each other within the carpooling system. It includes features such as
messaging or chat functionality, allowing users to communicate and coordinate
trip details, pickup locations, and other necessary information.

6. Rating and Reviews: The rating and reviews component allows users to
provide feedback and ratings for their travel experiences. It helps establish trust
and reliability within the carpooling community, as users can view ratings and
reviews before booking a ride.

7. Payment Processing: The payment processing component handles financial


transactions between drivers and passengers. It may integrate with third-party
payment gateways or provide in-app payment options to facilitate secure and
convenient transactions.

7. Analytics and Reporting: The analytics and reporting component collects


and analyzes data related to user activity, trip bookings, preferences, and system
performance. It generates reports and insights that can be used for system
optimization, business intelligence, and decision-making.

9. System Administration: The system administration component includes


tools and interfaces for system administrators to manage user accounts, monitor
system activity, configure system settings, and handle any administrative tasks
related to the carpooling system.

10. External Services and APIs: The carpooling system may integrate with
external services and APIs for various functionalities, such as geolocation
services for route planning, SMS gateways for notifications, and mapping
services for displaying trip routes and locations.

It's important to note that the specific architecture of a carpooling system may
vary depending on the platform, technology stack, and additional features
implemented. The outlined components provide a general framework for
understanding the key elements involved in a typical carpooling system.

25 | P a g e
Fig 3.3 General Architecture of Software

3.4 Requirement Specification


A requirement is defined by IEEE (1997) as “a statement that identifies a
product or process operational, functional, or design characteristics or
constraint, which is unambiguous, testable or measurable, and necessary for
product or process acceptability (by consumers or internal quality assurance
guidelines).” The requirements should be traceable, manageable, and should
have a clear, single understanding, common to all parties involved. A
requirement can both define the product that is built in response to the
requirements and the processes for using the things that are built (IEEE,
1997).

3.4.1 Functional Requirements

General application requirements

1. Login : Since all the operations that can be done using the application
requires both the driver and passenger to be logged in, they can use the login
forms of either Google Plus or Facebook. For this matter, the user is prompted
to connect the app to his account and then proceed for sign in/up.

26 | P a g e
After the user authorizes the application to access his social media account, the
server retrieves his info. If he has never logged to the application before, a new
account is created for him.

2.Modify profile information :All users can modify their profile information.
The profile information contain: name, phone number, email, type/color of car if
any. The user can easily edit these information in order to be contacted and
recognized.

3.Social media sharing : In order to attract more users to the application and
help users find passengers, users should be able to share their activity on the
application on social media. A suggestion for sharing trips’ creation, trips’
registration or check in should pop-up whenever those previous actions are
performed. The sharing should be authorized by the users and not done
automatically by the application in order not to spam the users’ account and gain
the users’ confidence.

5.Rate driver/passenger : Both the driver and passenger can rate each other in
other to gain reputation. The importance of the rating is to encourage users to be
helpful and nice during the trip so that they gain popularity in the application. It
is also a way to ensure users of who can be trusted or not. The ratings represent
a relative guarantee for the users to trust each other.

5. Regular trips

5.1 Create new regular trip : The driver can create a new trip to be displayed
when passengers search for trips. The application will prompt the driver or
information of the regular trip which consists of destination, origin, meeting
point ( which can be pointed in a map), departure time/date , estimated arrival
time and traveling preferences (number of free spots, price, size of bags,
smoking/non-smoking, pets, stops …). After providing this information, the
user publishes it in order to find passengers. Upon the creation of the trip, a user
can share the trip he just created in social media to find passengers to drive
with.

5.2 Search for regular trips and reservation : When a passenger needs to find
a driver for a destination, he can use a search form which asks for destination,
origin, departure date/time. He can also specify the travelling preferences. When
he finds a suitable trip, he can reserve a spot easily in by taping a button which
will send a notification to the driver telling him that a passenger has reserved.

27 | P a g e
5.3 Check-in trip : Whenever the driver or passenger arrive to the meeting
point at the time agreed upon, he can check-in the meeting point in order to
notify the other user and to show his punctuality. The application will use the
devices GPS in order to make sure that the users are in the meeting point. When
somebody checks in, a notification is sent to all the carpoolers saying that
somebody is in the meeting point.

6.Frequent trips

6.1 Add frequent trip : The driver can create a frequent trip where they
show the origin and destination, departure and return times in addition to
the frequency (daily and weekly).

6.2 Search frequent trips : A passenger can search for a frequent that he can
join. The passenger should specify the departing neighborhood, destination,
departure times and frequency. The application will try to match it with the best
trip. If the passenger is satisfied, he can register to the frequent and will be
given the contact of the other members.

3.5.2 Non-functional requirements


1.Performance : The application has to offer a very quick response time as the
meeting between the driver and passengers is done through notifications. In
other words, the server should be able to treat notifications and propagate them
instantly. The application should handle 1000 users sending queries at the same
time.

2. Scalability : The application should respond properly to a high increase of


users. It should be able to handle from 10 000 users to 100 000 users. And also
from 100 000 to one millions users.

3. Extensibility: The application should by extensible in order to support


multiple platforms including iOS, Windows Phone and Web.

28 | P a g e
5. Privacy and Security : The application should ensure the privacy of the
users including the trips they take part in, their social media accounts and their
accounts. The login system should also be robust where only authorized users
can post and edit their own information.

5. Maintainability : Since the application may be developed in the future by


adding other features, it should be easily maintainable.

6. Availability : In order to ensure a reliable and efficient experience for users,


it is crucial that the application maintains a high level of availability and
guarantees minimal server downtime. The server's performance should aim for a
maximum of one hour of downtime per year, which translates to a 99.99%
uptime.

3.5 Feasibility study

The first step of this project consisted of assessing the different available
carpooling applications in order to come up with requirements along with
improvements. Given that Play Store is the official source of applications
of Android, I used their search engine to find carpooling application by
typing the keyword “carpooling”. A set of similar applications that hold
the same icon showed up in the results. All those applications are from
the same publisher but the difference between them is that each one is for
a different country (carpooling.fr, carpooling.co.uk, …). After installing
one of this set of applications and exploring the different features, I found
out that it was offering trips between two cities along with frequent trips.
The only disadvantage is that the application works only in France and in
order to have access to other countries you have to download a separate
application. The other apps were similar to the one previously stated.
Another app called Carma offered to make the payments between the
passengers and drier goes through the application.
Another set of applications offer different kind of trip: the one that make
parents or tutors that do a trip frequently to take kids to school, clubs or
sports meet so that they take turn. These applications are only available
through web and not as a mobile application. An example of this kind of
applications is HopWays.

After exploring the different applications, I came up with essential


features that are feasible and also some improvements that should be
considered. Single trips and frequent should be implemented in order to
have an application that answers the need of the market.

29 | P a g e
For the scope of this project, the plausible features to implement in order
to improve what is available on the market are:

1.Location independent application: the same application (no need to


download a country specific app) should work everywhere in the world.
2.Socially enabled: Login using Facebook, Google Plus … and share
content to social media.
3.Map picker: for picking the meeting points.
5.Pay through the app: The payments for trips goes through the
application
5.Payment system: The payment can go through the application, this is
difficult to implement given the complexity of this system and its legal
implication

3.6 System Requirements

3.6.1 Software Requirements

3.6.1.1 Android Studio : Android Studio serves as the official integrated


development environment (IDE) for Android app development. It is built
on JetBrain's IntelliJ IDEA software and specifically designed to cater to
the needs of Android developers. The initial announcement of Android
Studio took place on May 16, 2013, during the Google I/O conference.
3.6.1.2 Firebase : Firebase, developed by Google, is an application
development software that empowers developers to create iOS, Android,
and Web applications. It offers a range of tools for various purposes,
including analytics tracking, crash reporting and resolution, and product
experimentation.
3.6.1.3 Figma : Figma is a digital design and prototyping tool widely
used in the field of user interface (UI) and user experience (UX) design.
It enables designers to create websites, apps, and individual UI
components that can be seamlessly integrated into larger projects.
3.6.1.5 GitHub : GitHub functions as a code hosting platform, providing
version control and collaboration capabilities. It facilitates teamwork and

30 | P a g e
allows developers to work on projects together, regardless of their
physical location.
3.6.2 Hardware Requirements
1. Minimum 7 Gb of RAM.
2. 10 Gb free space.
3. Processor i3 6th Gen or higher.
5. Android device with version 6 or higher.

3.7 User Requirement Document


3.7.1 Use Case Diagram

Fig 3.7.1 Use Case Diagram

31 | P a g e
3.7.2 Activity Diagram

Fig 3.7.2 Activity Diagram

32 | P a g e
3.8 System Design

3.8.1 Introduction
The system design of a carpooling system typically involves multiple
components and interactions. Here's an overview of the high-level system
design for a carpooling system:

1. User Interface (UI):


Mobile App: The carpooling system is primarily accessed through a mobile
application that provides a user-friendly interface for riders and drivers to
interact with the system.
- Web Interface: A web-based interface can also be provided to allow users
to access the system through web browsers on their computers.

2. User Management:
- Registration and Authentication: Users can register and create accounts
with the carpooling system. This involves capturing user details, verifying
email/phone, and managing user authentication.
- User Profiles: Users can create and manage their profiles, including
personal information, contact details, and preferences.

3. Ride Management:
- Ride Listings: Drivers can create ride listings by specifying details such as
the starting point, destination, date, time, available seats, and any additional
preferences or requirements.
- Ride Search and Matching: Riders can search for available rides based on
their desired criteria, such as location, date, and time. An algorithm matches
riders with suitable drivers based on their preferences and available seats.
- Ride Booking: Riders can book available rides and receive confirmation
from the driver. This may involve handling seat reservations and managing
booking status.
- Ride Cancellation: Users should have the ability to cancel rides if
necessary, with appropriate considerations for refund policies or penalties.

5. Payment and Transactions:


- Fare Calculation: The system should calculate fares based on factors like
distance, time, and any additional fees or charges.

33 | P a g e
- Payment Integration: Integration with payment gateways or in-app
payment systems to handle secure and convenient payment transactions
between riders and drivers.
- Billing and Invoicing: Riders should receive invoices or receipts for
completed rides, and drivers should have access to their earnings and
transaction history.

5. Communication and Notifications:


- Messaging: Users can communicate with each other through an in-app
messaging system to discuss ride details, ask questions, and coordinate logistics.
- Notifications: The system sends notifications to users for ride updates,
booking confirmations, cancellations, reminders, and other relevant
information.

6. Mapping and Navigation:


- Mapping Services: Integration with mapping services, such as Google
Maps, to display ride routes, estimated arrival times, and real-time navigation
for drivers and riders.
- Geolocation: The system should utilize geolocation to track the real-time
location of drivers and riders, allowing for accurate pickup and drop-off
coordination.

7. Ratings and Reviews:


- Feedback System: Users can provide ratings and reviews for each other
after completing rides. This helps establish trust and accountability within the
carpooling community.

7. Administrative Panel:
- Dashboard and Analytics: An administrative panel provides administrators
with insights into user activity, ride statistics, payment details, and other
relevant analytics to manage the system effectively.
- System Configuration: The administrative panel allows administrators to
configure system settings, manage user accounts, handle reported issues, and
perform administrative tasks.

9. Security and Privacy:

34 | P a g e
- User Verification: Implementing measures for user verification, such as
email/phone verification or social media integration, to ensure the authenticity
of users.
- Data Protection: Employing appropriate security measures to protect user
data, including encryption, secure data storage, and compliance with data
protection regulations.

This system design serves as a broad outline and can be customized and
expanded based on specific requirements and business needs.

3.8.2 Data Flow Diagram

Fig 3.8.3 Data Flow Diagram

35 | P a g e
3.8.3 Class Diagram

Fig 3.8.4 Class Diagram

36 | P a g e
CHAPTER 4 : IMPLEMENTATION

37 | P a g e
4.1 Introduction

Introduction to a Carpooling App:

This carpooling app aims to revolutionize the way people commute by


providing a convenient and cost-effective solution for ridesharing. With the
increasing traffic congestion and environmental concerns, our app offers a
sustainable and efficient transportation alternative for daily commuters and
occasional travelers alike.

This app connects drivers with available seats in their vehicles to passengers
heading in the same direction. By sharing rides, users can reduce their carbon
footprint, alleviate traffic congestion, and enjoy the benefits of cost sharing.
Whether it's commuting to work, attending events, or traveling between cities,
our carpooling app facilitates seamless connections between drivers and riders.

The App include, but are not limited to:


1. Information Provision
2. No waiting in the queue
3. A credible source of data
4. Less time consuming
5. Open Sourced
4.2 Scope
The scope of a carpooling system encompasses various aspects related to its
implementation, functionality, and impact. Here are key components that define
the scope of a carpooling system:

1. Geographic Scope: The carpooling system can be designed for a specific


region, city, or even for a particular transportation network, such as within a
university campus or corporate office complex. The geographic scope
determines the target user base and the reach of the system.

2. User Base: The carpooling system can cater to a wide range of users,
including commuters, students, employees of a particular organization, or
specific demographic groups. The system may be open to the general public or
limited to a specific user group based on eligibility criteria.

38 | P a g e
3. Ride Matching and Scheduling: The carpooling system's scope includes the
functionality to match drivers and passengers with similar travel routes and
preferences. It should enable users to schedule and coordinate rides efficiently,
taking into account factors such as departure times, pickup/drop-off locations,
and preferred number of passengers.

5. Payment and Cost-sharing: The scope of the carpooling system includes


mechanisms for handling cost-sharing among participants. This may involve
options such as cash payments, digital payment platforms, or predefined fare
structures. The system should provide transparency and security in handling
financial transactions.

5. Safety and Trust: The scope of the carpooling system encompasses


measures to ensure the safety and trustworthiness of participants. This may
include driver and passenger verification processes, user ratings and reviews,
insurance coverage, and collaboration with law enforcement agencies, where
necessary.

6. Integration with Public Transportation: The scope of the carpooling


system may extend to integration with existing public transportation networks.
This can involve coordinating carpooling options with bus, train, or subway
schedules, providing first/last-mile connectivity, or offering incentives for
carpool users to access public transit.

7. Data Analytics and Optimization: The scope of the carpooling system may
include the collection and analysis of data related to user behavior, travel
patterns, system performance, and environmental impact. Data analytics can be
leveraged to optimize matching algorithms, improve operational efficiency, and
measure the system's effectiveness in reducing congestion and emissions.

7. Scalability and Expansion: The scope of the carpooling system may include
provisions for scalability and future expansion. This involves designing the
system architecture to handle increasing user volumes, accommodating
additional features, and adapting to evolving transportation needs and
technologies.

9. Legal and Regulatory Compliance: The scope of the carpooling system


incorporates adherence to relevant legal and regulatory requirements. This
includes compliance with transportation regulations, licensing, insurance, and
privacy laws.

39 | P a g e
10. Social and Environmental Impact: The scope of the carpooling system
includes evaluating and monitoring the social and environmental impact it
generates. This involves assessing factors such as reduced traffic congestion,
improved air quality, cost savings for participants, and fostering a sense of
community and shared responsibility.

The scope of a carpooling system can vary depending on the specific goals,
target audience, and geographical context. However, it generally encompasses
the aforementioned aspects related to functionality, user experience, safety,
sustainability, and compliance.

4.3Features

4.3.1.Login:
Users can log into the application using their phone number. The login page
requires additional personal details. If the user is already registered, they will be
prompted to sign in using their respective account.

4.3.2.Trip Booking Dashboard:


The trip booking dashboard displays all available bookings, and users can
search for their desired trips based on their needs. The user's feed shows all the
posted trips, and they can navigate to any trip they are interested in to view
more details. This includes information about the trip initiator, the vehicle
model being used, and accompanying photos. To book a preferred trip, the user
can simply click on it and provide details such as pickup location, luggage
capacity, and information about their health condition. When booking a trip,
users have the option to verify the authenticity of the trip initiator by checking
their profile details, which may include Aadhaar details, Pan Card details, and
other authentic information.

4.3.3.New Trip Creation:


This feature allows users to create new trip listings. Users are prompted to
provide essential details about the trip, such as the source location, destination,
date, and time. They can also add information about the vehicle, including the
car number, brand, model, seat and luggage capacity, as well as upload photos
to showcase the car's condition. Even if a user doesn't own a car, they can still
post trip details, and others who are willing to share the trip can contact them
through calling and chat features.

40 | P a g e
4.4.4. Chatting Space:
The chatting space module enables users to communicate with the initiator of a
booking. It serves as a bridge to overcome communication gaps between clients
and trip initiators. Users can utilize the chat feature to negotiate fair prices,
discuss facilities such as available luggage space and the number of passengers,
inquire about past driving experience, and discuss the possibility of two-way
trips. This feature also allows customers to cancel or delay trips due to
unforeseen circumstances.

41 | P a g e
CHAPTER 5 : TECHNOLOGY USED

42 | P a g e
5.1 Server Side Technologies

5.1.1 Java : Java is widely recognized as a popular language for application


servers. The deployment of applications on servers typically involves the use of
WAR and EAR files, which are specifically designed for server deployment.
These files contain all the necessary resources, libraries, and configurations for
running the applications on the server.

One of the key advantages of Java is its platform independence. Java


applications run on the Java Virtual Machine (JVM), enabling them to be
executed on various operating systems without requiring significant
modifications. This cross-platform compatibility allows Java applications to run
seamlessly on different environments.

GlassFish and JBoss are prominent examples of application servers that utilize
Java technology. They provide robust environments for deploying and
managing Java-based applications, offering features such as scalability,
performance optimization, and advanced management capabilities.

5.1.2 .NET : .NET is a server-side technology developed by Microsoft,


primarily designed to run on the Windows operating system. It provides a
framework and runtime environment for building and deploying various types
of applications.

5.1.3 JavaScript : JavaScript is a versatile and dynamic programming language


that has traditionally been primarily used for client-side scripting and web
development. However, in recent years, significant advancements have allowed
programmers to leverage JavaScript for building standalone application servers.

5.2 Client Side Technology

5.2.1 Android : Android is an open-source operating system developed by


Google for smartphones, tablets, cars, TVs and smart watches. Today, more

43 | P a g e
than 75% of smartphones in the world are using this operating system which
makes it hold the biggest market share.

5.2.2 Web : Enables the user to access the services using any web browser on
any device using the HTTP protocol, HTML, Ajax, JavaScript...

5.3 Databse

5.3.1 FirebaseFirebase is a comprehensive mobile and web development


platform developed by Google. It offers a wide range of services and tools that
simplify the development process and help build high-quality applications.

Key features of Firebase include:

1. Real-time Database: Firebase provides a NoSQL cloud database that allows


developers to store and synchronize data in real-time across multiple clients.
This feature is particularly useful for applications requiring real-time updates,
such as chat apps or collaborative tools.

2. Authentication: Firebase offers built-in authentication services that enable


developers to easily add user authentication and authorization to their
applications. It supports various authentication methods, including
email/password, social media logins, and single sign-on (SSO) with platforms
like Google, Facebook, and Twitter.

3. Cloud Functions: Firebase allows developers to write and deploy serverless


functions in a scalable manner. These functions can be used for tasks such as
background processing, data validation, and integrating with third-party
services.

4. Cloud Storage: Firebase offers cloud-based storage for user-generated


content, such as images, videos, and files. It provides an easy-to-use API for
uploading, downloading, and managing files, along with built-in security and
access control.

5.4 Other Technologies

44 | P a g e
5.4.1Google Maps

Google Maps is mapping application developed by Google. For this


application, I’ll be using its services for:
Maps: Google Maps API for Android enables to show a map given GPS
coordinates or choose a point on a map and get the GPS coordinates
back. This will be useful for determining the meeting point for the trips
and store them in the database. Also, Google uses a textual identifier that
uniquely identifies a place. The latter is useful to unify the name of
places and avoid users’ confusion.

Directions: Google Maps API provides a web service to determine the


distance between two GPS coordinates, that will be used at the time of
the check-in to determine if the user is close to the meeting point or not.

5.4.2 Facebook and Google Plus : In order for users to be able to sign in
using Facebook and Google logins, I’ll be using their APIs for this matter. They
both enable to retrieve the user’s information as soon as he authorizes the
application. Content may be shared to these social networks which will ensure a
presence of the application on them.

45 | P a g e
CHAPTER 6 : RESULTS AND DISCUSSION

46 | P a g e
6.1 Output Screens
6.1.1 All Trip Screen : The module displays a comprehensive list of trips,
catering to the needs of trip seekers by providing essential trip details.
Prominent information such as the source and destination locations are
prominently featured. Additionally, the module enhances the user experience by
showcasing car images as visual evidence of the current condition of the
vehicles being offered for the trips.

Fig 6.1.1 All Trip Screen

6.1.2 Book trip Screen : All posted trips are conveniently accessible to users
through their personalized feed. Users can effortlessly navigate through the
available trips and select the ones they are interested in to gather additional
details. These details include pertinent information about the trip initiator, such
as their identity, as well as the vehicle model being used for the trip,
accompanied by accompanying photos.

47 | P a g e
When users find a trip that aligns with their preferences, booking it is just a
simple click away. During the booking process, users can provide their specific
details such as pickup location, luggage capacity, and also inform the trip
initiator about their health condition or any special requirements.

Furthermore, users are granted full control and permissions to verify the
authenticity of the trip initiator. They can thoroughly examine the trip initiator's
profile details, which encompass crucial information such as Aadhaar details,
Pan Card details, and other reliable and verifiable credentials. This empowers
users to make informed decisions while booking trips and ensures a level of
trust and transparency within the carpooling community.

Fig 6.1.2 Book trip Screen :

6.1.3 Profile : A profile module consists of the user's profile which is accessible
to all other clients; it also includes the public details required by other users to
get the authenticity of any user. It deals with sharing of trips initiator's details
with the interested users so that the users can get an approximation about the
background of other users

48 | P a g e
Fig 6.1.3 Profile

6.1.4 Add Trip Screen : The app includes a convenient feature that allows
users to post any trip in advance. Users can provide essential details such as the
source location, destination, date, and time of the trip. Additionally, users can
add relevant car details like the car number, brand, model, and specify the
available seat and luggage capacity. They can also upload photos to provide a
visual representation of the car's condition.

Even if a user doesn't own a car, they can still post trip details. In such cases,
individuals who are willing to share the trip can communicate with the user
through the app's calling and chat features. This facilitates easy and direct
communication between users, enabling them to coordinate and plan the trip
effectively.

49 | P a g e
Fig 6.1.4 Add Trip Screen

6.1.5 Chat Screen : The chat module serves as a vital communication bridge
between clients and trip initiators, facilitating seamless interaction and
overcoming any communication gaps. This feature enables users who are
interested in a particular trip to engage in real-time chat conversations.

Through the chat module, users can negotiate the fair price, discuss various
facilities such as available luggage space and the number of passengers, inquire
about the trip initiator's past driving experience, and even explore the possibility
of two-way trips.

Moreover, this feature provides flexibility for users to handle unforeseen


circumstances. They can communicate with each other to discuss trip
cancellations or delays that may arise due to unavoidable circumstances. The
chat module ensures that users can maintain open lines of communication,
fostering a collaborative and convenient experience within the carpooling
community.

50 | P a g e
Fig 6.1.5 Chat Screen :

6.1.6 Maps Screen :

Fig 6.1.6 Maps Screen

51 | P a g e
CHAPTER 7 : TESTING AND INTEGRATION

52 | P a g e
Testing is a process of executing a program with the aim of finding error. To
make our software perform well it should be error free. If testing is done
successfully, it will remove all the errors from the software.
7.1 Principles of Testing: -

1. All the test should meet the customer requirements


2.To make our software testing should be performed by third party
3. Exhaustive testing is not possible. As we need the optimal amount of
testing based on the risk assessment of the application.
4. All the test to be conducted should be planned before implementing it
5. It follows pareto rule(70/20 rule) which states that 70% of errors comes
from 20% of program components.
6. Start testing with small parts and extend it to large parts.

7.2 Steps of Software Testing:


1. Requirement Analysis.
2. Planning the test.
3. Developing the test case.
4. Setting up the test environment.
5. Executing the test.
6. End of test, or closing the test cycle.

7.3Types of testing:

7.3.1 Unit Testing:

It focuses on smallest unit of software design. In this we test an individual unit


or group of inter related units. It is often done by programmer by using sample
input and observing its corresponding outputs.

7.3.2 Integration Testing:

The objective is to take unit tested components and build a program structure
that has been dictated by design. Integration testing is testing in which a group
of components are combined to produce output.

7.3.3 Regression Testing:

Every time new module is added leads to changes in program. This type of
testing make sure that whole component works properly even after adding
components to the complete program.

53 | P a g e
7.3.4 Validation and Verification Testing:
In software testing, verification and validation are the processes to check
whether a software system meets the specifications and that it fulfills its
intended purpose or not. Verification and validation is also known as V & V. It
may also be referred to as software quality control.

7.3.5 White Box Testing:


White Box Testing (also known as Clear Box Testing, Open Box Testing, Glass
Box Testing, Transparent Box Testing, Code-Based Testing or Structural
Testing) is a software testing method in which the internal
structure/design/implementation of the item being tested is known to the tester.

7.3.6 Black Box Testing:


Internal system design is not considered in this type of testing. Tests are based
on the requirements and functionality. Black Box Testing, also known as
Behavioral Testing, is a software testing method in which the internal
structure/design/implementation of the item being tested is not known to the
tester. These tests can be functional or non-functional, though usually
functional.

7.3.7. Regression Testing

Regression testing is the process of testing changes to computer programs to


make sure that the older programming still works with the new changes.
Regression testing is a normal part of the program development process and, in
larger companies, is done by code testing specialists. Test department coders
develop code test scenarios and exercises that will test new units of code after
they have been written. These test cases form what becomes the test bucket.
Before a new version of a software product is released, the old test cases are run
against the new version to make sure that all the old capabilities still work. The
reason they might not work is because changing or adding new code to a
program can easily introduce errors into code that is not intended to be changed.
Regression testing is a necessary component to any software development
lifecycle. Expert Mike Kelly explains the motivations for conducting regression
tests.
7.3.8. Accessibility Testing
The aim of Accessibility Testing is to determine whether the software or
application is accessible for disabled people or not. Here, disability means deaf,
color blind, mentally disabled, blind, old age and other disabled groups. Various

54 | P a g e
checks are performed such as font size for visually disabled, color and contrast
for color blindness, etc.
7.3.9Ad-hoc Testing
The name itself suggests that this testing is performed on an Ad-hoc basis i.e.
with no reference to the test case and also without any plan or documentation in
place for such type of testing. The objective of this testing is to find the defects
and break the application by executing any flow of the application or any
random functionality.

7.4 CONCLUSION

This carpooling application is an application that complies to the


enterprise class application principles. It is designed to be performing,
scalable, extensible, and highly available. It also ensures the privacy of
the users’ data and secures its access. Given that it may be improved in
many ways, the application is also easily maintainable.

The result achieved in this project is a working Android application and


server that perform the requirements stated in this document. It is still not
ready to be deployed on the Play Store for the public. The main reason is
that the server should be deployed on stronger hardware with a good
Internet connection.

The constraint that should have been considered is that developing a


server and an Android application demand a lot of work. This should be
considered in the time allowed for each one of these activities. Due to this
lack of time, many things can be improved in the present application.
This includes a better user interface with more attractive styles. Also,
adding more support for authentication systems can be an improvement.

7.5 FUTURE ENHANCEMENTS

In the future, carpooling systems are likely to undergo several


enhancements to improve efficiency, convenience, and sustainability.
Here are some potential future enhancements for carpooling systems:

1. Advanced Matching Algorithms: Carpooling platforms can employ


more sophisticated algorithms that consider multiple factors like travel
routes, timing preferences, and user profiles to match riders and drivers
more effectively. These algorithms can optimize the matching process to
minimize detours and waiting times, improving the overall experience for
users.

55 | P a g e
2. Integration with Navigation Systems: Carpooling apps can integrate
with navigation systems to provide real-time traffic updates and suggest
optimal routes for the carpool. This can help drivers and riders save time
by avoiding congestion and taking the most efficient routes.

3. Autonomous Vehicle Integration: As self-driving technology


advances, carpooling systems could integrate autonomous vehicles into
their fleets. This could potentially reduce the need for human drivers and
provide a more seamless and efficient carpooling experience. Riders
could request autonomous vehicles through the app, and the vehicles
could pick them up and drop them off at their desired destinations.

4. Dynamic Pricing and Incentives: Carpooling platforms may


introduce dynamic pricing models that incentivize users to carpool during
off-peak hours or in areas with high demand. By adjusting prices based
on real-time demand and supply, these systems can encourage more
people to participate in carpooling, reducing traffic congestion and
promoting sustainability.

5. Enhanced Safety Measures: Future carpooling systems may


incorporate advanced safety features, such as real-time background
checks for drivers, in-vehicle monitoring systems, and panic buttons for
emergencies. These measures can help build trust and ensure the safety of
riders and drivers participating in the carpooling system.

6. Integration with Public Transportation: Carpooling platforms can


work in collaboration with public transportation systems, allowing users
to seamlessly combine carpooling with other modes of transportation like
buses or trains. Integrated ticketing systems and enhanced information
sharing can make it easier for users to plan and execute their multi-modal
journeys.

7. Environmental Considerations: Carpooling systems can prioritize


environmentally friendly options by promoting the use of electric or
hybrid vehicles in their fleets. Additionally, they can provide information
about carbon emissions saved through carpooling, encouraging users to
make sustainable choices.

8. Gamification and Social Features: To enhance user engagement and


encourage participation, carpooling platforms can incorporate
gamification elements and social features. These could include rewards

56 | P a g e
systems, badges, leaderboards, and the ability to connect with friends or
colleagues for carpooling purposes.

9. Integration with Smart City Infrastructure: Future carpooling


systems can leverage smart city infrastructure, such as traffic sensors and
intelligent transportation systems, to optimize routing, reduce congestion,
and improve overall system efficiency. This integration can enable real-
time data sharing and help the carpooling system adapt to changing traffic
conditions.

10. Shared Mobility Ecosystem Integration: Carpooling platforms can


integrate with other shared mobility services like bike-sharing or scooter-
sharing, allowing users to easily combine different modes of
transportation for their journeys. Seamless integration and shared
payment systems can provide users with more options and flexibility
when planning their trips.

It's important to note that these are potential future enhancements, and the
actual implementation and timeline for these features may vary based on
technological advancements, regulatory considerations, and market
demand.

57 | P a g e
REFERENCES

58 | P a g e
[1] Mayur K. Thorat, Rahul M. Lohakare, “Poll uni Poll ” , “International Journal
of Engineering Research and Technology (IJERT)”, ISSN: 2278-0181 (ISO
3297:2007) Vol. 2, Issue 11.
[2] R. Manzini and A. Pareschi, “A Decision-Support System for the Car Pooling
Problem,” Journal on transportation technologies, Vol.2, No. 2, 2012.
[3] Pramanik, Sabyasachi, et al. "A Novel Approach Using Steganography and
Cryptography in Business Intelligence." Integration Challenges for Analytics,
Business Intelligence, and Data Mining. IGI Global, 2021. 192-217.
[4] Bharadwaj AN, et al. Public Bicycle-Sharing System. National Conference on
Product Design. 2016.
[5] Dodal AS, et al. Bike Sharing and Rental System: An Android Application.
International Journal for Research in Applied Science and Engineering
Technology. 2016.
[6]Sumit S, et al. SPAC DRIVE. : Bike Sharing System for Improving
Transportation Efficiency Using Euclidian Algorithm. International Journal of
Advance Engineering and Research Development. 2017.
[7] Awasthi, Shashank, et al. "A Comparative Study of Various CAPTCHA
Methods for Securing Web Pages." 2019 International Conference on
Automation, Computational and Technology Management (ICACTM).
IEEE, 2019.
[8] Arpita D. Real-Time Carpooling System for Android Platform. International
Journal of Engineering and Innovative Technology (IJEIT). 2012.
[9] Sneha M, et al. Take Me with You: A Smart Carpooling App Using Genetic
Algorithm. International Engineering Research Journal (IERJ). 2016.
[10] Narayan, Vipul, and A. K. Daniel. "Energy Efficient Protocol for Lifetime
Prediction of Wireless Sensor Network using Multivariate Polynomial
Regression Model." Journal of Scientific & Industrial Research 81.12 (2022):
1297-1309.
[11] Kapil K, et al. Car Pooling Android Application. International Journal of
Engineering Research in Computer Science and Engineering (IJERCSE).
2016.
[12] Awasthi, Shashank, et al. "A Comparative Study of Various CAPTCHA
Methods For Securing Web."

59 | P a g e
[13] Narayan, Vipul, et al. "E-Commerce recommendation method based on
collaborative filtering technology." International Journal of Current
Engineering and Technology 7.3 (2017): 974-982.
[14] Narayan, Vipul, and A. K. Daniel. "CHOP: Maximum coverage optimization
and resolve hole healing problem using sleep and wake-up technique for
WSN." ADCAIJ: Advances in Distributed Computing and Artificial
Intelligence Journal 11.2 (2022): 159-178.
[15] Irfan, Daniyal, et al. "Prediction of Quality Food Sale in Mart Using the AI-
Based TOR Method." Journal of Food Quality 2022 (2022).

60 | P a g e
APPENDIX

61 | P a g e
1. Addimages.kt
package com.example.finalprojectv1
import android.app.ProgressDialog
import android.content.Intent
import android.net.Uri
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import com.example.finalprojectv1.databinding.ActivityAddImagesBinding
import com.example.finalprojectv1.databinding.EditProfileBinding
import com.google.firebase.ktx.Firebase
import com.google.firebase.storage.FirebaseStorage
import kotlinx.android.synthetic.main.activity_add_images.*
import java.text.SimpleDateFormat
import java.util.*

class AddImages : AppCompatActivity() {

private lateinit var binding:ActivityAddImagesBinding


private lateinit var ImageUri : Uri
lateinit var Source:String
lateinit var destination:String
var ID:String = ""
companion object {
val IMAGE_REQUEST_CODE = 100;
}

override fun onCreate(savedInstanceState: Bundle?) {


super.onCreate(savedInstanceState)
binding = ActivityAddImagesBinding.inflate(layoutInflater)

setContentView(binding.root)

Source=intent.getStringExtra("Source").toString()
destination=intent.getStringExtra("destination").toString()

binding.img1.setOnClickListener {

selectimages("1")
//uploadimages()

}
binding.img2.setOnClickListener {
62 | P a g e
selectimages("2")
}

binding.img3.setOnClickListener {
selectimages("3")

}
binding.img4.setOnClickListener {
selectimages("4")

private fun uploadimages() {

val progressDialog=ProgressDialog(this)
progressDialog.setMessage("Uploading File....")
progressDialog.setCancelable(false)
progressDialog.show()

val imageName=Source+destination

val storageReference=
FirebaseStorage.getInstance().getReference("images/$imageName+$ID.png")

storageReference.putFile(ImageUri).
addOnSuccessListener {
Toast.makeText(this,"Successfully uploaded",
Toast.LENGTH_LONG).show()
if(progressDialog.isShowing) progressDialog.dismiss()

}.addOnFailureListener{
if(progressDialog.isShowing) progressDialog.dismiss()
Toast.makeText(this,"Failed ", Toast.LENGTH_LONG).show()

}
}

private fun selectimages(id:String) {

63 | P a g e
ID=id

val intent= Intent()


intent.type="image/*"
intent.action=Intent.ACTION_GET_CONTENT

startActivityForResult(intent,100)
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data:


Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if(requestCode==100 && resultCode==RESULT_OK)
{
ImageUri=data?.data!!

if(ID=="1")
{
binding.img1.setImageURI(ImageUri)

}
else if(ID=="2")
{
binding.img2.setImageURI(ImageUri)

}
else if(ID=="3")
{
binding.img3.setImageURI(ImageUri)

}
else if(ID=="4")
{
binding.img4.setImageURI(ImageUri)

uploadimages()

}
}
}

64 | P a g e
2. Loginactivity.kt
package com.example.finalprojectv1

import android.app.ProgressDialog
import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.text.TextUtils
import android.util.Log
import android.view.View
import android.widget.Toast
import com.example.finalprojectv1.activities.AllTrips
import com.example.finalprojectv1.activities.ProfileData
import com.example.finalprojectv1.databinding.ActivityLoginBinding
import com.google.firebase.FirebaseException
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.auth.PhoneAuthCredential
import com.google.firebase.auth.PhoneAuthOptions
import com.google.firebase.auth.PhoneAuthProvider
import java.util.concurrent.TimeUnit

class LoginActivity : AppCompatActivity() {

// view binding
private lateinit var binding: ActivityLoginBinding

// if code sending failed, will use this


private lateinit var forceResendingToken :
PhoneAuthProvider.ForceResendingToken

private lateinit var mCallBacks:


PhoneAuthProvider.OnVerificationStateChangedCallbacks
private lateinit var mVerificationId: String
private lateinit var firebaseAuth: FirebaseAuth

private val TAG = "LOGIN_TAG"

// process dialog
private lateinit var progressDialog: ProgressDialog

override fun onCreate(savedInstanceState: Bundle?) {

65 | P a g e
super.onCreate(savedInstanceState)
binding = ActivityLoginBinding.inflate(layoutInflater)
setContentView(binding.root)

val sharedPreferences = getSharedPreferences("LoginDetails",


Context.MODE_PRIVATE)
val bool = sharedPreferences.getBoolean("LoggedIn", false)

if( bool ){
Toast.makeText(this, "Welcome Back",
Toast.LENGTH_LONG).show()

startActivity(Intent( this, AllTrips::class.java ))


finish()
}

binding.phoneL1.visibility = View.VISIBLE
binding.codeL1.visibility = View.GONE

firebaseAuth = FirebaseAuth.getInstance()

progressDialog = ProgressDialog(this)
progressDialog.setTitle("Please Wait!!!!!")
progressDialog.setCanceledOnTouchOutside(false)

mCallBacks = object :
PhoneAuthProvider.OnVerificationStateChangedCallbacks() {

override fun onVerificationCompleted(phoneAuthCredential:


PhoneAuthCredential) {

signInWithPhoneAuthCredential(phoneAuthCredential)

override fun onVerificationFailed(e: FirebaseException) {

progressDialog.dismiss()
Toast.makeText(this@LoginActivity, "${e.message}",
Toast.LENGTH_SHORT).show()

66 | P a g e
override fun onCodeSent(verificationId: String, token:
PhoneAuthProvider.ForceResendingToken) {

Log.d(TAG, "OnCodeSent: $verificationId")


mVerificationId = verificationId
forceResendingToken = token
progressDialog.dismiss()

//Hide phone layout, and show code layout


binding.phoneL1.visibility = View.GONE
binding.codeL1.visibility = View.VISIBLE
Toast.makeText(this@LoginActivity, "Verification Code Sent",
Toast.LENGTH_SHORT).show()
binding.codeSentDescriptionTv.text =
"Please enter code sent to $
{binding.phoneEt.text.toString().trim()}"

binding.phoneContinueBtn.setOnClickListener{
val phone = binding.phoneEt.text.toString().trim()
//validate phone no.
if( TextUtils.isEmpty( phone ) )
Toast.makeText(this@LoginActivity, "Please enter Phone no.",
Toast.LENGTH_SHORT).show()
else
startPhoneNumberVerification(phone)
}

binding.resendCodeTv.setOnClickListener {
val phone = binding.phoneEt.text.toString().trim()
//validate phone no.
if( TextUtils.isEmpty( phone ) )
Toast.makeText(this@LoginActivity, "Please enter Phone no.",
Toast.LENGTH_SHORT).show()
else
resendVerificationCode(phone, forceResendingToken)
}

67 | P a g e
binding.codeSubmitBtn.setOnClickListener {
val code = binding.codeEt.text.toString().trim()
if( TextUtils.isEmpty( code ) )
Toast.makeText(this@LoginActivity, "Please enter verification
code", Toast.LENGTH_SHORT).show()
else
verifyPhoneNumberWithCode(mVerificationId, code)

private fun startPhoneNumberVerification(Phone: String){


progressDialog.setMessage( " Verifying Phone Number..... " )
progressDialog.show()

val options = PhoneAuthOptions.newBuilder(firebaseAuth)


.setPhoneNumber(Phone)
.setTimeout(60L, TimeUnit.SECONDS)
.setActivity(this)
.setCallbacks(mCallBacks)
.build()

PhoneAuthProvider.verifyPhoneNumber(options)
}

private fun resendVerificationCode( Phone:String, token:


PhoneAuthProvider.ForceResendingToken ){
progressDialog.setMessage( " Resending Code..... " )
progressDialog.show()

val options = PhoneAuthOptions.newBuilder(firebaseAuth)


.setPhoneNumber(Phone)
.setTimeout(60L, TimeUnit.SECONDS)
.setActivity(this)
.setCallbacks(mCallBacks)
.setForceResendingToken(token)
.build()

PhoneAuthProvider.verifyPhoneNumber(options)
}

68 | P a g e
private fun verifyPhoneNumberWithCode( verificationId: String,
code:String ){
progressDialog.setMessage(" Verifying Code.... ")
progressDialog.show()

val credentials = PhoneAuthProvider.getCredential(verificationId, code)


signInWithPhoneAuthCredential( credentials )

private fun signInWithPhoneAuthCredential( credential:


PhoneAuthCredential ){
progressDialog.setMessage(" Logging in... ")

firebaseAuth.signInWithCredential(credential)
.addOnSuccessListener {
progressDialog.dismiss()
val phone = firebaseAuth.currentUser?.phoneNumber
Toast.makeText(this, "Logged in as $phone",
Toast.LENGTH_SHORT).show()

saveData()
finish()
startActivity(Intent( this, ProfileData::class.java ))

.addOnFailureListener{ e->
//login failed
progressDialog.dismiss()
Toast.makeText(this, "${e.message}",
Toast.LENGTH_SHORT).show()
}

private fun saveData(){

val sharedPreferences = getSharedPreferences("LoginDetails",


Context.MODE_PRIVATE)
val editor = sharedPreferences.edit()
editor.clear()
editor.apply{

69 | P a g e
val phone = binding.phoneEt.text.toString().trim()
putString("Id",phone)
putBoolean("LoggedIn",true)

}.apply()

3. Mainactivity.kt
package com.example.finalprojectv1

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.example.finalprojectv1.activities.AllTrips
import com.example.finalprojectv1.activities.ChatList
import com.example.finalprojectv1.activities.Trips
import com.example.finalprojectv1.databinding.ActivityMainBinding
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

// view binding
private lateinit var binding: ActivityMainBinding

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)

bottom_navigation.setOnNavigationItemSelectedListener {
when(it.itemId){
R.id.ic_Add_Trip-> startActivity(Intent( this, Trips::class.java ))
R.id.ic_profile->startActivity(Intent( this,
ProfileActivity::class.java ))
R.id.ic_chat->startActivity(Intent( this, ChatList::class.java ))
R.id.ic_All_Trip-> startActivity(Intent(this,AllTrips::class.java))
}
true

70 | P a g e
}
//
// binding.profileBtn.setOnClickListener {
// startActivity(Intent( this, ProfileActivity::class.java ))
// }
//
// binding.addTripsBtn.setOnClickListener {
// startActivity(Intent(this, Trips::class.java))
// }
//
// binding.allTripsBtn.setOnClickListener {
// startActivity(Intent(this,AllTrips::class.java))
// }

}
}

4. ProfileActivity.kt
package com.example.finalprojectv1

import android.content.Context
import android.content.Intent
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.location.Address
import android.net.Uri
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Toast
import com.example.finalprojectv1.databinding.ActivityProfileBinding
import com.example.finalprojectv1.databinding.ProfileBinding
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.database.DatabaseReference
import com.google.firebase.database.FirebaseDatabase
import com.google.firebase.storage.FirebaseStorage
import com.google.firebase.storage.StorageReference
import kotlinx.android.synthetic.main.activity_main.*
import java.io.File

class ProfileActivity : AppCompatActivity() {

71 | P a g e
private lateinit var binding: ProfileBinding
private lateinit var database: DatabaseReference
private lateinit var firebaseAuth: FirebaseAuth
private lateinit var storageReference: StorageReference
private lateinit var imageUri: Uri

override fun onCreate(savedInstanceState: Bundle?) {


super.onCreate(savedInstanceState)
binding = ProfileBinding.inflate(layoutInflater)
setContentView(binding.root)

lateinit var phone:String


firebaseAuth = FirebaseAuth.getInstance()
val bundle :Bundle ?=intent.extras
if (bundle!=null){
//val message = bundle.getString("object") // 1

phone = intent.getStringExtra("ExtraPhone").toString()
//val isprofile = intent.getStringExtra("ExtraProfile")

//Toast.makeText(this, message, Toast.LENGTH_SHORT).show()

}
else {
phone = (firebaseAuth.currentUser?.phoneNumber).toString()

// name2.text=ename
// address2.text=address

readData( phone)
var ph = (firebaseAuth.currentUser?.phoneNumber).toString()

if( !phone.equals(ph, true) ) {


binding.LogoutBtn.visibility = View.GONE
}

binding.LogoutBtn.setOnClickListener {

logout()

72 | P a g e
}

private fun readData( phone : String ){


//val p2 = (firebaseAuth.currentUser?.phoneNumber).toString()

database = FirebaseDatabase.getInstance().getReference("Users")
database.child(phone).get().addOnSuccessListener {

var fName = "Guesst"


var AadharCard = "9898 8989 8989"
var PanCard = "CNZNHJ898"
var EmailID = "johndoe@gmail.com"
var PhoneNumber = "98989000000"
var EmergencyNumber = "98989XXXXXX"
var Address= "abc abc abc"
var Profession = "Student"

if( it.exists() ){

val imageID=it.child("phone_number").value.toString()
storageReference =
FirebaseStorage.getInstance().getReference("image/$imageID.png")

val localfile= File.createTempFile("temp",".png")


storageReference.getFile(localfile)

.addOnSuccessListener {
val Bitmap =BitmapFactory.decodeFile(localfile.absolutePath)

binding.profileImageReal.setImageBitmap(Bitmap)
// Toast.makeText(this@ProfileActivity, "ho gyi image load",
Toast.LENGTH_SHORT).show()

}.addOnFailureListener{
// Toast.makeText(this@ProfileActivity, "image load nhi hui ",
Toast.LENGTH_SHORT).show()
//

73 | P a g e
}

fName = it.child("name").value.toString()
AadharCard = it.child("aadhaar_card").value.toString()
PanCard = it.child("pan_card").value.toString()
EmailID = it.child("email_id").value.toString()
PhoneNumber = it.child("phone_number").value.toString()
EmergencyNumber =
it.child("emergency_contact_number").value.toString()
Address= it.child("address").value.toString()
Profession = it.child("profession").value.toString()

// Toast.makeText(this@ProfileActivity, "Fetch Successful",


Toast.LENGTH_SHORT).show()

binding.tvUserName.text="@"+fName
binding.tvName.text = fName
binding.tvAddress.text = Address
binding.tvPhoneNumber.text = PhoneNumber
binding.tvAdharCard.text = AadharCard
binding.tvPanCard.text=PanCard
binding.tvEmergencyContact.text=EmergencyNumber
binding.tvEmailAddress.text=EmailID
binding.tvProfession.text=Profession

}.addOnFailureListener {

// Toast.makeText(this@ProfileActivity, "Fetch Unsuccessful",


Toast.LENGTH_SHORT).show()

fun logout(){

74 | P a g e
val sharedPreferences = getSharedPreferences("LoginDetails",
Context.MODE_PRIVATE)
val editor = sharedPreferences.edit()
editor.clear()
editor.apply{

//val phone = binding.tvPhoneNumber.text.toString().trim()


putString("Id",null)
putBoolean("LoggedIn",false)

}.apply()
startActivity(Intent( this, LoginActivity::class.java ))
}

75 | P a g e
RESEARCH PAPER

76 | P a g e
INTELLIGENT CARPOOLING SYSTEM
USING DISTANCE AND TIME
MEASURE
Anuj Tyagi1, Ashutosh Sharma1, Aryan Bansal1, Mukesh Rawat1

1
Department of Computer Science and Engineering, Meerut Institute of Engineering and Technology.
Email: anuj.tyagi.cs.2019@miet.ac.in| ashutosh.sharma.cs.2019@miet.ac.in |
aryan.bansal.cs.2019@miet.ac.in|
mukesh.rawat@miet.ac.in

DOI: 10.47750/pnr.2022.13.S07.478

A web-based, fully automated car-sharing system is described in this article. Automobile spooling is another name for car
sharing. It is talked about how difficult it is to develop such a system. Our project produced a system that has been built
and optimised. The real-time carpooling programme includes an easy-to-use user interface. This system's route requests
are straightforward yet well-organized. Full immersion in the journey is provided through the use of a digital map. As
sharing trips decreases he need for parking spaces, carbon emissions, and road congestion , Carpooling is viewed as a
more environmentally responsible and long-lasting form of transportation. Real-time ridesharing is an expansion of
carpooling that uses information gathered from social networking to best fit each individual's interests. It allows users, in
particular coworkers and classmates, to share a vehicle with other travellers going to the same or neighbouring
destinations. The technology offers ridesharing in addition to real-time navigation on a map. The idea may be applied to
taxis and rickshaws as well as any other public transportation systems. We've added a few fresh features to this
programme that will make users' travels more convenient. Some features include giving the driver and passengers access
to real-time photos of the vehicle so they can assess its condition and communicate effectively. Even if someone doesn't
possess a car, they can still post the specifics of their journey, and anyone else who wants to join them can phone or talk
with them.

Introduction
India is a rapidly expanding country where the majority of people now struggle with transportation
management. The amount of traffic on the roads today is a serious issue, and the problem is becoming worse
since petrol costs are going up. Additionally, driving contributes to pollution, which harms the ecosystem. A
potential low-cost solution to a variety of transportation issues, such as traffic congestion, energy use, air
pollution, and climate change emissions, is to increase vehicle occupancy. Utilizing public transportation,
carpooling, and vanpooling might increase vehicle occupancy Carpooling is a kind of public transportation
that involves sharing the use of private vehicles [1][2]. It is a group of people using a single vehicle to get to
and from work. It enables the seating capacity of a car or complete vehicle to be utilised. It comes in two
flavours: informal and service-organized. A big vehicle is needed for a casual carpool, and the participants are
picked on the spot. In accordance with this, the passengers split the cost of the excursion. While in the case
of pre-arranged carpooling, the user or customer has the option to accept or reject the trip at any time prior
to the actual travel date [3][4].
During research, it was discovered that some of the previous systems had flaws, such as the car owner's
sudden rejection, the lack of details regarding the car, such as images to show the condition of the vehicle in
real time, and the lack of a calling feature to facilitate effective trip planning.

77 | P a g e
This app's goals are to normalise commutes, encourage group usage of private transportation, and protect
the environment. This peer-to-peer (P2P) network organises trip sharing and carpooling so that numerous
individuals can travel in a car at a discounted rate. Additionally, it balances supply and demand so that private
persons might provide open seats in their vehicles, which would enable them to establish relationships with
both riders and passengers. Travelers group together to save money on gas and tolls as well as to lessen the
stress of driving alone [5].

Literature review
The largest long-distance ridesharing network in the world is called BlaBlaCar. Drivers and riders who wish to
travel between cities can connect through a service called BlaBlaCar and split the cost of the journey. Frédéric
Mazzella developed the idea in December 2003, and it was introduced in 2006. In 19 different countries,
BlaBlaCar is used by more than 20 million individuals. Members must register for an account in order to
develop a personal online profile with ratings and reviews from other users. Social users indicate their level of
service experience; those with more are referred to as "ambassadors" and encourage greater ride sharing.
Our service aims to overcome the primary flaw of this programme, which is that it only offers options for
intra-city carpooling [6]
For individuals who are "on vacation" and wish to cut travel expenses to save money, the popular Cab Precise
taxi rental software is available for Android users. It has only been implemented for a few specific routes,
such as Chandigarh-Dallas and Mysore-Manali, but they want to soon make it available to everyone[7] .
The most crucial aspect of M. Mehedi Hasan Sonet's work, "SharY: an effective ridesharing and carpooling
system using advanced optimised algorithm," was that they did not accept every request in order to
optimally satisfy every user. Instead, it was recommended as a solution that a host would choose the client(s)
that would satisfy in terms of fare criteria and route selection, meaning that given the road that the host has
selected, they will not have to travel very far. Based on needs of both parties, the host will be given
recommendations for the best possible clients, resulting in pairings that are advantageous to both. As a
result, they came up with a solution, In a research, the system would select a passenger if it matched one to a
location that was close to or the same as the driver's destination, so the driver or owner wouldn't have to
wait for the passenger.
This method was created as a recommendation framework by Hajra Qadir (An Optimal Ride Sharing
Recommendation Framework for Carpooling Services) that takes into account a number of factors relating to
both drivers and passengers when making suggestions. The following three factors influence passengers:
vehicle capacity, fare reduction, and average delay are the three factors Profit growth and driving distance
are the requirements for the driver. The vehicle recommended by their framework is a universally favoured
vehicle that takes into account the objectives of all parties participating in dynamic carpooling, namely three
different passenger types: passengers, elderly passengers, and owner [8][9].
This app not only provides the carpooling outside the city but it also removes the shortcoming like it only
shows the result which are near to passenger, it does not shows the all the available trips but it shows only
those result which are perfectly with distance and time.

Proposed methodology

Fig .1 Flow Chart

78 | P a g e
In this part, the suggested system is given as Section-A(Architecture) and Section B(k-NN Algorithm) [10][11].

A. Architecture.

The following elements will be included in the architecture of the proposed system:
1. Users- The system will have three types of users driver, passenger, and administrator.

Driver- Person providing his car for carpooling.


Passenger- Person using carpooling System.
2. Proposed System

The proposed carpooling system which assists and commands all admin operations. It is the most crucial
component and is regarded as the system's core. Its components are,
1. System admin – A person in charge of system management and control. The key administrative duties
include accepting new driver and passenger requests, providing users with account information so they
can begin making use of the system and producing reports on drivers and any relevant data about their
vehicles, such as brand, model, number, and number of seats available.

79 | P a g e
2. Database – Includes all accurate data about drivers and passengers.

3. Server - Server contains actual database about the Users . It contains registered users and activated
user. Active users are those who are prepared to start the trip, while registered users are those who are
eligible to drive.

Below is an illustration of the steps in the suggested system:


1. Initially , active users requests for carpooling are sent by (drivers and passengers)..

2. Now, admin will check the eligibility of drivers and create the account of driver and send it to passenger.

3. Now driver will determine the start-up time and seat availability.

4. Passenger will send the request , that will determine the pickup location and time.

5. The k-NN algorithm is then used on the available drivers to match the passenger with the "best" drivers
once the passenger request has been received by the carpooling system. The available active drivers are
reflected in the k value of the k-NN algorithm. Usually, the system administrator sets the value. The
collection of best-matched drivers that the k-NN has found is used to notify the passenger.

6. Passenger confirmation will be sent via the system.

7. System will provide the best match to passenger for startup time, pickup location, seat availability and
journey time.

8. For each accepted request , the number of seat will be decreased automatically and when there will be
no seat available , the request will not be forwarded. B. k-NN Algorithm.

One of the most well-liked machine learning algorithms is the k-NN, which is regarded as an appealing
classification method because to its simplicity, adaptability, and high efficiency. A non-parametric learning
algorithm is the k-NN. As it scans all users, calculates the distance between each Driver D and Passenger P,
analyses the findings, and creates clusters to choose the Driver D that is closest to or best matches Passenger
P, the k-NN generates encouraging results[12][13].
k-NN Algorithm

Input:

P: Details of the passenger request, including the start-up location and the pickup time.
D: Active drivers in a set, with each driver containing di(pickup time) and dj(start-up location).
Output

S: Matching drivers in a set.


1. S=0, Res=0.

2. For di € DR.

3. If D(di)==P(pi).

4. Determine the separation between D and P. i.e. dist(di,pi).

5. Res=ADD(di, dist).

6. Endif.

7. Endfor.

S : Sort the Res according to the disti in descending order.


Return S.

80 | P a g e
The Euclidean distance formula will be used to calculate the separation between P and D which will be :[14]

[15]. Dist(x,y)=

Result
This section describes the implementation of the proposed system. The result sets are computed using the
proposed methodology and results are analysed.

Result Set-1.
Time Requests Destination Time to 1.Clusters 2.Time 3.Result
by Reach Formed Taken
Customer

9:00 R1 MIET 9:30 R1, R2 ,R3 2MS Correct

9:30 R2 MODIPURAM 10:00 R2, R3 2MS Correct

10:00 R3 KHATAULI 10:00 R3, R4, R5 2MS Correct

10:30 R4 MUZAFFARNAGAR 12:00 R4, R5 2MS Correct

11:00 R5 ROORKEE 1:30 R5 2MS Correct

Result Set-2.
Time Requests by Destination Time to 1.Clusters 2.Time 3.Result
Customer Reach Formed Taken

9:00 R1 MODINAGAR 9:30 R1, R2 2MS Correct

9:30 R2 PARTAPUR 10:00 R2,R3 2MS Incorrect

10:45 R3 MIET 11:00 R3,R4 2MS Correct

11:00 R4 MODIPURAM 11:30 R4, R5 2MS Correct

11:30 R5 MANSURPUR 12:30 R4, R5 2MS Correct

Result Set-3.
Time Requests by Destination Time to 1.Clusters 2.Time 3.Result
Customer Reach Formed Taken

9:00 R1 DELHI 9:30 R1, R2 2MS Correct

9:30 R2 GHAZIABAD 11:00 R2, R3 2MS Correct

10:00 R3 MOHANNAGAR 10:30 R3, R4 2MS Correct

10:30 R4 DUHAI 11:00 R4, R5 2MS Correct

11:00 R5 MODINAGAR 12:00 R4, R5 2MS Correct

81 | P a g e
Result Set-4.
Time Requests Destination Time to 1.Clusters 2.Time 3.Result
by Reach Formed Taken
Customer

9:00 R1 ROORKEE 10:00 R1 2MS Correct

9:30 R2 PURKAZI 10:30 R2, R3 2MS Incorrect

10:00 R3 MUZAFFARNAGAR 11:30 R3, R4 2MS Correct

11:30 R4 MEERUT 12:00 R4, R5 2MS Correct

11:00 R5 DELHI 1:30 R4, R5 2MS Correct

1. Clusters formed according to the nearest pickup location of Customer.

2. Time taken to generate Clusters.

3. Clusters Generated Correctly.

Calculation of error factor in cluster generation according to the nearest pickup point .
Total Clusters formed Correct Incorrect Error

5 4 1 1

5 5 0 0

5 5 0 0

5 4 1 1

Percentage Error of system = 𝑁𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑒𝑟𝑟𝑜𝑟𝑠


∗100
𝑇𝑜𝑡𝑎𝑙 𝑐𝑙𝑢𝑠𝑡𝑒𝑟𝑠 𝑓𝑜𝑟𝑚𝑒𝑑

= *100=10%

Conclusion
Carpooling enables you to share your vehicle with others rather than travelling alone. Carpooling has grown
significantly in popularity over the past ten years as a result of an increased awareness of the issue of climate
change and a desire to help fight it.
These efforts The Car Pooling System seeks to reduce traffic congestion on roads while minimising the usage
of petroleum, our most major non-renewable resource. Therefore, it is a social application that is favourable
to the environment and aids in reducing travel time. This project will be accessible to everyone who develops
software, and because of its capabilities, developers may focus on creating the database schema while the
application server creates tables based on the fields in JSP and their associations.
Utilizing "test cases," this application software has undergone successful computation and testing. It is simple
to use and provides the necessary options to carry out your objectives. Oracle served as the server and Java
served as the interface while the programme was created on a Windows environment. Instant access is what
the programme accomplishes. This research discusses the psychological aspects that motivate both drivers
and passengers to carpool. You will have a better and more comprehensive grasp of how to make travel

82 | P a g e
decisions thanks to the suggested framework. To stimulate the interchange of travel, the advantages of travel
should be highlighted. There are several benefits to travelling as a group.
The most obvious benefit of carpooling is that it is far less expensive than travelling independently. This not
only keeps us company while we're on the road but also introduces us to our destination or other travellers.
We offer one-way fixes for all issues so you may travel pleasantly without wasting a lot of time stuck in traffic.

References
[1] Mayur K. Thorat, Rahul M. Lohakare, “Poll uni Poll ” , “International Journal of Engineering Research and Technology (IJERT)”, ISSN:
2278-0181 (ISO 3297:2007) Vol. 2, Issue 11.

[2] R. Manzini and A. Pareschi, “A Decision-Support System for the Car Pooling Problem,” Journal on transportation technologies, Vol.2,
No. 2, 2012.

[3] Pramanik, Sabyasachi, et al. "A Novel Approach Using Steganography and Cryptography in Business Intelligence." Integration
Challenges for Analytics, Business Intelligence, and Data Mining. IGI Global, 2021. 192-217.

[4] Bharadwaj AN, et al. Public Bicycle-Sharing System. National Conference on Product Design. 2016.

[5] Dodal AS, et al. Bike Sharing and Rental System: An Android Application. International Journal for Research in Applied Science and
Engineering Technology. 2016.

[6]Sumit S, et al. SPAC DRIVE. : Bike Sharing System for Improving Transportation Efficiency Using Euclidian Algorithm. International
Journal of Advance Engineering and Research Development. 2017.

[7] Awasthi, Shashank, et al. "A Comparative Study of Various CAPTCHA Methods for Securing Web Pages." 2019 International
Conference on Automation, Computational and Technology Management (ICACTM). IEEE, 2019.

[8] Arpita D. Real-Time Carpooling System for Android Platform. International Journal of Engineering and Innovative Technology (IJEIT).
2012.

[9] Sneha M, et al. Take Me with You: A Smart Carpooling App Using Genetic Algorithm. International Engineering Research Journal (IERJ).
2016.

[10] Narayan, Vipul, and A. K. Daniel. "Energy Efficient Protocol for Lifetime Prediction of Wireless Sensor Network using Multivariate
Polynomial Regression Model." Journal of Scientific & Industrial Research 81.12 (2022): 1297-1309.

[11] Kapil K, et al. Car Pooling Android Application. International Journal of Engineering Research in Computer Science and Engineering
(IJERCSE). 2016.

[12] Awasthi, Shashank, et al. "A Comparative Study of Various CAPTCHA Methods For Securing Web."

[13] Narayan, Vipul, et al. "E-Commerce recommendation method based on collaborative filtering technology." International Journal of
Current Engineering and Technology 7.3 (2017): 974-982.

[14] Narayan, Vipul, and A. K. Daniel. "CHOP: Maximum coverage optimization and resolve hole healing problem using sleep and wake-up
technique for WSN." ADCAIJ: Advances in Distributed Computing and Artificial Intelligence Journal 11.2 (2022): 159-178.

[15] Irfan, Daniyal, et al. "Prediction of Quality Food Sale in Mart Using the AI-Based TOR Method." Journal of Food Quality 2022 (2022).

83 | P a g e

You might also like