This thesis proposes a platform to help improve elder’s mobility through carpooling, a way for car drivers to share their private vehicle with more elders in order to splitting and reducing costs. Carpooling may be one of the best solutions when there is no other mean of transportation to a specific location but naturally it is not the only one. Mobile applications take more and more part of everyone’s lives, different services for carpooling with different features begin to compete with existing transportation solutions. Some people start to prefer using new carpooling services over the traditional services represented by taxi services. GoRide aims to promote carpooling by targeting elders making it easier for them to adhere and use this system.
In general, people have a hard time conciliating their schedules because of the way they move from one location to another. And elders suffer from this the most especially here in Algeria since transportation between cities is not that great, As students, we think there should exist more suitable transportation solutions to places where transportation networks are short and cheap and helpful for elders.
By targeting elders people will more likely join the service since its users are primarily other people form the same environment. To put the carpooling system in place, we have designed and developed an Android mobile application with backend servers for users to access the carpooling service through their smartphones, additionally the application involves some features that are critical to the service. By using Android Development Tools and Libraries and efficient backend solutions we have managed to make the application simple but powerful as well, which makes this application very useful for the young and the old to use.
Our app GoRide will be a unique carpooling application that would take benefits of the advantages of carpooling and try to improve and eliminate the disadvantages, all while focusing on making it a good carpooling experience for elders.
The realization of our project will go through the conceptual phase and then development phase. Since making a good application requires good planning first.
Table Of Content
I. CHAPTER 01 : GENERAL PROJECT FRAMEWORK
1. INTRODUCTION
2. MOBILE TECHNOLOGIES
2.1. A rchitecture of a mobile system
2.2. M OBILE A PPLICATION
2.2.1. Definition
2.2.2. History
2.2.3. How a mobile application works (Function)
2.3. M oBiLE o PERATiNG s YsTEMs (os)
2.3.1. iOS
2.3.2. Windows Phone
2.3.3. Android
2.3.3.1. Architecture
2.3.3.2. Advantages and disadvantages
3. cARPooLiNG
3.1. D EFiNiTioN AND GENERAL PRiNciPLE
3.2. c ARPooLiNG T YPEs
3.2.1. Regular
3.2.2. Occasional
3.2.3. Eventual
3.3. E XisTiNG s YsTEMs FoR cARPooLiNG
3.3.1. Websites
3.3.2. Mobile Applications
3.4. A DVANTAGEs AND DisADVANTAGEs oF cARPooLiNG APPLicATioNs
4. PRoJEcT DEscRiPTioN
5. APPLicATioN FLoWcHART
6. coNcLUsioN
ii. cHAPTER 02 : PRoJEcT ANALYsis AND DEsiGN
1. iNTRoDUcTioN
2. sPEciFicATioNs
2.1. i DENTiFicATioN oF NEEDs
2.1.1. Functional requirements
2.1.2. Non-functional requirements
2.1.3. Optional requirements
2.2. A CTORS IDENTIFICATION
3. USE CASE DIAGRAM
3.1. T EXTUAL DESCRIPTION OF USE CASES
3.1.1. Identification
3.1.2. Post a ride
3.1.3. View user profile
3.1.4. Search a ride
3.1.5. Request a ride
3.1.6. Accept/Decline a Ride
4. SEQUENCE DIAGRAMS
4.1. I DENTIFICATION CASE
4.2. P OST A RIDE CASE
4.3. S EARCH A RIDE CASE
4.4. R EQUEST A RIDE CASE
4.5. A CCEPT OR REJECT RIDE REQUEST CASE
4.6. V IEW P ROFILE CASE
4.7. D ISABLE ACCOUNTS AS ADMIN CASE
4.8. D ELETE T RIPS AS ADMIN CASE
4.9. V IEW REPORTS AS ADMIN CASE
5. ACTIVITY DIAGRAM
6. CLASS DIAGRAM
7. CONCLUSION
III. CHAPTER 03 : IMPLEMENTATION OF THE APPLICATION
1. INTRODUCTION
2. WORK ENVIRONMENTS
2.1. H ARDWARE PLATFORMS
2.2. S OFTWARE PLATFORMS
2.2.1. Work Tools:
2.2.2. Programming languages:
2.2.3. Frameworks used:
2.3. D ATABASE M ANAGEMENT S YSTEM
3. PRESENTATION OF THE APPLICATION'S INTERFACES
3.1. P RESENTATION OF THE A PPLICATION ' S L OGO
3.2. A UTHENTICATION I NTERFACES
3.2.1. Login Interface:
3.2.2. Register Interface:
3.2.3. Extra Registration Interface:
3.3. D RIVER I NTERFACES
3.3.1. Main Driver Interface
3.3.2. Post a trip Interface
3.3.3. View Trip Interface
3.3.4. Modify Trip Interface
3.3.5. Cancel Trip Interface
3.3.6. Search And Accept Trip Requests Interfaces
3.3.7. Booking Requests Interface
3.4. P ASSENGER I NTERFACES
3.4.1. Main Passenger Interfaces
3.4.2. Search a Trip Interfaces
3.4.3. Trip Interface
3.4.4. Driver Ratings and Reviews Interfaces
3.4.5. Trip Request Interfaces
3.5. A DMINISTRATOR I NTERFACES
3.5.1. Main Admin Interface
3.5.2. Reports List Interface
3.5.3. Remove Trips Interface
3.5.4. Disable User Accounts Interface
3.6. G LOBAL I NTERFACES
3.6.1. User Profile Interface
3.6.2. Notifications and Chat List Interfaces
3.6.3. Messages and Chat
3.6.4. Settings Interface
3.6.5. Modify Profile Interface
3.6.6. Splash Screen Interface
4. CONCLUSION
FINAL CONCLUSION
WEBOGRAPHY
ACKNOWLEDGEMENTS
I would like to express my special thanks of gratitude to my supervisor Dr. Imene BENSETIRA for her experience and tips and for supervising the work we have been doing.
I would also like to extend my sincere thanks to our Jury who gave us the golden opportunity to do this wonderful project on the topic of developing a mobile application for carpooling the elderly, which also helped me in doing a lot of Research and gain a lot of Experience and made me came to know about so many new things I am really thankful to them.
Finally I would also like to thank my mother and friends and dear ones who helped me a lot in finalizing this project within the limited time frame.
MOHAMED LAMINE FETNI
ABSTRACT
In general, people have a hard time conciliating their schedules because of the way they move from one location to another. And elders suffer from this the most especially here in Algeria since transportation between cities is not that great, As students, we think there should exist more suitable transportation solutions to places where transportation networks are short and cheap and helpful for elders.
This thesis proposes a platform to help improve elder's mobility through carpooling, a way for car drivers to share their private vehicle with more elders in order to splitting and reducing costs. Carpooling may be one of the best solutions when there is no other mean of transportation to a specific location but naturally it is not the only one. Mobile applications take more and more part of everyone's lives, different services for carpooling with different features begin to compete with existing transportation solutions. Some people start to prefer using new carpooling services over the traditional services represented by taxi services. GoRide aims to promote carpooling by targeting elders making it easier for them to adhere and use this system.
By targeting elders people will more likely join the service since its users are primarily other people form the same environment. To put the carpooling system in place, we have designed and developed an Android mobile application with backend servers for users to access the carpooling service through their smartphones, additionally the application involves some features that are critical to the service. By using Android Development Tools and Libraries and efficient backend solutions we have managed to make the application simple but powerful as well, which makes this application very useful for the young and the old to use.
Our app GoRide will be a unique carpooling application that would take benefits of the advantages of carpooling and try to improve and eliminate the disadvantages, all while focusing on making it a good carpooling experience for elders.
The realization of our project will go through the conceptual phase and then development phase. Since making a good application requires good planning first.
Keywords: GoRide, carpooling, elders ,mobile application, Firebase, Android.
List of Figures
Figure 1 Simplified android architecture layers
Figure 2 Detailed android architecture [3]
Figure 3 Web Applications vs Hybrid vs Native [7]
Figure 4 iOS Logo [8]
Figure 5 Windows Phone Logo [9]
Figure 6 Android Logo [10]
Figure 7 Android Architecture
Figure 8 The stack of Android Open Source Project [11]
Figure 9 Application Flowchart
Figure 10 Actors identification
Figure 11 Use Case Diagram
Figure 12 Identification sequence diagram
Figure 13 Post a ride sequence diagram
Figure 14 Search a ride sequence diagram
Figure 15 Request a ride sequence diagram
Figure 16 Accept or Reject ride sequence diagram
Figure 17 View Profile Sequence diagram
Figure 18 disable account as admin diagram
Figure 19 Delete trip as admin diagram
Figure 20 View reports as admin diagram
Figure 21 Activity Diagram
Figure 22 Class Diagram
Figure 23 example of a user mode in the database
Figure 24 design of the application's logo in Android Studio
Figure 25 normal login Interface
Figure 26 login Interface with error
Figure 27 Register Interface
Figure 28 Extra Registration Interface
Figure 29 Main Driver Interface
Figure 30 Post Options, Trip Form and Places AutoComplete Interfaces
Figure 31 Post a trip sections Interface
Figure 32 View Trip Interface for a driver
Figure 33 Modify a Trip Interface
Figure 34 Cancel Trip Interface
Figure 35 Search a Trip or Trip Request Interface
Figure 36 Search Results Interface
Figure 37 Trip Request Interface
Figure 38 Passenger Drive Request (Passenger View)
Figure 39 Accept Trip Request And Post it as a Trip Interfaces
Figure 40 Booking Request View inside Notification Interface
Figure 41 Main Passenger Interfaces
Figure 42 Search algorithm working steps
Figure 43 Results Interface
Figure 44 Trip Interface before booking
Figure 45 Trip Interface after booking
Figure 46 Request Booking Option Button
Figure 47 Pending Booking State Button
Figure 48 Registered and Full Trip State Button
Figure 49 Review Option Dialog
Figure 50 Trip End Confirmation Dialog
Figure 51 Driver Review Interface
Figure 52 Ratings and Reviews on Driver's Profile
Figure 53 Main Admin Interface
Figure 54 Reports list Interface
Figure 55 Delete Trip as an Admin Interface
Figure 56 Delete User as an Admin Interface
Figure 57 User Profile Interfaces (Own Profile)
Figure 58 User Profile AppBar (Not Own Profile)
Figure 59 Filled Notification List Example Interface
Figure 60 Empty Notification List Interface
Figure 61 Notification icon while empty
Figure 62 Notification icon while filled
Figure 63 Chat list Interface with one conversation
Figure 64 Instant Messages Interface and Messages Notifications
Figure 65 Terms setting Interface
Figure 66 Settings Interface
Figure 67 Modify Profile Interface
List of tables
Table 1 Identification case
Table 2 Post a ride case
Table 6 View user profile case
Table 3 Search a ride case
Table 4 Request a ride case
Table 5 Accept or Decline a ride case
General Introduction
While transport is becoming easier everyday thanks to innovation and the evolution of technologies. And while carpooling is not a new concept. People spend hours looking for cheaper and easier ways to travel and have new experiences. Put all the benefits of carpooling together and you get GoRide. GoRide is a mobile application that aims to help elders find shared rides (Carpooling) for easier, cheaper and safer trips all over Algeria.
This application provides its users with an option to offer/take rides so that you can save your money and fuel to build an Eco friendly environment. It also helps elders get trusted rides to makes their travel more comfortable and easy.
The development process can be severed into three sections i.e., design, development, and implementation. The application design process requires good knowledge of Android operating system architecture and general understanding of the application's intent. The second part of the process, development, is the most important and crucial part in the whole process; it requires knowledge of several programming languages, environment setup, and code debugging. Implementation the final part of the development process which focuses on deploying the application on mobile devices after it has successfully been tested on virtual devices.
Ultimately this project is expected to implement an application with all of the components that serve for the purpose of carpooling. In this thesis we will discuss mobile technologies and general carpooling ideas to better understand the field we are working with and to understand the technologies available for us to build a better idea about what we are going to work with, after this is done we are going to focus on the core concept and idea of the application alongside with our needs for it. After the core concept is ready we will turn that concept into a real application by implementing it into a real Android Application with a simple and beautiful design and also a strong and efficient backend service.
Document Structure:
This document will be split into three main chapters. The first one will give important definitions about mobile systems and solutions and also give a formal definition of carpooling and of the problem that will be solved in this thesis alongside with a glimpse of the project description. The second chapter will describe the design and concept of the carpooling solution we have come up with the concept includes functional and nonfunctional needs alongside with project specifications and diagrams to make the core idea of the final application. The third and last chapter will describe different tools that are used for the implementation of the solutions to the carpooling problem. It will also describe those solutions in detail. It will contain all final design implementations and solutions, it will briefly explain how each interface of the application work for a better understanding of how the transition from a concept into a real implementation was done and how it was achieved.
I. Chapter 01 : General Project Framework
1. Introduction
The mobile application industry is booming. Smartphones are becoming more popular every year almost everyone uses one, we'll take a look at what defines mobile technologies and understand how mobile phones work, and what's the best operating system for an application development. We also take a look at different types of mobile applications and the best one to use for our project, we will understand the mobile architecture and how we can use it to make a good ride-sharing application we will also understand carpooling and give a general project description.
2. Mobile Technologies
2.1. Architecture of a mobile system
Application architecture is a set of technologies and models for the development of fully-structured mobile programs based on industry and vendor-specific standards. As you develop the architecture of your application, you also consider programs that work on wireless devices such as smartphones and tablets. [1]
Abbildung in dieser Leseprobe nicht enthalten
Figure 1 Simplified android architecture layers
Mobile application architecture design usually consists of multiple layers, including: Presentation Layer - contains User Interface (UI) components as well as the components processing them.
Business Layer - composed of workflows, business entities and components.
Data layer - comprises data utilities, data access components and service agents. A detailed Mobile System Architecture should also include these steps for better quality: [2]
Determining the Device
Here you need to keep the device types in mind. This covers the screen size, CPU characteristics, resolution (DPI), storage space and memory, and development tool environment availability.
Considering Bandwidth
There are times when connectivity is either intermittent or not available. Your application architecture needs to be built keeping in mind the worst network scenarios. Design your caching, data access mechanism...
Defining User Interface
You have the world and entire future ahead to show your creativity. Do not pour it all in at the very first stage. Keep your user interface as simple as possible. A muddled UI can become a major reason behind a mobile application's failure.
Navigation Methods
This one again comes on the design front. However, it requires expertise in both front and back end. There are numerous ways to navigate through application features, and it is important for you to analyze which one is good for your mobile application.
Abbildung in dieser Leseprobe nicht enthalten
Figure 2 Detailed android architecture [3].
2.2. Mobile Application
2.2.1. Definition
A mobile application, most commonly referred to as an application, is a type of application software designed to run on a mobile device, such as a smartphone or tablet computer. Mobile applications frequently serve to provide users with similar services to those accessed on PCs. Applications are generally small, individual software units with limited function. This use of application software was originally popularized by Apple Inc. and its Application Store, which offers thousands of applications for the iPhone, iPad and iPod Touch.
A mobile application also may be known as an application, web application, online application, iPhone application or smartphone application.
Mobile applications are a move away from the integrated software systems generally found on PCs. Instead, each application provides limited and isolated functionality such as a game, calculator or mobile web browsing. Although applications may have avoided multitasking because of the limited hardware resources of the early mobile devices, their specificity is now part of their desirability because they allow consumers to hand-pick what their devices are able to do. [4]
2.2.2. History
The history of mobile applications dates back to the end of the 20th Century. In general, they were ringtone editors, small arcade games, calendars, calculators, and so forth. The new millennium saw the start of a swift market development of mobile applications and content. Operating systems for most smartphones (Symbian, Android, RIM, Mac iOS, Windows Mobile) allow the advancement of third-party software. This is different from the traditional programming environment of the ordinary cell phones.
The first ever recognizable mobile applications came about with the range of handheld computers from Psion. These were mostly PDAs that used the EPOC OS. In the early 90s, 16-bit machines (SIBO) were running on EPOC and allowed the users to access programs like Word processor, spreadsheet, database, and diary. Later on, models in the same range but running a 32-bit OS came with 2MB RAM that allowed users to install more applications through software packs or download if they were among the lucky few modem owners. EPOC was programmed in Open Programming Language (OPL) and allowed its users to create their applications[5].
2.2.3. How a mobile application works (Function)
There are mainly three kinds of applications- Native, Hybrid and Web-based. Each kind works differently as follows:
Native Applications
All Applications targeted towards particular mobile platforms are known as Native applications. Therefore, an Application meant for Apple device will never open in Android devices. This is why most businesses develop applications for multiple platforms.
While developing native applications, professionals incorporate best-in-class user interface modules. This accounts for better performance, consistency and good user experience. Users also benefit from wider access to Applications Program Interfaces (APIs) and make limitless use of all Applications from the particular device. Further, they also switch over from one application to another effortlessly. [6]
The main purpose behind creating such applications is to ensure best performance for specific mobile operating system.
Hybrid Applications
Concept of Hybrid Applications is a mix of native and web-based applications. Applications developed using Flutter, Xamarin, React Native, Sencha Touch and other similar technology fall within this category.
These are made to support web and native technologies across multiple platforms, hence the name hybrid. Moreover, these applications are easier and faster to develop. It involves use of single code which works in multiple mobile operating systems.
Despite such advantages, hybrid applications are slower in speed and performance. Often, applications fail to bear the same look n feel in different mobile operating systems.
Web-Based Applications
These Applications are coded in HTML5, CSS or JavaScript. Presence of strong internet connection is required for proper behavior and user-experience of this group of Applications.
By default, these Applications captures minimum memory space in the user devices compared to Native and Hybrid Applications. Since all the personal databases are saved on the Internet servers, users can fetch their desired data from any device through internet. The only con is that application developers don't get sufficient access to mobile operating system API. :[7]
Abbildung in dieser Leseprobe nicht enthalten
Figure 3 Web Applications vs Hybrid vs Native [7]
2.3. Mobile Operating Systems (OS)
2.3.1. iOS
Abbildung in dieser Leseprobe nicht enthalten
Figure 4 iOS Logo [8]
iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that presently powers many of the company's mobile devices, including the iPhone, iPad, and iPod Touch. It is the second most popular mobile operating system globally after Android.
The iOS user interface is based upon direct manipulation, using multi-touch gestures. Interface control elements consist of sliders, switches, and buttons. Interaction with the OS includes gestures such as swipe, tap, pinch, and reverse pinch, all of which have specific definitions within the context of the iOS operating system and its multi-touch interface. Internal accelerometers are used by some applications to respond to shaking the device (one common result is the undo command) or rotating it in three dimensions (one common result is switching between portrait and landscape mode). Apple has been significantly praised for incorporating thorough accessibility functions into iOS, enabling users with vision and hearing disabilities to properly use its products.
The iOS SDK (Software Development Kit) allows for the development of mobile applications on iOS.
Combined with Xcode, the iOS SDK helps developers write iOS applications using officially supported programming languages, including Swift and Objective-C. Other companies have also created tools that allow for the development of native iOS applications using their respective programming languages. [8]
2.3.2. Windows Phone
Abbildung in dieser Leseprobe nicht enthalten
Windows Phone
Figure 5 Windows Phone Logo [9]
Windows Phone (WP) is a family of discontinued mobile operating systems developed by Microsoft for smartphones as the replacement successor to Windows Mobile and Zune. Windows Phone features a new user interface derived from Metro design language. Unlike Windows Mobile, it is primarily aimed at the consumer market rather than the enterprise market. It was first launched in October 2010 with Windows Phone 7. Windows Phone 8.1 is the latest public release of the operating system.
Windows Phone was succeeded by Windows 10 Mobile in 2015, it emphasizes a larger amount of integration and unification with its PC counterpart—including a new, unified application ecosystem, along with an expansion of its scope to include small- screened tablets.
In January 2019, Microsoft announced that support for Windows 10 Mobile would end on December 10, 2019, and that Windows 10 Mobile users should migrate to iOS or Android phones.
Later versions of Windows Phone support the running of managed code through a Common Language Runtime similar to that of the Windows operating system itself, as opposed to the .NET Compact Framework. This, along with support for native C and C++ libraries, allows some traditional Windows desktop programs to be easily ported to Windows Phone. [9]
2.3.3. Android
Abbildung in dieser Leseprobe nicht enthalten
Figure 6 Android Logo [10]
Android is a mobile operating system developed by Google. It is based on a modified version of the Linux kernel and other open source software, and is designed primarily for touchscreen mobile devices such as smartphones and tablets. In addition, Google has further developed Android TV for televisions, Android Auto for cars, and Wear OS for wrist watches, each with a specialized user interface. Variants of Android are also used on game consoles, digital cameras, PCs and other electronics.
Android is developed by Google until the latest changes and updates are ready to be released, at which point the source code is made available to the Android Open Source Project (AOSP), an open source initiative led by Google. The AOSP code can be found without modification on select devices, mainly the Nexus and Pixel series of devices. The source code is, in turn, customized and adapted by original equipment manufacturers (OEMs) to run on their hardware. Also, Android's source code does not contain the often proprietary device drivers that are needed for certain hardware components. As a result, most Android devices, including Google's own, ultimately ship with a combination of free and open source and proprietary software, with the software required for accessing Google services falling into the latter category.
Android Applications ("applications"), which extend the functionality of devices, are written using the Android software development kit (SDK) and, often, the Java programming language. Java may be combined with C/C++, together with a choice of nondefault runtimes that allow better C++ support.
The Go programming language is also supported, although with a limited set of application programming interfaces (API).In May 2017, Google announced support for Android application development in the Kotlin programming language. [10]
2.3.3.1. Architecture
Android is structured in the form of a software stack comprising applications, an operating system, run-time environment, middleware, services and libraries. This architecture can be represented visually as outlined in Figure 7 Each layer of the stack, and the corresponding elements within each layer, are tightly integrated and carefully tuned to provide the optimal application development and execution environment for mobile devices.
On top of the Linux kernel, there are the middleware, libraries and APIs written in C, and application software running on an application framework which includes Javacompatible libraries. Development of the Linux kernel continues independently of Android's other source code projects like seen in Figure 8. [11]
Abbildung in dieser Leseprobe nicht enthalten
Figure 8 The stack of Android Open Source Project [11]
2.3.3.2. Advantages and disadvantages
Advantages:
- Open source, so if you wanted you could make your own version
- Extremely customizable
- Has over 2 million applications available
- A wide choice of phones from many different brands gives you a better selection for a phone that fits you
- Most Android phones offer expandable storage via a MicroSD card
- Lots of applications still support KitKat (Version 4.4) which came out in 2013
Disadvantages:
- Often comes with tons of bloatware installed from the phone manufacturer
- Security standards aren't as high as iOS
- Lots of brands develop their own features which results in most phones not receiving the latest Android version for months if not a year
- Since there are many models of phones, cases are not in multitudes
3. Carpooling
3.1. Definition and general principle
Carpooling (also car-sharing, ride-sharing and lift-sharing) is the sharing of car journeys so that more than one person travels in a car, and prevents the need for others to have to drive to a location themselves.
By having more people using one vehicle, carpooling reduces each person's travel costs such as: fuel costs, tolls, and the stress of driving. Carpooling is also a more environmentally friendly and sustainable way to travel as sharing journeys reduces air pollution, carbon emissions, traffic congestion on the roads, and the need for parking spaces. Authorities often encourage carpooling, especially during periods of high pollution or high fuel prices.
Car sharing is a good way to use up the full seating capacity of a car, which would otherwise remain unused if it were just the driver using the car.
In 2009, carpooling represented 43.5% of all trips in the United States and 10% of commute trips. The majority of carpool commutes (over 60%) are "fam-pools" with family members.
Carpool commuting is more popular for people who work in places with more jobs nearby, and who live in places with higher residential densities. Carpooling is significantly correlated with transport operating costs, including fuel prices and commute length, and with measures of social capital, such as time spent with others, time spent eating and drinking and being unmarried. However, carpooling is significantly less likely among people who spend more time at work, elderly people, and homeowners.
Carpooling usually means to divide the travel expenses equally between all the occupants of the vehicle (driver or passenger). The driver does not try to earn money, but to share with several people the cost of a trip he would do anyway. The expenses to be divided basically include the fuel and possible tolls. But if we include in the calculation the depreciation of the vehicle purchase and maintenance, insurance and taxes paid by the driver, we get a cost around 100DA/km. There are platforms that facilitate carpooling by connecting people seeking respectively passengers and drivers. Usually there is a fare set up by the car driver and accepted by passengers because they get an agreement before trip start. [12]
3.2. Carpooling Types
3.2.1. Regular
The car is often perceived as an extension of the personal space, the driver, alone in his vehicle is in a closed space; he is free to do what he likes: listen to the radio, sing, call with headsets ... Carpooling regularly is to share a dialogue, experiences, stories.
In the United States an intermediate concept has developed between carpooling and the public transport line: the Vanpool. These are minibuses chartered by an employer, a public authority or a private company and made available to a group of people who regularly make the same journey.
3.2.2. Occasional
This type of carpooling is mainly used for leisure or last minute departures. The linking is often done through websites or mobile applications, which can significantly reduce travel costs, but usually requires to carpool with one or more unknown.
3.2.3. Eventual
Participants in an event (music festival, sporting event, wedding, associative or institutional meeting ...) can organize to carpool to the venue of the event. This one-time carpool has a special feature: all participants travel to the same place on the same date.
Carpooling is also used for departures on holidays or weekends, savings on a trip being even larger than the trip is long. So carpooling becomes an alternative of affordable and accessible transportation.
There are also "cultural" carpooling platforms to visit a cultural site: castles, museums, exhibitions, artists' studios, religious places, festivals, etc.
3.3. Existing Systems for carpooling
3.3.1. Websites
Algeria: www.nroho.com , www.m3aya.com , www.nsogo.net
Europe: BlaBlaCar.com
, carpooling.com , GoMore.com
France: _ covoiturage.fr
USA: car.ma , www.rdvouz.com
World: Outpost.travel , joinntravel.com , www.letsride.in
3.3.2. Mobile Applications
Algeria: YAssir,Nsogo, AMIR
World: Uber, sRide, RideShare,
USA: Uber, Lyft
France: Karos, Wever, BlaBlaCar, OuiHop
3.4. Advantages and disadvantages of carpooling applications
Advantages of carpooling:
- The main advantage of rideshare solutions is cost saving, of course. Depending on the agreement, a ride can be twice as cheap than traveling by conventional way;
- The car is not a gas cost only. There are some cost items for the maintenance, repair, parts replacement in your vehicle. If you reduce the time of car utilization, you reduce these costs;
- A fewer number of cars on the road can reduce the CO2 emission in the roads and make the air we breathe cleaner;
- Saving time. Fewer cars - fewer traffic jams. That is to say, it is possible to reach a destination point faster and find a parking place.
- Meeting new people. Traveling together allows you to find good friends. [13]
Disadvantages of carpooling applications:
- Indecent passengers. Some people can try to discount the price or even ask the driver to visit the place that is not on the scheduled route. And it is important to screen out such individuals at the very beginning of traveling.
- Indecent drivers. Unfortunately, some drivers can play an unfair game as well. For example, drivers who take 5-6 people in a small car and ask for a high price.
- In some cases, a driver has to pick up each companion separately. It increases the time of traveling.
- Passengers can be not satisfied with the driving style of a car owner. In turn, the driver can be annoyed with an excessive volubility of companions, their untidiness or lack of manners. [13]
4. Project Description
This project (GoRide) aims to develop an Android based application for carpooling for elders, this application allows nonprofessional drivers to submit rides for specific targets and allows passengers to reserve/request rides from drivers all while being secure and having a simple interface.
This application will help elders save money and also reduce the pollution of the environment and effects of vehicles, this application focuses on serving needs of elders that may have disabilities and illnesses.
GoRide will be intended for the elderly in Algeria and it will support Android phones and Tablets, Users will need internet connection to use the application to offer or find a common route to travel to, The application will have a simple and easy interface, Users must register at first before using the application, after that they must choose between a driver or a passenger, a driver can offer a drive to a specific location while a passenger can find or request a ride to a location.
Workflow of our Application GoRide:
The user downloads and installs the application in an Android device.
The user opens the application then he is welcomed with a Login/Register
A new user register via the register form (Name, Email, Birthday etc..)
The user must confirm the registration via Email or SMS.
After confirmation the user enters the application and chooses between Driver/Passenger If the user is a driver he can post a trip by adding specific information (Origin, Destination...)
Passengers can search for rides or request a ride if it is not available
Drivers accept passengers into their ride until all seats are filled and the date is due.
Drivers can also accept requested rides from passengers.
Drivers can cancel, modify their rides.
Drivers/Passengers can view profiles and modify their own profile.
A main flowchart of the application can be seen in Figure 9, however this flowchart represents the main core of the application, many features will be added to improve the application as development goes on.
5. Application Flowchart
Abbildung in dieser Leseprobe nicht enthalten
Figure 9 Application Flowchart
6. Conclusion
Now we understand that mobile technologies are a vast and a deep field to learn, there exist so many options for us to use and we also know that application development is complicated and requires deep planning and optimization, mobile OS's offer tools that help developers make applications in easy ways, we will take an advantage of this to make our carpooling application “GoRide”.
Our Application will take full advantage of carpooling but at the same time we will minimize the disadvantage by making our application secure and efficient and make sure it's satisfying for all its users.
Finally and after understanding mobile technologies and solutions available to use, and after understanding how carpooling works, we can determine the best options to use to make our application but before the implementation comes the analysis and conceptual phase, which will cover the project plan and needs.
II. Chapter 02 : Project Analysis and Design
1. Introduction
The design of a project is important for the structure of the application by using UML (Unified Modeling Language) which is a general purpose modelling language, that aims to define a standard way to visualize the way a system has been designed. It is quite similar to blueprints used in other fields of engineering.
Reasons to use UML for project analysis and design are:
- Complex applications need collaboration and planning from multiple teams and hence require a clear and concise way to communicate amongst them.
- A lot of time is saved down the line when teams are able to visualize processes, user interactions and static structure of the system.
These project designs will try and make the overall idea of the project more understandable and clear by identifying Actors and functional / non-functional needs, And also all the diagrams needed to give a clear view about this project.
2. Specifications
2.1. Identification of needs
Application architecture is a set of technologies and models for the development of fully-structured mobile programs based on industry and vendor-specific standards. As we develop the architecture of our application, we also consider programs that work on wireless devices such as smartphones and tablets.
2.1.1. Functional requirements
-All users can:
- Create an account.
- Login.
- Choose an account type (Driver , Passenger).
- View Profiles.
- Modify their profiles info (phone, email, etc.).
-After identification drivers can:
- Submit a ride with specifications.
- Cancel a ride while notifying passengers.
- Modify a ride (date, number of seats, target, start point, etc.).
- Accept or Decline a ride request from a passenger.
-In addition passengers can:
- Search for a ride.
- View available rides on the map.
- Reserve a ride from a driver.
- Request a ride.
- Rate/Comment on a driver after a trip.
- Report drivers.
-also Administrators can:
- Disable accounts.
- Remove rides.
- View Application Statistics.
- Send Push Notifications and Updates.
- Database Management.
- Add more features.
2.1.2. Non-functional requirements
- Software extensibility:
- Ability to add or modify some features
- Multi-Platform Support (Smartphones, Tablets, IOS (optional)).
- Implementing an online backend for easier management (Firebase).
- Accessibility options (Blind, Deaf, etc..)
- Small Application size.
- Fast response from server.
- Secure system.
- Simplicity of interface.
- Development using Android Studio's Java/Kotlin.
- Clear Information and Communications.
- Google Maps API + Geolocalization.
- Clear Privacy Policy.
2.1.3. Optional requirements
- Drivers communicate with a passenger (Text messages).
- Drivers rating passengers
- Drivers can add comments on rides (Smoker, No Luggage, Bags, Pickup area...)
- SMS Verifications for extra security.
- Tutorial on how to use the application.
- Low API Target to support older phones.
- Payment Options
2.2. Actors identification
Abbildung in dieser Leseprobe nicht enthalten
Figure 10 Actors identification
[...]
-
-
-
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
-
¡Carge sus propios textos! Gane dinero y un iPhone X.