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