Project-Report-G2
Project-Report-G2
07.05.2020
─
Group 2
ES16BTECH11019 - Siddharth Goel
CS16BTECH11027 - Abhishek Pawar
CS16BTECH11035 - Siddharth Shrivastava
CS16BTECH11030 - Saahil Sirowa
1
Overview
Car-Pooling Management System (CMS) is intended to help the user to share car rides with
other users traveling on the same route. The user may intend to share his car or else ride
with another user who is willing to share.
The carpooling software is designed and developed in the Django framework using the
GoogleMaps API.
CMS is aimed toward a person who is a frequent traveler and is looking for a cheap and
comfortable mode of transport. It will prove beneficial for office commuters who are
headed on a common route and are willing to share the travel cost. Anyone can opt to
provide a drive, thus reducing his/her expense.
Please Refer H
itchRide Documentation for details.
Requirements Implemented
● Web APP for the user(driver) who is going to its destination and wants to share the
ride.
● Web APP for the user(Rider) who wants to go from pickup to destination.
There are two categories of users:
1. Driver - A user who wants to share his ride with other people along the same route
or is a full-time driver.
2. Rider - A user(other than driver) sharing a ride. He can book in realtime and will be
assigned a driver from the pool of drivers available.
*Please Refer to the attached screenshot for all the features details.
Login Page
● Authenticate the user with userId and password.
Registration Page
● Allow users to create new accounts with prefered user id and password (Min 6 char).
3
● After login comes to this page which gives the user the option of selection to drive
or ride!
Driver Flow
Once the user selects the Driver option the page asks for the destination. We have used the
Google places API w hich is shown in the below screenshot. It auto-suggest the driver for
its destination. In the background it also captures the current location of the driver using
Google GeoLocation API.
4
Driver Dashboard
Once the driver submits its destination point it is redirected to the driver dashboard where
all the a vailable riders will be visible to him. In the below screenshot we can see one
available rider in his dashboard.There is an accept button for each rider that gives the rider
the f reedom to choose the rider based on his location (PickUP and Destination).
As you can see We also have features for Available seats, Current Ride Requests and
Displaying Fare(once ride ends).
5
Rider Flow
If the user selects “Book a Ride” o
ption, the following page appears for him, where he is
asked for Pickup and Destination Location using Google’s Places API.
Here the rider is auto suggested places using the Google Places API
6
Rider Dashboard
Once rider enters pickup and destination, in the background our app :-
● Collects the rider’s current location using Geo-Location API, and
● While the ride request is being processed, shows user Directions to Pick Up point
using Google Maps Direction API.
7
2. Once the driver accepts the rider request the accepted ride is now added to the
right side of the screen which shows all the accepted rides.
8
Software Testing
For our Application we followed Agile software development techniques where in.
requirements, programming, and testing are often done concurrently.
To ensure our application is properly developed and tested we used the following T
esting
Cycle:
1. Meets the requirements that guided its design and development and the general
result its stakeholders desire.
Cross verified all the use cases identified in SRS documents are implemented and
working correctly.
Asked our friends and family to use the application to ensure the general idea of the
application is easy to use (without any external help) and fulfils all the necessary
features required for a carpool management system.
Also, we made sure all the code base is properly tested and documented for anyone
to take it up in future.
● Dynamic Testing
We ensured p roper logging statements are printed on terminal or console so that
any type of runtime errors could be easily debugged.
● Unit Testing
For each of the functions(views.py) we wrote in our django environment, we wrote
unit tests for all of these using the pythons unittest module. When you run your
tests, the default behavior of the test utility is to find all the test cases (that is,
subclasses of unittest.TestCase) in any file whose name begins with test,
automatically build a test suite out of those test cases, and run that suite.
We also ensure the code coverage of these unit tests is close to 90% to avoid any
failures in our application.
● Integration Testing
Integration testing works to expose defects in the interfaces and interaction
between integrated components (modules).
Before and While pushing the code for different modules (API’s and other services
(such as payment)), it was made sure that their interactions do not break any
existing functionality and are seamlessly integrated with our system.
4. It is sufficiently usable.
● Software Performance Testing
12
● Compatibility Testing
A common cause of software failure (real or perceived) is a lack of its compatibility
with other operating systems (or operating system versions, old or new), or target
environments that differ greatly from the original (such as a terminal or GUI
application intended to be run on the desktop now being required to become a Web
application, which must render in a Web browser).
Therefore, it was ensured all modules are working properly by running applications
across multiple Operating Systems(Ubuntu, Windows or MacOS) and Web
Browsers(Chrome, FireFox or Safari).