Online Cab Booking System
Online Cab Booking System
Submitted by
1
Company Mentor End Term Evaluation Form
2
DECLARATION
I hereby declare that the project work entitled Cab Booking System is an authentic record
of our own work carried out as requirements of Internship for the award of B. Tech degree
in Computer Science and Engineering from Lovely Professional University, Phagwara,
under the guidance of Mr. Aseem Kumar Sukhija during (January to May 2019). All the
information furnished in this capstone project report is based on my own intensive work
and is genuine.
(Signature of Student)
Date:
3
CERTIFICATE
This is to certify that the declaration statement made by the student is correct to the best of
my knowledge and belief. He has completed his internship under my guidance and
supervision. The present work is the result of his original investigation, effort and study. No
part of the work has ever been submitted for any other degree at any University. The
internship is fit for the submission and partial fulfilment of the conditions for the award of
B.Tech degree in Computer Science and Engineering from Lovely Professional University,
Phagwara.
Date:
4
ACKNOWLEDGEMENT
The internship opportunity I have with Click Labs is a great chance for learning and
professional development. Therefore, I consider myself as a very lucky individual as I was
provided with an opportunity to be a part of it. I am also grateful for having a chance to meet
so many wonderful people and professionals who led me though this internship period.
Bearing in mind previous I am using this opportunity to express my deepest gratitude and
special thanks to the CEO of Click Labs who in spite of being extraordinarily busy with his
duties, took time out to hear, guide and keep me on the correct path and allowing me to carry
out my project at their esteemed organization and extending during the training.
I express my deepest thanks to Mr Bharat Bagga, Software Engineer for taking part in useful
decision & giving necessary advices and guidance and arranged all facilities to make life
easier. I choose this moment to acknowledge his contribution gratefully.
Sincerely,
Name:
Place:
Date:
5
TABLE OF CONTENTS
1. Introduction 8
2. Problem Statement 9
3. Existing System 10
3.1 Introduction 10
3.2 Existing Functionality 10
3.3 DFD 15
3.4 Need to Be Integrated 16
3.5 Current Flow of The System 18
4. Problem Analysis 19
4.1 Product definition 19
4.2 Feasibility Study 20
4.3 Project Plan 21
4.3.1 Initiation Phase 21
4.3.2 Requirement Analysis Phase 22
4.3.3 Design phase 23
4.3.5 Development Phase 24
4.3.5 Integration and Test Phase 24
4.3.6 Implementation Phase 24
5. Software Requirement Analysis 25
5.1 Introduction 25
5.2 Functional Requirements 26
5.3 Non-Functional Interface 29
5.3.1 Hardware Interface 29
5.3.2 Software Interface 29
6. Testing 30
6.1 Introduction 30
6.2 Types of Testing 32
6.2.1 Alpha Testing 33
6.2.2 Beta Testing 33
6.3.3 System Testing 34
6
7. Implementation
7.1 DATABASE DESIGN 36
7.2 API DESIGN 37
Bibliography
7
1.INTRODUCTION –
Online Cab Booking Management System is developed to manage all cab hiring work
online. It useful for car booking agency that are specialized in Hiring cabs to customers.
Using this system many cab-booking agencies are moving ahead to become a pioneer in the
vehicle rental industry by completely focusing on customers. Using this system, it is very
easy for customer to book a car online and cab-booking agency can also track their booking
online. So, it is also very useful for car booking agency. It is an online system through which
customers can view available cabs; register the cabs, view profile and book cabs. Mostly
peoples use cab service for their daily transportations need. Cab booking agency can also
check which car is free for booking and which cars are on booking at present time.
The objective and scope of my project Online Cab or Cab booking System is to record the
details various activities of user. It will simplify the task and reduce the paper work. Using
this car booking management system car owner can also become partner of car booking
agency by giving their car for booking. Online Car rental management system is a web-based
application that allow users to book a car online. From this system car rental company can
manage all car bookings and customer information. User can book cars and admin can
confirm the booking and cancel the booking on the basis of availability of the cars and
drivers. We have developed this system to produce a web-based system that allow customer
to register and reserve cab online and for the company to effectively manage their Cab hiring
business. Presently car booking agency do all work offline when a customer comes to them,
they take the booking order and call the car driver to check their availability with their car if
they manage to find a car for booking they confirm the order otherwise they cancel the order
as they have no car for the booking. This process wastes a lot of time of customer and also
of car booking agency and it also give bad name to the agency but with our system car agency
can confirm the order within a minute by checking the availability of cars for booking. So,
this car booking system is helpful to ease customer’s task whenever they need to rent a cab
or hire a cab.
The proposed Online Cab Booking project system ensures that the users can book the cab as
per their requirements by on to the website. It allows users to book their cabs online, logging
8
manage their bookings and cancel their bookings at any point of time. The users will get
notified about the driver and his mobile no. so as to communicate with him. Regular updates
are provided to the customer so that they are aware of their bookings, driver details, and
booking status. The user can also drop in their suggestions or queries in the feedback form.
2. PROBLEM STATEMENT –
The introduction of smartphones and the galore of apps have changed the way we led our
lives. Taxi booking apps have created a stir in how the traditional taxi business industry
worked. Famous names like Uber and Ola have already shown the way to a lucrative market
for private transportation. In 2015, Uber had one million users using it daily in over 60
different countries. In the U.S. alone, there are more than 160,000 Uber drivers – a testimony
to how popular taxi booking services could be.
You can easily build a taxi booking app for your taxi fleet. It is possible to hire an app
developer or app development company to get an app made just for you. All the required
features and functions of top-notch taxi apps are available to be customized and made into
your own app.
People must be thinking making an online taxi booking software will require an additional
software for content management. But you will be happy to know that this is not the reality.
It does not matter which platform you are developing the app for.
APIs are a great way to adapt an app to the platform. The internal settings and configurations
of the mobile app can attune the application for the device and platform it is aimed for. We
will be able to provide our requirements and add the features we want in our app. It is a great
way to make a unique app that gets everybody’s attention in this competitive market.
There are outstanding advantages your business, drivers, and passengers can get by using
taxi booking apps.
The time is right for your taxi business to develop a dedicated taxi booking app for your
organization. The traditional taxis are losing out in competition against the companies with
their own taxi booking app. It is really simple to get a great taxi app at an affordable price
for extending and growing your business.
3. Existing System – This system developed under four lead entities. This Project is
based on MEAN stack Technologies.
3.1 INTRODUCTION - The strategy in web development has changed dramatically
in the recent years, thanks to the improvement of information technology. The browser is no
longer used to serve static information. JavaScript is used heavily to serve dynamic elements
in the browser. The browser is becoming a kind of mini-operating system, which avails itself
in the net of various data sources- the services of developer’s servers.
The modern web application, which is called web app, connects to the server to retrieve data
dynamically. It only exists in the browser. When users approach the app for the first time,
the app is rendered by the server and supports its services such as database access or
transaction (Mozilla Inc, 2016). Deriving from modern web application, Wire delta’s
internal project is designed to build application service provider called an APIs (Application
Programming Interfaces) and use JSON (JavaScript Object Notation) as formatting
language.
This project is based on MEAN stack. MongoDB and MySQL both Databases are used to
shape this project. The Project consists of several ideas and functionality. Node JS is very
powerful and helpful for this project.
3.2 Existing Functionality - As soon as the user launches the application, he could
come across a well-defined user guide. It covers each and every aspect of the cab booking
10
process, making it easy for first time users to perform core tasks. Such guides are crucial to
introduce app users to important mobile features and action process.
3.2.1 Signup Process - The basic design architecture of your application is to keep
everything simple and user friendly. The same should hold true for sign-up page. Before
using the application, it is mandatory to have a registered account with the platform. The
overall process should be minimalistic keeping in mind the mobile nature, and requests only
most critical information such as:
Name
Email
Password
Mobile number
Date of Birth
Identity Number
Car details (In the case of driver)
3.2.2 User Centric Booking Process - After the completion of registration process, the users
can be taken to the main screen where they can easily pick a ride for themselves. Here are
the most noticeable points in the cab booking process:
User can also select and save their favourite location which can be accessed easily. This is
beneficial in cases when you seek ride to or from a location on a regular basis.
Features related to most frequented destinations and routes will add to app usability and
makes cab booking easy for riders.
If the user chooses to book a ride right away, then, they are shown a confirmation screen
which also has detailed information regarding the rate card and ride estimate. It also offers
users to apply for discount via coupon codes. Pick a clone script that has cab scheduling and
confirmation related features.
11
12
3.2.5 Estimated time of arrival
As per services offered in the vicinity of the user, the application should show the options of
choosing the cab along with their estimated time of arrival (ETA). This is highly beneficial
feature as the user is made aware of the time frame from very beginning.
If the user chooses to book a ride right away, then, they are shown a confirmation screen
which also has detailed information regarding the rate card and ride estimate. It also offers
users to apply for discount via coupon codes. Pick a clone script that has cab scheduling and
confirmation related features.
One of the deciding factors that would make any online cab booking service a hit among
users is the transparency in pricing. All the information related to the fares should made
available to the user in a clear manner.
The option available to the users in the form of “Ride Estimate” shows all the details related
to the approximate time travel and the estimated cost to the user. Giving a clear idea of fare
and pricing can help your clone score additional points.
For users who want to book the ride for a later stage, a pop-up box can be shown, where they
can select the date along with the desired time.
Once the booking is confirmed, users are able to see the current location of the cab and the
estimated time of arrival. Other details available are:
13
3.2.10 Ride feedback -
After reaching the destination, user can be prompted with the screen showing the total cost
and distance travelled. With the focus on user engagement, the platform can request the users
to give their feedback on the ride experience. This not only rates the driver for future
reference, but helps the company in discovering the level of customer satisfaction.
3.2.11 My Rides -
This feature shows the detailed list of all the bookings undertaken listing upcoming and well
as completed rides. This helps in keeping track of all the rides booked by the user and driver.
Admin can also view all the booking details.
In order to ensure safe and hassle-free rides, the platform has provided with a security feature
in our application where users can add contact details of any person.
Offered an emergency button in the application which sends the ride details as well as current
location to a pre-defined contact in case of emergency. This is highly vital security feature
and can boost user confidence.
Online cab booking service is still in its nascent stage in India due to which users are full of
queries. A comprehensive FAQ section covering common cab booking queries is exist to
enhance rider experience
14
3.3 DFD (Data Flow Diagram)-
GENERATE
DRIVER BOOKING REPORT
MANAGEMENT
CUSTOMER GENERATE
MANAGEMENT CUSTOMER REPORT
CAB
BOOKING GENERATE ADMIN
ADMIN SYSTEM PANEL DETAILS AND
MANAGEMENT
SETTINGS
PAYMENT GENERATE
MANAGEMENT PAYMENT REPORT
15
3.4 NEED TO BE INTEGRATED-
3.4.1 Secure payment gateways–Websites that empower online taxi bookings integrate
secure payment gateways to make sure clients don’t suffer due to payment hassles. The
whole payment process can also be optimized from user experience & conversion point of
view to generate quicker bookings.
3.4.2 Social integration – Social Media features allow users to connect and share the
experience on websites like Facebook and Twitter. Online cab booking brands also use
YouTube to increase brand awareness through interactive videos.
3.4.3 Feedback option – This feature gives website users the option to connect with service
operator directly in case of any query or problem related to booking or payment.
3.4.4 Monetization feature – To create additional source of revenue, online cab hire
websites also have advertising feature. “Advertise with us” option allows industry businesses
to advertise their products & services.
3.4.5 Vehicle options – Websites that understand the unique needs of travellers also offer
the option of choosing from a wide range of cars. From ordinary to luxury, the website helps
in vehicle selection depending on user’s choice and budget.
3.4.6 Autocomplete feature – Be it reservation form or search field, autocomplete is a critical
to help website visitors’ complete task quickly. Without recommendations, filling lengthy
forms becomes a headache. So, this feature is a must.
3.4.7 Lost & Found option– Meru Cabs and various other service providers offer this feature
to cab users in case they accidentally leave something inside the cab.
3.4.8 Powerful search–Search on online taxi booking sites needs to be super quick. This
feature is critical for aggregator websites so that visitors can look for cab operators as per
their unique requirements.
3.4.9 Package comparisons– In additional to above features, websites based on aggregator
model also need features that will help cab users to compare pricing and packages from two
different service providers to select the best deal.
16
3.5 CURRENT FLOW OF THE SYSTEM –
17
4. PROBLEM ANALYSIS –
4.1 PRODUCT DEFINATION –
Cab booking service is a major transport service provided by the various transport operators
in a particular city. Mostly peoples use cab service for their daily transportations need. The
company must be a registered and fulfils all the requirements and security standards set
by the transport department.
Taxi Booking Software is a web-based platform that allows your customers to book their
taxi's and executive taxi's all online from the comfort of their own home or office. The
platform should offer an administration interface where the taxi company can manage the
content, and access all bookings and customer information. Usually the platform will include
all the required functionality such as hosting, email accounts, updates, a domain name (the
web address) and, most importantly, backups! In a nutshell your Taxi Booking Software
should be able to Provide the functionality to make your own booking so. Give your
customers the facility to make payments and deposits online with their credit / debit card.
Generate Invoices
Update your web site without the need to get a web designer involved Provide the customer
with taxi availability Track your customers Engage your customers through interaction such
as feedback forms More and more Taxi companies are looking for integrated taxi booking
systems as it makes life much easier for a) the customer - this is highly important and in
today's internet age people should be able to book taxis online without having to pick up the
phone and b) the taxi company - as all their bookings are now managed via an automated
system which means they have an electronic record of future and historic bookings. From
the historic data the taxi firm will be able to look at booking trends of set periods of time,
and future bookings will allow them to budget their staff and taxi routes accordingly.
Taxi Booking Software can be built on top of a great looking web site and third-party
payment providers can be used to provide secure transactions. One factor that may be a
stumbling block for Taxi firms is the cost of the taxi booking software. Some vendors offer
a shared pricing model that allows certain taxi firms to share the cost of the system. This
type of model is known as multi-vendor. As the taxi booking systems are web based this
doesn’t cause any issues as the software is located on a central web server and the web site
front end can be branded in any way required by the taxi company.
18
4.2 FEASIBILITY STUDY -
Here are some parameters we need to aware whenever we want develop a cab Booking
System
19
4.3 PROJECT PLAN -
The systems development life cycle is a project management technique that divides complex
projects into smaller, more easily managed segments or phases. Segmenting projects allows
managers to verify the successful completion of project phases before allocating resources
to subsequent phases. Software development projects typically include initiation, planning,
design, development, testing, implementation, and maintenance phases. However, the
phases may be divided differently depending on the organization involved. For example,
initial project activities might be designated as request, requirements-definition, and
planning phases, or initiation, concept-development, and planning phases. End users of the
system under development should be involved in reviewing the output of each phase to
ensure the system is being built to deliver the needed functionality.
4.3.1 Initiation Phase - The Initiation Phase begins when a business sponsor identifies a
need or an opportunity. The purpose of the Initiation Phase is to Identify and validate an
opportunity to improve business accomplishments of the organization or a deficiency related
to a business need. Identify significant assumptions and constants on solutions to that need.
Recommend the exploration of alternative concepts and methods to satisfy the need
including questioning the need for technology, i.e., will a change in the business process
20
offer a solution? Assure executive business and executive technical sponsorship. The
Sponsor designates a Project Manager and the business need is documented in a Concept
Proposal. The Concept Proposal includes information about the business process and the
relationship to the Agency/Organization Infrastructure and the Strategic Plan. A successful
Concept Proposal results in a Project Management Charter which outlines the authority of
the project manager to begin the project. Careful oversight is required to ensure projects
support strategic business objectives and resources are effectively implemented into an
organization's enterprise architecture. The initiation phase begins when an opportunity to
add, improve, or correct a system is identified and formally requested through the
presentation of a business case. The business case should, at a minimum, describe a
proposals purpose, identify expected benefits, and explain how the proposed system supports
one of the organizations business strategies. The business case should also identify
alternative solutions and detail as many informational, functional, and network requirements
as possible.
4.3.2 Requirements Analysis Phase - This phase formally defines the detailed functional
user requirements using high-level requirements identified in the Initiation, System Concept,
and Planning phases. It also delineates the requirements in terms of data, system
performance, security, and maintainability requirements for the system. The requirements
are defined in this phase to a level of detail sufficient for systems design to proceed. They
need to be measurable, testable, and relate to the business need or opportunity identified in
the Initiation Phase. The requirements that will be used to determine acceptance of the
system are captured in the Test and Evaluation Master Plan. The purposes of this phase are
to: Further define and refine the functional and data requirements and document them in the
Requirements Document, Complete business process reengineering of the functions to be
supported (i.e., verify what information drives the business process, what information is
generated, who generates it, where does the information go, and who processes it), Develop
detailed data and process models (system inputs, outputs, and the process. Develop the test
and evaluation requirements that will be used to determine acceptable system performance.
4.3.3 Design Phase - The design phase involves converting the informational, functional,
and network requirements identified during the initiation and planning phases into unified
design specifications that developers use to script programs during the development phase.
Program designs are constructed in various ways. Using a top-down approach, designers
first identify and link major program components and interfaces, then expand design layouts
21
as they identify and link smaller subsystems and connections. Using a bottom-up approach,
designers first identify and link minor program components and interfaces, then expand
design layouts as they identify and link larger systems and connections. Contemporary
design techniques often use prototyping tools that build mock-up designs of items such as
application screens, database layouts, and system architectures. End users, designers,
developers, database managers, and network administrators should review and refine the
prototyped designs in an iterative process until they agree on an acceptable design. Audit,
security, and quality assurance personnel should be involved in the review and approval
process. During this phase, the system is designed to satisfy the functional requirements
identified in the previous phase. Since problems in the design phase could be very expensive
to solve in the later stage of the software development, a variety of elements are considered
in the design to mitigate risk. These include:
Identifying potential risks and defining mitigating design features. Performing a security
risk assessment. Developing a conversion plan to migrate current data to the new system.
Determining the operating environment. Defining major subsystems and their inputs and
outputs. Allocating processes to resources. Preparing detailed logic specifications for each
software module.
4.3.4 Development Phase - The System Concept Development Phase begins after a business
need or opportunity is validated by the Agency/Organization Program Leadership and the
Agency/Organization CIO. The purpose of the System Concept Development Phase is to:
Determine the feasibility and appropriateness of the alternatives. Identify system interfaces.
Identify basic functional and data requirements to satisfy the business need. Establish system
boundaries identify goals, objectives, critical success factors, and performance measures.
Evaluate costs and benefits of alternative approaches to satisfy the basic functional
requirements. Asset Project Risk. Identify and initiate risk mitigation actions, and Develop
high-level technical architecture, process models, data models, and a concept of operations.
This phase explores potential technical solutions within the context of the business need. It
may include several trade-off decisions such as the decision to use COTS software products
as opposed to developing custom software or reusing software components, or the decision
to use an incremental delivery versus a complete, onetime deployment. Construction of
executable prototypes is encouraged to evaluate technology to support the business process.
23
5. Software Requirement Analysis –
5.1 INTRODUCTION
The following sections will introduce the numerous requirements of the system from the
point of view of different users and will introduce a number of decisions that have been made
regarding implementation. These sections also attempt to somewhat describe the role of each
user group in the system, discussing their individual roles through the functions they can
perform.
List of Locale - The system will be in US English, although the application and their options
will be in US English. Hence the application and their options are to be in Unicode format.
Content to be localized - The following table lists all the possible area in the system and
also mentions whether that area should support Globalization.
Update Details – Users and Admins will all have the ability to update their personal details
at any time. Admins, however, will also be able to update their booking details. After the
user has confirmed the update, an e-mail is dispatched with the original and new details as
confirmation.
24
5.1.4 Admin View Functionality:
Perform weekly roster of Customers: The administrator must be able to select and update
the roster a week ahead based on the availability of each Customers who further book their
individual availability a week ahead.
Print reports annually, weekly, and daily: Providing administrator to print the weekly,
annually and monthly reports for his organization based on the time frame selected.
Check feedbacks: The administrator will be able to check the feedback posted by the
Customers.
Send newsletters: The administrator shall be able to send the newsletters regarding new
promotions if any.
Manage user portfolio: The administrator will provide access to new users and shall be able
to delete the employees no longer working for the organization.
System Statistics: If the administrator so wishes, they should be able to view statistics
gathered by the system regarding bookings. These statistics should be displayed on a page
with individually expandable sections, such as extending the number of bookings from the
past year to the past two years.
Report Generation: Generate reports based on the selected criteria.
25
4. Select availability.
5.2.4 Analysis
1. Authenticating users based on username and password.
5.2.5 Mailing
1. Temporary password will be mailed to the user in case the user forgets the password.
3. The user and driver should get notification email of the booking while confirmed.
26
5.2.7 Security Requirements
Some of the factors that are identified to protect the software from accidental or malicious
access, use, modification, destruction, or disclosure are described below. Specific
requirements in this area could include the need to:
The software will include an error tracking log that will help the user understand
what error occurred when the application crashed along with suggestions on how to
prevent the error from occurring again.
Maintainability
The user will be able to reset all options and all stored user variables to default settings.
Reliability
Some of the attributes identified for the reliability is listed below:
All data storage for user variables will be committed to the database at the time of
entry.
Data corruption is prevented by applying the possible backup procedures and
techniques.
Usability requirements
Some of the usability requirements identified for this system are listed below:
5.3.1 Hardware Interface - The System must run over the internet; all the hardware shall
require to connect internet will be hardware interface for the system. As for e.g. Modem,
WAN – LAN, Ethernet Cross-Cable.
Minimum system requirements for Cab Management:
5.3.2 Software Interface - The system is on server so it requires the any scripting language
like Node JS, VBScript etc. The system requires Data Base also for the store the any
transaction of the system like MYSQL, MongoDB etc. system also require DNS (domain
name space) for the naming on the internet. At the last user need web browser for interact
with the system. Developer also need a editor like Visual Studio Code or Atom.
Performance Requirement - There is no performance requirement in this system
because the server request and response are depended on the end user internet connection.
Design Constrain - The system shall be built using a standard web page
development tool that conforms to Microsoft’s GUI standards like HTML, XML etc.
Security - The system uses SSL (secured socket layer) in all transactions that include
any confidential customer information. The system must automatically log out all customers
after a period of inactivity. The system should not leave any cookies on the customer’s
28
computer containing the user’s password. The system’s back-end servers shall only be
accessible to authenticated administrators. Sensitive data will be encrypted before being sent
over insecure connections like the internet.
Reliability - The system provides storage of all databases on redundant computers
with automatic switchover.
The reliability of the overall program depends on the reliability of the separate components.
The main pillar of reliability of the system is the backup of the database which is
continuously maintained and updated to reflect the most recent changes.
Thus, the overall stability of the system depends on the stability of container and its
underlying operating system.
Availability - The system should be available at all times, meaning the user can
access it using a web browser, only restricted by the down time of the server on which the
system runs. In case of a of a hardware failure or database corruption, a replacement page
will be shown. Also, in case of a hardware failure or database corruption, backups of the
database should be retrieved from the server and saved by the administrator. Then the service
will be restarted. It means 24 X 7 availability.
Maintainability - A commercial database is used for maintaining the database and
the application server takes care of the site. In case of a failure, a re-initialization of the
program will be done. Also, the software design is being done with modularity in mind so
that maintainability can be done efficiently.
Portability - The application is HTML and scripting language based. So, the end-
user part is fully portable and any system using any web browser should be able to use the
features of the system, including any hardware platform that is available or will be available
in the future. An end-user is using this system on any OS; either it is Windows or Linux.
The system shall run on PC, Laptops, and PDA etc.
6. Testing –
6.1 Introduction - Till now the database design, user interface design and
implementation are complete. The system now is tested for its functionality, validity and
performance. In order to test the system, a wide variety of tests are conducted to make sure
that the system matches the entire identified user requirements and concepts. This chapter
focuses on testing the developed systems using different test strategies in order to verify its
correctness and user acceptance.
29
Testing is a process of executing a program with the intent of finding an error. A good test
case is one that has a high probability of finding an as yet undiscovered error. A successful
test is one that uncovers an as yet undiscovered error.
Software testing is a critical element of software quality assurance and represents the
ultimate review of specification, design, and coding. And it needs to be done in almost every
phase of product development life cycle not just before a product is handed to a customer.
A good test has a high probability of finding an error. To achieve this goal the tester
must understand the software and attempt to develop a mental picture of how the
software may fail. Ideally the classes of failure are probed.
A good test is not redundant: testing time and resources are limited. There is no point
in conducting the test that has the same purpose as another test. Every test should
have a different purpose.
A good test should be best of breed. In a group of tests that have a similar intent time
and resource limitations may militate for the execution of only a subset of these tests.
In such cases the tester that has the highest likelihood of uncovering a whole class of
errors should be used.
A good test should be neither too simple nor too complex: although it is sometimes
possible to combine a series of tests into one test case, the possible side effects
associated with this approach may mask errors. In general, each test should be
executed separately.
30
6.2 Types of testing
6.2.1 White Box Testing - White box testing, sometimes called glass box testing is a test
case design method that uses the control structure of the procedural design to derive test
cases. Using white box testing methods, the software engineer can derive test cases that:
Guarantee that all independent paths within a module have been exercised at least
once.
Exercise all logical decisions on their true and false sides.
Execute all loops at their boundaries and within their operational bounds.
Exercise internal data structure to assure their validity.
White box testing was performed at all levels of development of I-Admit. The coding team
took all care to test the code and guarantee that it meets all the specifications as well as
logically correct. All loops were tested and all internal data structures evaluated and
verified.
6.2.2 Black Box Testing - It focuses on the functional requirements of the software. That is
black box testing enables the software engineer to derive sets of input conditions that will
fully exercise all functional requirements for a program. Black box testing is not an
alternative to white box techniques. Rather it is a complementary approach that is likely to
uncover a different class of errors than white box methods. Black box testing attempts to
find errors in their following categories
Unlike white box testing, which is performed early in the testing process, black box testing
is to be applied during later stages of testing.
31
Black box testing was performed with the application code of the software being developed
to verify that it is functionally correct and gives appropriate output at different situations of
inputs. It was also verified that the software takes a good care of exceptional conditions and
errors are handled well and that the software does not crash.
A strategy for software testing integrates software test case design methods into a well-
planned series of steps that result in the successful construction of software. In many ways,
testing is an individualistic process, and the number of different types of tests varies as much
as the different development approaches.
6.2.3 Unit Testing - Unit testing focuses verification effort on the smallest unit software
design- the module. Using the procedural design description as a guide, important control
paths are tested to uncover errors within the boundary of the module. The module interface
is tested to ensure that information properly flows into and out of the program unit under
test. The local data structure is examined to ensure that data stored temporarily maintains its
integrity during all steps in algorithmic execution. Boundary conditions are tested to ensure
that the module operates properly at boundaries established to limit or restrict processing.
All independent paths (bases paths) through the control structure are exercised to ensure that
all elements in a module have been executed at least once. And finally, all error-handling
paths are tested.
Application interface of our system was unit tested at all levels of implementation, right from
start of code writing, to integrating the code with other modules. Every module was tested
fully to check its syntax and logical correctness. Error handling was implemented into
relevant modules so that the code doesn’t crash on errors.
6.2.4 Integration Testing - Integration testing is a systematic technique for constructing the
program structures, while conducting test to uncover errors associated with interfacing, the
objective is to take unit tested modules and build a program structure that has been dictated
by design. User interface of i-Admit was developed in modules. All of them were joined
together to make the complete running application. While integrating these modules,
integration testing was performed on them to verify that they meet all interfacing
requirements and that they pass relevant information among themselves. In the end the
complete program structure was tested to ensure interoperability of all the modules.
32
6.2.5 Validation Testing - At the culmination of integration testing software is completely
assembled as a package: interfacing errors have been uncovered and corrected and a final
series of software tests – Validation Testing may begin. Validation can be defined in many
ways, but a simple definition is that validation succeeds when software functions in a manner
that can be reasonably expected by the customer. Software validation is achieved through a
series of Black Box tests that demonstrate conformity with requirements.
6.2.6 Alpha Testing - It is virtually impossible for a software developer to foresee how the
customer will really use a program. When custom software is built for one customer a series
of acceptance tests are conducted to enable the customer to validate all requirements. A
customer conducts the alpha test at the developer site. The software is used in a natural
setting with the developer “looking over the shoulder” of the user and recording errors and
usage problem. Alpha tests are conducted in a controlled environment. Alpha tests were
performed at our development site with the help of our friends, who were called and asked
to run the program in the manner they like, without our guidance and errors and usage
problems were noted and code was updated to remove all of them.
6.2.7 Beta Testing - The Beta test is conducted at one or more customer sites by the end
user of the software. Unlike alpha testing the developer is generally not present. Therefore,
the beta test is a live application of the software in an environment that cannot be controlled
by the developer. The customer records all problems that are encountered during beta testing
and reports these to the developer at regular intervals. As a result of problems reported during
beta test the software developer makes modification and then prepares for the release of
software product to the entire customer base. Beta testing of our system is not performed as
the product is not yet fully developed and has not been installed at the user site as it still is
in the development phase. Beta testing will be performed when the software is deployed at
the user’s site.
6.2.8 System Testing - Ultimately software is incorporated with other system elements (new
hardware, information) and a series of system, integration and validation tests are conducted.
It is actually a series of different tests whose primary purpose is to fully exercise the
computer-based system. Although each test has a different purpose all work to verify that all
system elements have been properly integrated and perform allocated functions. System
testing of this system was performed at the development lab of this system by integrating
33
the functional systems to imitate the actual work environment. Since no special hardware
was needed for this purpose, the testing proceeded and succeeded with no errors.
6.2.9 Recovery Testing - Many computer-based systems must recover from faults and
resume processing within a pre-specified time. In some cases, a system must be fault tolerant
that is processing faults must not cause overall system function to cease. Recovery testing is
a system test that forces the software to fail in a variety of ways and verifies that recovery is
properly performed. If recovery is automatic, re-initialization, check pointing mechanisms,
data recovery, and restart are each evaluated for correctness. If recovery requires human
intervention the meantime to repair is evaluated to determine whether it is within acceptable
limits.
6.2.10 Security Testing - Security Testing attempts to verify protection mechanism built
into a system will in fact protect it from improper penetration. Security is provided for each
user by giving them login name and password. Security testing was done, as any other
anonymous user can’t log in with a user password if the user is already logged in.
6.2.11 Performance Testing - Performance Testing is designed to test run time performance
of software within the context of an integrated system. Performance Testing occurs
throughout all steps in the testing process. Performance tests are often coupled with stress
testing and often require both hardware and software instrumentation. That is it is often
necessary to measure resource utilization in an exacting fashion. External instrumentation
can monitor execution intervals, log events as they occur, and sample machines take on a
regular basis. By instrumenting a system, the tester can uncover situations that lead to
degradation and possible system failure.
7. IMPLEMENTATION –
7.1 STEPS –
7.1.1 DATABASE SESIGN – The very first step of this project a suitable database design.
We went through lot of test cases, and finally decided to make generally four main entity.
Admin – For a basic authentication purpose we had to added admin sign up, log in and forgot
password functionality. The columns, which are included in admin table, NAME, EMAIL,
PASSWORD, PAN_ID, ADMIN_ID. Admin can access all the booking details and have
34
also ability to change different type of application parameter. Admin can assign free drivers
to any pending booking.
Customer – Customer is another important database entity who can book a cab after
successful sign up and log in. The columns for this entity are CUSTOMER_ID,
CUSTOMER_NAME, EMAIL, PASSWORD, PHONE_NUMBER,
DATE_OF_BIRTH. Customer can book their cab and can also see his/her booking history.
Booking – This is the most important functionality of this project. So, we had to think it so
carefully to design a booking table. The booking table connected with other 3 entities
primary key of those table i.e. DRIVER_ID, CUSTOMER_ID and BOOKIN_ID itself.
STATUS is most important data field to check whether booking is ONGOING OR
PENDING OR CANCELLED OR COMPLETED OR ASSIGNED. To store location
details, we used FROM_LANG, FROM_LAT, TO_LANG, TO_LAT, DISTANCE,
ENTIMATED_FARE.
Driver – Driver entity is also consisting of same personal details but in addition Driver needs to
insert his car and License details also, Like LICENSE_NO, CAR_MODEL, CAR_NUMBER,
CAR_COLOUR. We added one more functionality that is RATING which is added to driver
after every booking completion by the customer.
Customer APIs are authenticated by generating token in sign up API. User can log in via
log-in API using his/her email and password. User can also initialize a booking request via
35
‘/create-booking’ API. If user forget his password, he can reset it by sending opt using
‘/forgot-password’ API.
Driver API -
Driver can create his account by using sign up api and can log in also by verifying JASON
WEB TOKEN. Driver can see his booking history by using view bookings and Driver can
perform a cancellation of booking request by ‘/cancel-booking’ API.
Admin API -
Admin can be authenticated by ‘/login’ API, so that corresponding session can generate to
perform any task which are needed to be done by Administrator. Admin can view free or
busy drivers by filtering the response of ‘/view-drivers’ API. Admin can track pending
bookings and can also free driver on that booking using ‘/view-pending’ and ‘/driver-assign’
API. Admin has ability to edit and delete driver details.
36
BIBLIOGRAPHY –
https://sites.google.com/site/ignoubcafinalyearprojects/project-
report/online-car-rental-system-project-report
https://www.kashipara.com/project/idea/php/online-cab-
booking_1357.html
Node.js in Action Book by Marc Harter, Mike Cantelon, Nathan Rajlich,
and T. J. Holowaychuk
Web Development with Node and Express: Leveraging the JavaScript
Stack Book by Ethan Brown
https://github.com/am257/Cab-Booking
38