Uploaded by yuvraj deshmukh

Car pooling report

advertisement
MAHARASHTRA STATE BOARD OF TECHNICAL
EDUCATION (MUMBAI)
A
Project Report
On
“Car Pooling App”
Submitted by1.Prasad Bhamare
2.Tanmay Chavan
3.Yash Wake
Guided by – Prof. P.N.Patil
Department of Computer Technology
Maratha Vidya Prasarak Samaj’s
Rajarshi Shahu Maharaj Polytechnic, Nashik-13.
(2020-2021)
Maratha Vidya Prasarak Samaj’s
Rajarshi Shahu Maharaj Polytechnic,
Udoji Maratha Boarding Campus, Gangapur Road, Nashik-422013.
“
CERTIFICATE”
This is to certify that the project report entitled “Car Pooling.” has been
successfully completed by:
1. Prasad Bhamare
2. Yash Wake
[]
[]
3. Tanmay Chavan
[]
as partial fulfillment of Diploma course in Computer Technology under
the Maharashtra State Board of Technical Education, Mumbai
during the academic year 2020-2021.
The said work has been carried out under my guidance, assessed
by us and we are satisfied that, the same is up to the standard envisaged
for the level of the course.
Prof. P.N.Patil
Prof. P.D.Boraste
Prof. B. N. Rajole
Project Guide
Head of Department
PRINCIPAL
External Examiner
Institute Seal
ACKNOWLEDGEMENT
It gives me immerse pleasure in presenting this Project report on
“Car Pooling." I would like to thank my project guide Prof. P.N.Patil for
his valuable guidance and encouragement.
I would like to thank Prof. P.D. Boraste(Head Department of
Computer technology Department& Project coordinator) who permitted
and allowed to carry out the project work. Also, I would like to thank all
the staff members who supported me without which Project would not
have been completed successfully.
Name of the student:
1. Prasad Bhamare
[]
2. Tanmay Wagh
[]
3. Yash Wake
[]
Mr. P.D. Boraste
[HOD]
ABSTRACT
Carpooling (also known as car-sharing, ride-sharing and lift sharing), is the sharing of car journeys so that
more than one person travels in a car. Carpooling reduces each person’s travels costs such as fuel costs, tolls, and
the stress of driving. Carpooling is one method that can be easily instituted and can help resolve a variety of
problems that continue to plague urban areas, ranging from energy demands and traffic congestion to
environmental pollution. Authorities often encourage carpooling, especially during high pollution periods and
high fuel prices. We intent on making an ANDROID based application that will enable to let people know if
vehicles are available for carpool in their desired path they can sign in for it.
This will enable people using this application to share expense, not worry about hiring a cab and making
new connections. People having this application on their cell phone with advance facilities can easily carpool
with unacquainted people without worrying about security. It will also helpful for blind or lack of knowledge of
using gadgets such a people they can operate this application using speech recognization technique. It will show
the accurate time requires to reach at particular location. It gives a better way for pooling a car with a very efficient
environment that is easy to use. This is a Web-based collaboration, communications, and content delivery
framework.
INDEX
Sr. No.
Name of topic
Page
no.
Abstract
I
1
Introduction
1
2
Literature Survey
4
3
Scope of the Project
6
4
Requirement Analysis
7
5
System Analysis
9
6
Source code and output
10
7
Modelling and designing
11
8
Testing
28
9
Result and Application
34
10
Conclusion and Future Scope
39
11
Appendix
40
12
References and Bibliography
41
CAR POOLING APP
List of the figures
Fig. no.
Name of figure
Page no.
1.1
Incremental model
2
6.1
Registeration Page
25
6.2
Ride Booking Page
25
6.3
Booking Ride Page
26
6.4
Offered Ride Details
26
6.5
Booking Ride Details
27
6.6
Profile Page
27
7.1
System Flow Diagram
28
7.2
Entity Relation Diagram
29
7.3
Data Flow Diagram
31
7.4
Class Diagram
32
7.5
System Architecture
33
9.1
Booking A Ride
36
9.2
Profile Screen
36
1
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
List of the Tables
Table no.
Title of Table
Page no.
8.4.1
Main Menu Page Test Cases
38
8.4.2
Single New Check Page Test Cases
39
8.4.3
Bulk New Check Page Test Cases
40
8.4.4
Data Input Page Test Cases
41
9.2.1
Working Hours Table
38
9.2.2
Costing Table
38
9.2.3
Total Costing Table
38
2
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
Chapter: - 1
Introduction
1.1 Overview
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.
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 traveler 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
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
1.2 Applying Software Engineering Approach
The goal of system design is to produce a model or representation that exhibit, commodity and delight.
It provides information about the application domain for the software to be built. It fully describes the internal
details of each software. Here are some advantages of incremental model: 1. Each iteration passes through the requirements, design, coding and testing phases.
2. Software will be generated quickly during the software life cycle.
3. It is flexible and less expensive to change requirements and scope.
4. Customer can respond to each built and errors are easy to be identified.
5. Easier to test and debug during a smaller iteration.
2
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
1.2.1 Communication
This is the first step where the user initiates the request for a desired software product. He contacts
the service provider and tries to negotiate the terms. He submits his request to the service providing
organization in writing.
1.2.2 Planning and Requirement Analysis
Requirement analysis is the most important and fundamental stage in SDLC. It is performed by the
senior members of the team with inputs from the customer, the sales department, market surveys and domain
experts in the industry.
1.2.3 Designing and Modeling
Based on the requirements specified in SRS, usually more than one design approach for the product
architecture is proposed and documented in a DDS.
1.2.4 Construction
This step is also known as programming phase. An estimate says that 50% of whole software
development process should be tested. Software testing is done while coding by the developers and thorough
testing is conducted by testing experts at various levels of code such as module testing, program testing,
product testing, in-house testing and testing the product at user’s end.
1.2.5 Deployment
Once the product is tested and ready to be deployed it is released formally in the appropriate market.
The product may first be released in a limited segment and tested in the real business environment (UAT).
3
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
Chapter: - 2
Literature Survey
Many carpool and ride-sharing solutions have been proposed and even developed in the previous
decades, but rarely have they been able to attain a global user base, at least not up until recently. That was
mostly because many of them were not initially designed as scalable, leaving their users with a sub-par user
experiences as their user base grew, and often their mobile or desktop client reach was not ubiquitous enough,
leaving them available only to a small portion of mobile client devices and/or desktop browsers. This paper
describes the design concepts, distribution and cloud computing strategies the authors feel any future global
carpool and ride-sharing solution could follow, making it very scalable and ubiquitous enough to successfully
reach and serve a global user base.
Because existing public transportation infrastructure cannot be adapted in a timely manner to address
the daunting traffic and parking congestion in urban environments, researchers are investigating social
solutions, such as carpooling, where a driver and one or more passengers having semi-common routes share
a private vehicle. Although many carpooling systems have been proposed, most of them lack various levels
of automation, functionality, practicality, and solution quality. While Genetic Algorithms (GAs) have been
successfully adopted for solving combinatorial optimization problems, their use is highly uncommon in
carpooling problems. Motivated to propose a solution for the many to many carpooling scenarios, we present
in this paper a GA with a customized fitness function that searches for the solution with minimal travel
distance, efficient ride matching, timely arrival, and maximum fairness while taking into account the riding
preferences of the carpoolers. The computational results and simulations based on real user data show the
merits of the proposed method and motivate follow up research.
1. Rationale of Study
THE carpooling, thus also the ride-sharing industry, has only recently started becoming globally
interesting. However, carpooling formally appeared in the US in the
mid-1970s, after the 1973 oil crisis. At that time the rising costs of using a personal vehicle for transportation
of only one passenger made it prudent to drive more than one passenger, usually co-workers commuting daily
to
and from the same workplace, splitting transportation costs. However, the reduction of oil and gas costs in the
1980s and the breakdown of a typical 9AM to 5PM workday in the 1990s led to a spiral down trend in
carpooling popularity. Federal government in the US tried to counter such a trend by giving incentives to
carpooling drivers, growing the number of no-toll carpool lanes–the so called, High Occupancy Vehicle
(HOV) lanes–across many highways. Those lanes were also allowing for relief from ever growing traffic jams
4
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
and gridlocks, as the number of vehicles on the roads was ever increasing, which in 2000 exceeded 740 million
globally and was projected to be over 2 billion motorized vehicles by 2030. The sheer number of vehicles
alone will create many well-documented problems for urban areas, such as increased traffic, increased
pollution, parking congestion, and the need for expensive infrastructure maintenance. To reduce those and
also personal transportation costs why not make a global real-time carpool and ride-sharing solution? This
work was not supported by any organization.
2. Objective of Study
1. To understand the evolution of Car-Pooling system.
2. To describe the conceptual framework of CarPooling in India.
3. To analyze the present trench of CarPooling in India.
4. To examine the barriers of CarPooling in India.
5. To predict future of CarPooling system.
3. Review of Literature
As said, the expenses, both environmental and fiscal, of single occupancy vehicles could be reduced
by utilizing the empty seats in personal transportation vehicles. Carpooling and ride-sharing target those empty
seats: taking additional vehicles off the road reducing traffic and pollution, whilst providing opportunities for
social interaction. However, historically carpool scheduling often limited users to consistent schedules and
fixed rider groups–carpooling to the same place at the same time with a set person or a group of people. To
make that problem worse, the leading problem concerns, given in a 2009 survey about why people don’t
carpool, were difficulty to organize carpools and inconvenience of organization. We feel both of those can be
addressed by employing some novel web technologies and modern-day available data stores which hold social
and location based individual user’s data. Besides having to solve the aforementioned problems for making a
carpooling and ride-sharing solution that users will want to use, to make it usable on a global scale the ubiquity
problem should also be addressed. By ubiquity we mean the problem of having to make it available across
both various mobile and desktop platforms, current and future ones, so our proposed solution also utilizes few
other rather novel web technologies. This paper attempts to propose concepts, distribution and cloud strategies
that we feel will bring best value for any future global carpool and ride-sharing solution. The rest of the paper
is organized as follows: Section II overviews some related work. Section III gives overall design concepts and
our objective. Section IV elaborates on our proof-of-concept prototype system implementation choices, with
subsections focusing on several specifics. Section V discusses our future work, plans and intentions and finally
Section VI concludes this paper.
5
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
Chapter: - 3
Scope of Project
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.
6
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
Chapter: - 4
Requirement Analysis
4.1 Functional Requirements:
4.1.1 Software Requirements:
1) Platform: Windows 10
Platform is any hardware used to host an application or service.
2) Language: android studio, firebase
A programming language is a formal computer language designed to communicate instructions
to a machine, particularly a computer. Programming languages can be used to create programs to
control the behaviour of a machine or to express algorithms.
4.1.2 Hardware Requirements:
1) Processor: Ryzen 5 2400g
A processor is the logic circuitry that responds to and processes the basic instructions that drive
a computer.
2) RAM: 8 GB
Random-access memory (RAM) is a form of computer data storage which stores frequently
used program instructions to increase the general speed of a system.
3) Storage: 1 TB
Computer data storage, often called storage or memory, is a technology consisting of computer
components and recording media used to retain digital data. It is a core function and fundamental
component of computers.
7
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
4) Monitor: 22”
A computer monitors or a computer display is an electronic visual display for computers.
4.2 Non-Functional Requirements:
1) Person:
Two people first the person who is driving and the second who will be pooling the car with
the other person.
8
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
Chapter: - 5
System Analysis
System analysis is the process of gathering and interpreting facts, diagnosing problems and using the
information to recommend improvements on the system. System analysis is a problem-solving activity that
requires intensive communication between the system users and system developers.
System analysis or study is an important phase of any system development process. The system is
viewed as a whole, the inputs are identified and the system is subjected to close study to identify the problem
areas. The solutions are given as a proposal. The proposal is reviewed on user request and suitable changes
are made. This loop ends as soon as the user is satisfied with the proposal.
5.1 Existing System:
The current system for carpooling is unreliable and does not give the user much option or detail about
the people travelling.
1. It is less user-friendly.
2. Description of the user is limited.
3. It is a time-consuming process.
4. Not in reach of distant users.
5.2 Proposed System
In this system the user just has to download the app and register with some information about
themselves the first side will be of the traveler and the second will be of the pooler or the person willing to
accommodate the traveler.
5.3 System Requirement Specification
5.3.1 General Description:
Problem Statement:
The basic but fatal problem of environment and the natural resources is increasing rapidly due
to the ever-increasing population which is why there has to be a system where people can pool a car
with others which will help reduce pollution and traffic.
9
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
5.3.2 System Requirements:
5.3.3.1 Non-Functional Requirements:
1) Efficiency Requirement
When an online carpooling system is implemented, it will reduce traffic and pollution.
2) Reliability Requirement
The system should provide a reliable environment to both customers and owner. All
data should be processed without any errors.
3) Usability Requirement
The android application is designed for user friendly environment and ease of use.
4) Implementation Requirement
Implementation of the system using android studio in which XML is used for front end
and firebase for backend.
5) Delivery Requirement
The whole system is expected to be delivered in four months of time with a weekly
evaluation by the project guide.
5.4 Objectives: Following are objectives: 1. Reducing overall traffic congestion on the roads.
2. Reduce peak hour congestion
3. Reducing single occupancy car trips by implementing carpooling system.
4. Promoting alternative modes of transport.
5. Improve parking in areas that are experiencing parking congestion.
6. Save money by sharing the cost of driving one car.
7. Reduce number of cars in the road.
8. Reduce pollution and carbon dioxide emissions.
9. Reduces driving-related stress for participants.
10. Provide social connections in the society.
10
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
Chapter: - 6
Code and Output
6.1 Source Code
package com.dd.carpooling;
import android.os.Bundle;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;
import com.dd.carpooling.databinding.ActivityMainBottomBinding;
public class MainBottomActivity extends AppCompatActivity {
private ActivityMainBottomBinding binding;
11
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMainBottomBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
BottomNavigationView navView = findViewById(R.id.nav_view);
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations.
AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
R.id.navigation_offerride, R.id.navigation_bookride, R.id.navigation_offeredrides,
R.id.navigation_bookedrides, R.id.navigation_profile)
.build();
NavController navController = Navigation.findNavController(this,
R.id.nav_host_fragment_activity_main_bottom);
NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
NavigationUI.setupWithNavController(binding.navView, navController);
}
}
package com.dd.carpooling.ui.OfferRide;
12
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.dd.carpooling.databinding.FragmentOfferideBinding;
public class OfferRideFragment extends Fragment {
private HomeViewModel homeViewModel;
private FragmentOfferideBinding binding;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
homeViewModel =
13
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
new ViewModelProvider(this).get(HomeViewModel.class);
binding = FragmentOfferideBinding.inflate(inflater, container, false);
View root = binding.getRoot();
final TextView textView = binding.textHome;
homeViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>() {
@Override
public void onChanged(@Nullable String s) {
textView.setText(s);
}
});
return root;
}
@Override
public void onDestroyView() {
super.onDestroyView();
binding = null;
}
}
package com.dd.carpooling.ui.OfferedRides;
14
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.dd.carpooling.databinding.FragmentOfferedridesBinding;
public class OfferedRidesFragment extends Fragment {
private NotificationsViewModel notificationsViewModel;
private FragmentOfferedridesBinding binding;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
notificationsViewModel =
15
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
new ViewModelProvider(this).get(NotificationsViewModel.class);
binding = FragmentOfferedridesBinding.inflate(inflater, container, false);
View root = binding.getRoot();
final TextView textView = binding.textNotifications;
notificationsViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>() {
@Override
public void onChanged(@Nullable String s) {
textView.setText(s);
}
});
return root;
}
@Override
public void onDestroyView() {
super.onDestroyView();
binding = null;
}
}
package com.dd.carpooling.ui.bookedrides;
16
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.dd.carpooling.databinding.FragmentBookedridesBinding;
public class BookedridesFragment extends Fragment {
private BookedridesViewModel bookedridesViewModel;
private FragmentBookedridesBinding binding;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
bookedridesViewModel =
17
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
new ViewModelProvider(this).get(BookedridesViewModel.class);
binding = FragmentBookedridesBinding.inflate(inflater, container, false);
View root = binding.getRoot();
//final TextView textView = binding.textHome;
bookedridesViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>() {
@Override
public void onChanged(@Nullable String s) {
// textView.setText(s);
}
});
return root;
}
@Override
public void onDestroyView() {
super.onDestroyView();
binding = null;
}
}
package com.dd.carpooling.ui.profile;
18
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.dd.carpooling.databinding.FragmentProfileBinding;
public class ProfileFragment extends Fragment {
private ProfileViewModel profileViewModel;
private FragmentProfileBinding binding;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
profileViewModel =
new ViewModelProvider(this).get(ProfileViewModel.class);
19
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
binding = FragmentProfileBinding.inflate(inflater, container, false);
View root = binding.getRoot();
//final TextView textView = binding.textNotifications;
profileViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>() {
@Override
public void onChanged(@Nullable String s) {
// textView.setText(s);
}
});
return root;
}
@Override
public void onDestroyView() {
super.onDestroyView();
binding = null;
}
}
package com.dd.carpooling.ui.notifications;
20
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.dd.carpooling.R;
import com.dd.carpooling.databinding.FragmentNotificationsBinding;
public class NotificationsFragment extends Fragment {
private NotificationsViewModel notificationsViewModel;
private FragmentNotificationsBinding binding;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
notificationsViewModel =
21
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
new ViewModelProvider(this).get(NotificationsViewModel.class);
binding = FragmentNotificationsBinding.inflate(inflater, container, false);
View root = binding.getRoot();
final TextView textView = binding.textNotifications;
notificationsViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>() {
@Override
public void onChanged(@Nullable String s) {
textView.setText(s);
}
});
return root;
}
@Override
public void onDestroyView() {
super.onDestroyView();
binding = null;
}
}
<?xml version="1.0" encoding="utf-8"?>
22
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="?attr/actionBarSize">
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/nav_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="0dp"
android:layout_marginEnd="0dp"
android:background="?android:attr/windowBackground"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/bottom_nav_menu" />
<fragment
android:id="@+id/nav_host_fragment_activity_main"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
23
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
android:layout_height="match_parent"
app:defaultNavHost="true"
app:layout_constraintBottom_toTopOf="@id/nav_view"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:navGraph="@navigation/mobile_navigation" />
</androidx.constraintlayout.widget.ConstraintLayout>
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.bookedrides.BookedridesFragment">
<TextView
android:id="@+id/text_notifications"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:textAlignment="center"
24
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
6.2 Output
Fig 6.1 Registration Page
Fig 6.2 Ride Booking Page
25
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
Fig 6.3 Booking Ride
Fig 6.4 Offered Ride Details
26
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
Fig 6.5 Booking Ride Details
Fig 6.6 Profile
27
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
Chapter: - 7
Modelling and Designing
7.1 System Flow Diagram :The term flow diagram is also used as synonym of the flowchart, and sometimes as counterpart of the
flowchart. There are numerous types of flow diagram. System Flow Diagram is basically a graphical and
sequential representation of the major steps involved in a systematic process.
Fig 7.1 SystemFlowDiagram
7.2. ER Diagram:An entity relationship model, also called an ER diagram, is a graphical representation of entities and their
relationships to each other, typically used in computing in regard to the organization of data within database
or information system. An entity–relationship model (ER model for short) describes interrelated things of
28
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
interest in a specific domain of knowledge. A basic ER model is composed of entity types (which classify the
things of interest) and specifies relationships that can exist between instances of those entity types. An entity–
relationship diagram for an MMORPG using Chen's notation. In software engineering, an ER model is
commonly formed to represent things that a business needs to remember in order to perform business
processes. Consequently, the ER model becomes an abstract data model that defines a data or information
structure which can be implemented in a database, typically a relational database.
Fig.7.2: Entity Relation Diagram
7.3 Data Flow Diagram: A data flow diagram (DFD) is a graphical representation of “flow” of data through an information
system, modeling its process aspects. A DFD is often used as a preliminary step to create an overview of
system, which can later be elaborated. DFD can also used for the visualization of data processing.
A Data Flow Diagram (DFD) is a structured analysis and design tool that can be used for flowcharting.
A DFD is a network that describes the flow of data and the processes that change or transform the data
throughout a system. This network is constructed by using a set of symbols that do not imply any physical
implementation. It has the purpose of clarifying system requirements and identifying major transformations.
29
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
So it is the starting point of the design phase that functionally decomposes the requirements specifications
down to the lowest level of detail. DFD can be considered to an abstraction of the logic of an informationoriented or a process-oriented system flow-chart. For these reasons DFD’s are often referred to as logical data
flow diagrams.
7.3.1 External Entity: -
An external entity is a source or destination of a data flow. Only those entities which originate or
receive data are represented on a data flow diagram. The symbol used is a rectangular box.
7.3.2 Process: A process shows a transformation or manipulation of data flow within the system. The symbol used is
an oval shape.
7.3.3 Data flow: The data flow shows the flow of information from a source to its destination. Data flow is represented
by a line, with arrowheads showing the direction of flow. Information always flows to or from a process and
may be written, verbal or electronic. Each data flow may be referenced by the processes or data stores at its
head and tail, or by a description of its contents.
7.3.4 Data Store: A data store is a holding place for information within the system: It is represented by an open-ended
narrow rectangle. Data stores may be long-term files such as sales ledgers, or may be short-term
accumulations: for example, batches of documents that are waiting to be processed. Each data store should be
given a reference followed by an arbitrary number.
30
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
Fig.7.3: DFD Diagram
7.4 UML Diagrams: UML stands for Unified Modeling Language. The approach used by UML is called as object-oriented
approach for the development of models. UML is used in converting reality with the help of simplest models.
The major contributors to UML are of James Rumbaugh Ivar Jacobson and Grady Brooch and the Rational
Software Corporation. Because of great contribution of the people and organization above, UML is accepted
as a standard modeling language by OMG. The UML modeling consist of following diagrams to model a
software system and those diagrams are: 1. Object Diagram
2. Class Diagram
31
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
3. Use-Case Diagram
4. Sequence Diagram
5. Activity Diagram
6. Collaboration Diagram
7. Deployment Diagram
7.4.1 Class Diagram: In software engineering, a class diagram in the Unified Modeling Language (UML) is a type of
static structure diagram that describes the structure of a system by showing the system's classes, their attributes,
operations (or methods), and the relationships among objects. The class diagram is a static diagram. It represents
the static view of an application. The class diagrams are widely used in the modelling of object-oriented systems
because they are the only UML diagrams which can be mapped directly with object-oriented languages.
Fig.7.4: Class Diagram
32
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
7.4.2 Use Case Diagram :Use case diagrams are usually referred to as behavior diagrams used to describe a set
of actions (use cases) that some system or systems (subject) should or can perform in collaboration with one
or more external users of the system (actors). A use case diagram at its simplest is a representation of a user's
interaction with the system that shows the relationship between the user and the different use cases in which
the user is involved.
7.5 System Architecture or Block Diagram:
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 other part is for frequent trips.
Frequent trips are trips that occur on a weekly basis. A person who commutes to work, for example, may be
interested in creating a frequent trip to find other passengers to ride with. Given the fact that the application
should be socially enabled, the user should be prompted to share his trips on social media.
33
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
Chapter: - 8
Testing and Costing
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.
8.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(80/20 rule) which states that 80% of errors comes from 20% of program
components.
6. Start testing with small parts and extend it to large parts.
8.2 Steps of Software Testing:
1.
2.
3.
4.
5.
6.
Requirement Analysis.
Planning the test.
Developing the test case.
Setting up the test environment.
Executing the test.
End of test, or closing the test cycle.
8.3 Types of testing:
8.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.
8.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.
8.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.
34
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
8.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.
8.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.
8.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.
8.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.
8.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 checks are performed such as font size for visually disabled, color and contrast for color
blindness, etc.
8.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.
35
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
Chapter:- 9
Results and application
9.1 Result
Result includes the information about how the operation executes and displays the result by giving
various inputs. In this case after login with specific user name and password the user gets login and the main
menu panel gets open in which the user can select the food items from various mess. After food selection, a
receipt is generated and two modes of payment can be seen in the screenshot. The last screenshot is of the
online payment which allows user to do payment by just entering upi id through various payment app installed
in their mobiles.
Fig 9.1 Booking a Ride
Fig 9.2 Profile Screen
36
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
9.2. Costing of project:
Basic COCOMO computer software development effort as a function of program size. Program size is
expressed in estimated thousands of source lines of code (SLOC, KLOC). [10]
COCOMO applies to three classes of software projects:
1. Organic projects - "small" teams with "good" experience working with "less than rigid" requirements
2. Semi-detached projects - "medium" teams with mixed experience working with a mix of rigid and less
than rigid requirements
3. Embedded projects - developed within a set of "tight" constraints. It is also combination of organic and
semi-detached projects (hardware, software, operational,)
Development Time (D) = cob (Effort Applied) d
b [months]
People required (P) = Effort Applied / Development Time [count] where, KLOC is the estimated number
of delivered lines (expressed in thousands) of code for project. The coefficients ab, bb, cob and db. Are
given in the following table (note: the values listed below are from the original analysis, with a modern
reanalysis [4] producing different values):
Software project
Ab
Bb
cob
Db.
Organic
2.4
1.05
2.5
0.38
1.12
2.5
0.35
Semi-detached
3.0
Embedded
3.6
1.20
2.5
0.32
Basic COCOMO is good for quick estimate of software costs. However it does not account for differences
in hardware constraints, personnel quality and experience, use of modern tools and techniques, and so
on.
This software comes under embedded software project. The calculation is as follows:
Effort Applied (E) = 3.6(7)1.20 = 37.18
Here, ab is 3.6 and bb is 1.20 as mentioned in above table and KLOC i.e. lines of code are 7 which is
expressed in thousand.
Development Time (D) = 2.5(37.18)0.32 = 7.95
Here, cob is 2.5 and d
B is 0.32 as mentioned in above table. People required (P) = 37.18/7.95= 4.674 According to this
calculation our project requires
37
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
4
Numbers of people.
9.2.1 Working Hours:
Table: Working Hours
Sr. No.
Work to perform
Date
Duration
(In Hours)
1
Selection of Project
Daily
15
2
Flow chart preparation
Daily
15
3
Software Module Development
Daily
20
4
Module Testing
Daily
30
5
Project Report
Daily
20
9.2.2 Costing:
Table: Costing
Main Hours(From the above table)
100
Cost of one man power
Rs. 25/- per Hour
Rent of computer
Rs. 20/- per Hour
Stationary & other Expenses
Rs. 1500/-
9.2.3 Total Cost:
Table: Total Cost
Cost of total man power(100*25)
Rs. 2500/-
Total rent for computer for 9 months(100*20)
Rs. 7000/-
Stationary & other expenses
Rs. 1500/-
Total
Rs. 11,000/-
38
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
Chapter: -10
Conclusions and future scope
Carpooling system is an effort to reduce consumption of fuel, our most important nonrenewable
resource and traffic congestion on roads by encouraging people to use car sharing. So, it is an environmentfriendly social application and also helps people to reduce their journey time. This paper elaborates the
literature survey of the different researchers on the carpooling system. Carpooling is done in many different
techniques like carpooling by using SMS alert, carpooling by GPS tracking and so on.here are a lot of other
functionality we could add to this project like live location tracking and sharing online payment the users can
do to each other etc...
39
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
Chapter: -11
Appendix
Abbreviations
Full Form
FCM
Firebase Cloud Messaging
API
IDE
Application programming
interface
Integrated Device Electronics
XML
Extensible Markup Language
JDK
Java Development Kit
SDK
Software development kit
40
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
CAR POOLING APP
Chapter: -12
References:
[1] shilpa bilawane,pranali jambhulkar,” Information system using android platform”, International Journal
Of Engineering And Computer Science 2017
[2] Mulla Kajal ,Mahadik Awanti, Pandharpatte Sonali, Kalantre Rashmi, Bansode Swapnali, “Online
Training and Placement System” ,International Research Journal of Engineering and Technology.
[3] CaiZhongxi, “Campus Employment Information Network Development based on Android Platform”
International Conference on Intelligent Transportation, 2015.
[4] DikshaVarshney,BhumikaSharma,SomyaJain“Campus Recruitment Management: Platform based on
dynamic electronic commerce”,2014.
[9] Divyesh P, et al. A Smart Real Time Ridesharing Android Application. International Journal on Recent
and Innovation Trends in Computing and Communication 2016;4:188-192.
[10] Arpita D. Real-Time Carpooling System for Android Platform. International Journal of Engineering and
Innovative Technology (IJEIT). 2012:436-437.
41
Computer Technology,
MVP”s Rajarshi Shahu Maharaj Polytechnic, Nashik
Download