Você está na página 1de 37

INTERNSHIP PROJECT REPORT

(Project Term January-May, 2019)

Cab Booking System

Submitted by

Ayush Mitra Registration Number :11508466

Course Code: CSE 441

Under the Guidance of

Mr. Aseem Kumar Sukhija Mr. Bharat Bagga


Placement Manager, Lovely Professional Software Engineer, Click Labs Private Ltd
University

School of Computer Science and Engineering

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.

Name of Student: Ayush Mitra


Registration Number: 11508466

(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.

(Signature and Name of the Mentor)


Mr. Aseem Kumar Sukhija
Designation – Assistant Professor
School of Computer Science and Engineering,
Lovely Professional University,
Phagwara, Punjab.

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.

I perceive as this opportunity as a big milestone in my career development. I will strive to


use gained skills and knowledge in the best possible way, and I will continue to work on
their improvement, in order to attain desired career objectives. Hope to continue cooperation
with all of you in the future.

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.

Advantages of Cab Booking Apps

There are outstanding advantages your business, drivers, and passengers can get by using
taxi booking apps.

 Drivers do not need to drive around searching for passengers.


 Payment can be made in cashless ways, so drivers do not need to carry huge
amount of cash with them.
 Unruly passengers can be identified when drivers provide negative ratings on
the app
 Exact location of the passenger eliminates unnecessary time wasting
9
 Cabs can be hired instantly without even going out of the home.
 Passengers can get updates on cab location and their approximate arrival
time.
 Passengers find it convenient to book cabs without waiting on the road and
refusal
 Taxi booking apps will help your business grow by drawing in more
passengers.

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:

 Search option to enter a desired pickup location.


 GPS feature to detect current location.
 A detailed map to see their selected location.

3.2.3 Locations saving feature

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.

3.2.4 Cab confirmation

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.

3.2.6 Cab confirmation

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.

3.2.7 Transparent booking process

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.

3.2.8 Fare precision

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.

3.2.9 Advanced booking

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.

3.2.9 Ride details

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:

 Name and Phone number of the driver.

 Cab Number, Cab model name and Colour

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.

3.2.12 Emergency Contact -

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.

3.2.13 Emergency button -

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.

3.2.14 FAQ Section -

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

BOOKING GENERATE DRIVER


MANAGEMENT REPORT

CUSTOMER GENERATE
MANAGEMENT CUSTOMER REPORT
CAB
BOOKING GENERATE ADMIN
ADMIN SYSTEM PANEL DETAILS AND
MANAGEMENT
SETTINGS

PAYMENT GENERATE
MANAGEMENT PAYMENT REPORT

SIGN UP/LOG IN GENERATE USER


MANAGEMENT LOG IN DETAILS

FIRST LEVEL DFD - CAB BOOKING SYSTEM

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

 The fare must be economical so that it must be in reach/budget of every person.


 Cab must be reach on time on the defined destination.
 There must be a large fleet of cabs (AC/Non-AC).
 Provide the functionality to make your own bookings
 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.
 Easy payment facility must be provided in cab i.e. by cash or by card.
 Payment bill must be provided by cab driver.
 Driver’s identification data must be given i.e. driver’s name, id & photo
 graph at the time of booking of cab.
 Estimated time for a particular journey must be provided.
 Details of the route must be provided to the customer. Customers can my take the
cab by his/her own route.
 Customer satisfaction is necessary.
 The user interface must be friendly so that the user can easily book a cab in few
minutes by doing few clicks.
 Payment modes can be also of prepaid or post-paid.
 Peak and Surge time charges are also added to the total fare on the basis of per
kilometre.
 In the end the report must be generated which shows the customer name, address,
source and destination, total fare, driver details and timings i.e. the invoice must be
generated If the payment is made at the time of booking i.e. prepaid then it must be
shown in the report.
 The information must be provided to the customer on its email id and to driver on
its job sheet

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.

PHASES OF SYSTEM DEVELOPMENT LIFE CYCLE

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.

4.3.5 Integration and Test Phase:


Subsystem integration, system, security, and user acceptance testing is conducted during the
integration and test phase. The user, with those responsible for quality assurance, validates
22
that the functional requirements, as defined in the functional requirements document, are
satisfied by the developed or modified system. Security staff assesses the system security
and issue a security certification and accreditation prior to installation/implementation.
Multiple levels of testing are performed, including: Testing at the development facility by
the contractor and possibly supported by end users. Testing as a deployed system with end
users working together with contract personnel.
Operational testing by the end user alone performing all functions. Requirements are traced
throughout testing; a final Independent Verification & Validation evaluation is performed
and all documentation is reviewed and accepted prior to acceptance of the system.

4.3.6 Implementation Phase:


This phase is initiated after the system has been tested and accepted by the user. In this phase,
the system is installed to support the intended business functions.
System performance is compared to performance objectives established during the planning
phase.
Implementation includes user notification, user cabbing, installation of hardware,
installation of software onto production computers, and integration of the system into daily
work processes. This phase continues until the system is operating in production in
accordance with the defined user requirements.
Operations and Maintenance Phase:
The system operation is ongoing. The system is monitored for continued performance in
accordance with user requirements and needed system modifications are incorporated.
Operations continue as long as the system
can be effectively adapted to respond to the organization’s needs. When modifications or
changes are identified, the system may renter the planning phase. The purpose of this phase
is to:
Operate, maintain, and enhance the system.
Certify that the system can process sensitive information.
Conduct periodic assessments of the system to ensure the functional requirements continue
to be satisfied.
Determine when the system needs to be modernized, replaced, or retired.

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.

5.1.1 User Interface


The user interface for this system will have to be simple and clear. Most importantly, the
ages must be easy to read, easy to understand and accessible. The colour scheme should be
appropriate to provide familiarity with the Company and there should be no contrast issues.

5.1.2 ADMIN View Functionality:


Registration and Login System: Admins will carry out their own registration, providing
the system with a way to associate a user to their request(s). This will enable the system to
display personalized information when the user logs in and certain information, such as name
and address, to be added to each booking request automatically.

5.1.3 Globalization Support

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.

Booking System- The booking process will be as straightforward as possible, using an


intuitive form layout, with the necessary information being completed in stages.

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.

5.2 FUNCTIONAL OR SPECIFIC REQUIREMENTS:


The system should satisfy the following requirements:

5.2.1 Administrator Aspect

1. Perform weekly roster of Clients


2. Print reports annually, weekly, and daily
3. Check feedbacks
4. Send newsletters
5. Manage user portfolio
6. Changing the super password.

5.2.2 Users Aspect


1. Logging into the system.

2. To check their rosters.

3. Maintain daily logs

25
4. Select availability.

5. Check online bookings

5.2.3 Driver Aspect:


1. Make a booking
2. Check their booking status
3. Fair calculation
4. Driver history
5. Changing password.
6. Resetting of forgotten password.

5.2.4 Analysis
1. Authenticating users based on username and password.

2. Keeping session track of user activity.

3. Recording driver’s request for booking.

4. Checking whether the vehicle is available for booking.

5. Keeping history of courses bookings.

6. Keeping record of feedbacks received from the clients.

5.2.5 Mailing
1. Temporary password will be mailed to the user in case the user forgets the password.

2. Newsletters should go the clients email addresses.

3. The user and driver should get notification email of the booking while confirmed.

5.2.6 Performance Requirements


Some Performance requirements identified is listed below:

 The database shall be able to accommodate a minimum of 10,000 records of users


and drivers.
 The software shall support use of multiple users at a time.
 There are no other specific performance requirements that will affect development.

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:

 Utilize certain cryptographic techniques

 Keep specific log or history data sets

 Assign certain functions to different modules

 Restrict communications between some areas of the program

 Check data integrity for critical variables

 Later version of the software will incorporate encryption techniques in the


user/license authentication process.

 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.

 Communication needs to be restricted when the application is validating the user.


5.2.8 Portability Requirements
Some of the attributes of software that relate to the ease of porting the software to other host
machines and/or operating systems. This may include:

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:

 A logical interface is essential to an easy to use system, speeding up common tasks.


27
 Error prevention is integral to the system and is provided in a number of formats
from sanity checks to limiting free-text input.
Availability
All cached data will be rebuilt during every start-up. There is no recovery of user data if it
is lost. Default values of system data will be assigned when necessary.

5.3 NON-FUNCTIONAL REQUIREMENTS:


This system will work on client-server architecture. It will require an internet server and
which will be able to run PHP application. The system should support some commonly used
browser such as IE etc.

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:

 Processor: Intel Core 2Duo or AMD equivalent, 2Gz or better


 RAM: 2GB
 HDD: 160 GB, 7200k spin
 Operating system: Windows XP sp3 / Windows Vista Business sp1
 Business broadband connection with static IP (8mb download)
 Online backup

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.

The development of software systems involves a series of production activities where


opportunities for injection of human fallibility are enormous. Errors may begin to occur at
the very inception of the process where the objectives may be enormously or imperfectly
specified, as well as in later design and development stages. Because of human inability to
perform and communicate with perfection, software development is accompanied by a
quality assurance activity.

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.

The following are some attributes of a good test:

 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

 Incorrect or missing functions


 Interface errors
 Errors in data structures or external data base access
 Performance errors
 Initialization and termination errors.

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.

7.1.2 API DESIGN –


Customer API -

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

Você também pode gostar