0% found this document useful (0 votes)
86 views87 pages

Ilovepdf Merged

Uploaded by

nayaw88861
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
86 views87 pages

Ilovepdf Merged

Uploaded by

nayaw88861
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 87

BUS TICKET BOOKING SYSTEM

Submitted in fulfillment of the


Requirements for the award of the Degree of

BACHELOR OF SCIENCE (INFORMATION TECHNOLOGY)


By

Piyush Yadav -66241117

Under the esteemed guidance of

Ms. Saba Shaikh

Department of Information Technology

B. K. BIRLA COLLEGE, KALYAN


(EMPOWERED AUTONOMOUS STATUS)
(Affiliated to University of Mumbai)
KALYAN, 421304 MAHARASHTRA

A.Y. 2023-2024
B. K. BIRLA COLLEGE, KALYAN
‘EMPOWERED AUTONOMOUS STATUS’
(Affiliated to University of Mumbai)

DEPARTMENT OF INFORMATION TECHNOLOGY

CERTIFICATE
This is to certify that the project entitled, " Bus Ticket Booking System ", is bonafied work
of PiyushYadav bearing Seat. No: 66241117 , 66241108 submitted
in partial fulfillment of the requirements for the award of degree of BACHELOR OF
SCIENCE in INFORMATION TECHNOLOGY from the
University of Mumbai.

Internal Guide Head of


Department

External Examiner

Date: College Seal


PROFORMA FOR THE APPROVAL OF PROJECT PROPOSAL

(Note: All entries of the proforma of approval should be filled up with appropriate and
complete information. Incomplete proforma of approval in any respect will be summarily
rejected )

PRN No : Roll no :

1. Name of the Student

2. Title of the Project

3. Name of the Guide

4. Is this your First submission? Yes No

Signature of the Student Signature of the Guide

Signature of the Coordinator Date:


Abstract

Bus Ticket Booking System is a Web based application that works within a
centralized network. This project presents a review on the software program “Bus
Ticket Booking System” as should be used in a bus transportation system, a facility
which is used to reserve seats, cancellation of reservation and different types of
route enquiries used on securing quick reservations. OBTRS is built for managing
and computerizing the traditional database, ticket booking and tracking bus and
travel made.

It maintains all customer details, bus details, reservation details. In order to


achieve the design, Imo Transport Company (ITC) was chosen as a case study
because of its strategic importance to Imo State. Structured Systems Analysis and
Design Methodology (SSADM) was adopted. In addition PHP was used for the
front- end of the software while the back end was designed using My SQL . The
software achieved is capable of improving the customer hand and relationship
management in ITC operations.

It is recommended that despite the present functionality of the designed


software, an additional functionality such as the use of E-mail to send tickets and
notifications to the customer and an online payment using credit cards/debit cards
should be implemented into the system. Furthermore, other operations carried by
ITC such as the courier services should also be integrated in order to enhance the
system.
ACKNOWLEDGEMENT

We would like to express my sincere gratitude to the Head of Department. Mrs.


Esmita Gupta and the core faculty of the Department of Information Technology of B.
K.Birla College of Arts, Science & Commerce (Empowered Autonomous Status), Kalyan
for providing an opportunity to build a real-time Android project .
We would like to extend my heartfelt gratitude to Ms. Saba Shaikh for being our
project guide and providing us with the essential help when required. Her knowledge and
expertise in this field proved to be a boon for our entire journey of development of this
project. We would also like to thank everyone who helped in my project knowingly or
unknowingly.
DECLARATION
We hereby declare that the project entitled, “BUS TICKET BOOKING SYSTEM” done at
B. K. Birla College Arts, Commerce and Science(Autonomous), Kalyan, has not been in
any ease duplicated to submit to any other university for the award of any degree. To the best
of my knowledge other than me, no one has submitted to any other university.

The project is done in partial fulfilment of the requirements for the award of the degree of
BACHELOR OF SCIENCE (INFORMATION TECHNOLOGY) to be submitted as a
final semester project as part of our curriculum.

Piyush Yadav Gayatri Thakre


TABLE OF CONTENTS

CHAPTER 1: INTRODUCTION …10


1.1 Background
1.2 Objectives
1.3 Purpose, Scope, and Applicability
1.3.1 Purpose
1.3.2 Scope
1.3.3 Applicability
1.4 Achievements
1.5 Organisation of Report

CHAPTER 2: System Analysis …19

2.1 Existing and Need for System


2.2 Software and Hardware Requirements
2.3 Feasibility Study

CHAPTER 3: REQUIREMENTS …23

3.1 Problem Definition


3.2 Requirements Specification
3.3 Planning and Scheduling

CHAPTER 4: SYSTEM DESIGN …30

4.1 Logic Diagram


4.2 ER Diagram

4.3 Data Flow Diagram


4.4 Security Issues
4.5 Test Cases Design

CHAPTER 5: IMPLEMENTATION AND TESTING ....36


5.1 Implementation Approaches
5.2 Coding Details and Code Efficiency
5.2.1 Code Efficiency
5.3 Testing Approach
5.3.1 Functional Testing
5.3.2 Usability Testing
5.3.3 Performance Testing
5.3.4 Security Testing
5.3.5 Compatibility Testing

CHAPTER 6: RESULTS AND DISCUSSION …39


6.1 Results
6.2 Discussions

CHAPTER 7:CONCLUSION …44


7.1 Conclusion
7.2 Future work
Chapter 8 : References …46
FIGURE TABLE

1. Gantt Chart …28

2. Pert Chart …29

3. Logic Diagram …30

4. ER Diagram

5. Data Design

6. Splash Screen …32

7. Activity Diagram …32

8. User Login …32

9. Use case Diagram …32

10. Data flow diagram …33

11. Class Diagram

12. Login Page …29

13. Manage Password

14. Home Page …

15. Schedule List …

16. Add New Bus Time

17. Bus List …


Chapter 1: Introduction
1.1 Background
I am doing the project for BUS TICKET BOOKING SYSTEM. This project
intends to solve the problem faced by the old system. This process is intended to
automate the process of data storage and data retrieval easily. The flow of project
starts when a customer wants to book bus. Electronic tickets, or e-tickets, gives
evidence that their holders have the permission to enter a place of entertainment,
use a means of transportation, or have access to some Internet services.

The design of this online system will be beneficial to the company because it
has not existed before. However, Bus Ticket Booking System enables the customer
to buy bus ticket, make payment, and ask for information online easily.

1.2.1 Objectives
The main objective of the project entire activity is to automate the ticket booking
process of day to day activities of system Library like:

➢ Ticket activities.
➢ Creation of a Customer id.
➢ Assign a bus Tickets according to customer’s demand. Ø Advance
bookings.
➢ Seat booking.
➢ Contact Forms.

1.3 Purpose , Scope and Applicability


1.3.1 Purpose
The solution to this problem is to create an online portal for buying bus ticket
system Customer can buy the bus ticket over the Internet, 24 hours a day, 7 Days a
week and the bus ticket cannot be lost, stolen or left behind. In addition, the online
system lets the customers check the availability of the bus ticket before they buy
bus ticket.

1.3.2 Scope
The scope of a Bus Ticket Booking System project encompasses the development and
implementation of a comprehensive online platform that facilitates the booking of bus tickets.
This includes various key components and functionalities:

1. User Registration and Authentication: Implementing a user registration system where users
can create accounts securely and authenticate their identities. This ensures that only
registered users can access the booking system.

2. Search and Booking Functionality: Providing users with a user-friendly interface to search
for buses based on criteria such as origin, destination, date, time, and preferred seating class.
The system should allow users to view available buses, check seat availability, and book
tickets for their desired journey.

3. Seat Selection and Booking Management: Integrating a seat selection feature that enables
users to choose specific seats or seat types on the bus. Once seats are selected, users should
be able to proceed with the booking process, including making payments and receiving
booking confirmations.

4. Payment Gateway Integration: Integrating secure payment gateways to facilitate online


payments for booked tickets. This involves supporting various payment methods such as
credit/debit cards, net banking, and digital wallets while ensuring the security and integrity
of payment transactions.

5. Booking Management for Users and Admins: Implementing functionalities for users to
manage their bookings, including viewing booking history, canceling or modifying bookings,
and receiving notifications about booking status and updates. Administrators should have
access to an admin panel to manage bus schedules, fares, seat availability, and user accounts.
6. Reporting and Analytics: Developing reporting and analytics features to generate insights
into booking trends, revenue generation, seat occupancy rates, popular routes, and user
preferences. This data-driven approach helps in making informed decisions to optimize bus
services and improve customer satisfaction.

7. Mobile Compatibility and Accessibility: Ensuring that the booking system is mobile-
friendly and accessible across different devices such as smartphones and tablets. This
enhances the convenience for users who prefer to book tickets on-the-go using mobile apps
or responsive web interfaces.

8. Security and Data Privacy: Implementing robust security measures to protect user data,
payment information, and system functionalities. This includes encryption of sensitive data,
secure login mechanisms, regular security audits, and compliance with data privacy
regulations.

By addressing these key components within the scope of the Bus Ticket Booking System
project, the goal is to create a reliable, user-centric, and secure platform that simplifies the
bus ticket booking process for travelers while providing effective management tools for
administrators.

1.3.3 Applicability

A Bus Ticket Booking System project holds significant applicability across various sectors
and user demographics, revolutionizing the way people plan and undertake their journeys.
Primarily, within the travel and transportation industry, this system caters to bus operators,
travel agencies, and passengers alike. For bus operators, the system streamlines ticketing
processes, optimizes seat utilization, and facilitates efficient schedule management. This
leads to improved operational efficiency, reduced overhead costs, and better revenue
management. Travel agencies can integrate the system seamlessly into their offerings,
providing their customers with a comprehensive solution for booking bus tickets, managing
reservations, and accessing real-time travel information.

1.4 Achievement
The achievements of a Bus Ticket Booking System project are multifaceted, encompassing
improvements in user experience, operational efficiency, revenue generation, and data-driven
decision-making within the travel and transportation domain.
1. Enhanced User Experience:
• Simplified and user-friendly interface for booking bus tickets.
• Convenient access via web and mobile platforms, reducing physical visits.
• Seat selection options, digital confirmations, and instant booking notifications
improve user satisfaction.
2. Operational Efficiency:
• Automated booking processes reduce manual errors and streamline operations.
• Real-time seat management optimizes bus occupancy and resource utilization.
• Integrated payment gateways facilitate secure and efficient online transactions.
3. Cost Savings and Resource Optimization:
• Reduced overhead costs associated with traditional ticketing methods.
• Efficient scheduling and seat allocation lead to better resource utilization.
• Automated reporting and analytics tools minimize administrative workload.
4. Revenue Growth and Market Expansion:
• Access to a wider customer base through online channels and mobile
platforms.
• Promotional offers, discounts, and loyalty programs drive repeat bookings and
customer retention.
• Data-driven insights enable dynamic pricing strategies and revenue
optimization.
5. Transparency and Accountability:
• Real-time updates, digital confirmations, and transparent pricing enhance trust
and credibility.
• Users can track bookings, manage changes or cancellations efficiently, and
receive timely notifications about their journey.
6. Data Analytics and Decision Support:
• Capturing and analyzing booking trends, passenger behavior, and revenue
streams.
• Actionable insights empower decision-makers with strategic planning and
business growth opportunities.
• Dynamic pricing adjustments and personalized offerings based on data-driven
strategies.
7. Competitive Advantage and Industry Standards:
• Positioning as a customer-centric and technologically advanced service
provider.
• Meeting industry standards and regulatory requirements for online transactions
and data security.
• Improving brand reputation and market competitiveness in the travel and
transportation sector
1.5 Organization of report
A short overview for the chapters which are included in this report is as followed;
● Chapter 2: System analysis
In this chapter the major focus is on the brief overview about used technologies in the
project.

● Chapter3: Requirement
These chapter focuses on requirements what user is required or supposed from system
to do. During development phase re-validating the requirements with actual
requirement comparison noted in these chapter.
● Chapter 4: System Design
What the system will contained, what are the different modules are discussed in the
section.
● Chapter 5; Implementation and Testing
This chapter is about Implementation of various modules. As the project is proceeding
with the testing the various results are expected during the testing of the project.
● Chapter 6: Conclusion
The significance of project, scope for the project in the near future is all discussed in
this chapter.
CHAPTER 2: System Analysis
System Analysis
❖ After analyzing the requirements of the task to be performed, the next step
is to analyze the problem and understand its context.
❖ First activity in this phase is studying the existing system and other is to
understand the requirements and domain of the new system.
❖ Both the activities are equally important, but the first activity serves as a
basis of giving the functional specifications and then successful design of
the proposed system.

Understanding the properties and requirements of the new system is more


difficult and requires creative thinking and understanding of existing running
system which is also difficult, improper understanding of present system can lead
diversion from solution.

Analysis Model
❖ The model that is basically being followed is the SDLC MODEL, which
states that the phases are organized in a linear order. First of all the
feasibility study is done.
❖ The designs start after the requirement analysis is complete and the coding
begins after the design is complete. Once the programming is completed,
the testing is done. In this model the sequence of activities performed in a
software development project are:-

➢ Requirement Analysis
➢ Project Planning
➢ System Design
➢ Detail Design
➢ Coding
➢ Unit Testing
➢ System integration and testing
2.1 Existing System

The existing Bus Booking System is not completely computerized. The


customer has to visit any booking branch if he wants to book a ticket. Bus scheduling,
ticket booking, payment and many other operations are done manually. This may lead
to incorrect entries and there is a lot of room for errors as the data is not completely
synced. The availability of seats is not centrally maintained and the travel operator is
not fully aware of the availability and occupancy of the seats in his buses. This is the
major bottle neck.

Ø Draw backs of existing system.

Here in the Electronic bus ticketing, a detailed study of existing system is


carried along with all the steps in system analysis. An idea for creating a better
project was carried and the next steps were followed.

▪ Lack of security of data.


▪ More man power.
▪ Time consuming.
▪ Consumes large volume of pare work.
▪ Needs manual calculations.
▪ No direct role for the higher officials.
▪ Damage of machines due to lack of attention.

To avoid all these limitations and make the working more accurately the system
needs to be computerized.

2.2 Proposed System

BUS TICKET BOOKING SYSTEM is based on PHP and is a major project for
students. The aim of proposed system is to develop a system of improved facilities.
The proposed system can overcome all the limitations of the existing system. The
system provides proper security and reduces the manual work. The existing system
has several disadvantages and many more difficulties to work well. The system is
very simple in design and to implement. The system requires very low system
resources and the system will work in almost all configurations. It has got following
features:-

➢ Ensure data accuracy.


➢ Minimize manual data entry.
➢ Minimum time needed for the various processing
➢ Greater efficiency
➢ Better Service
➢ Minimum time required

2.3 Requirement Analysis:

❖ Requirement analysis is a software engineering task that bridges the gap


between the system level software allocation and software design.

❖ It enables the system engineer to specify software function and


performance, indicate software function and performance, indicate
software interface with other system elements, and establish design
constraints that the software must meet.

❖ The information domain of a problem must be represented and understood.

❖ The functions that the software is to perform must be defined

❖ The analysis process should move from essential information toward


implementation detail.
2.4 Hardware Requirement
➢ Processor : Pentium IV
➢ Memory : 8GB RAM
➢ Monitor : CRT or LCD
➢ Keyboard : 105 keys

2.5 Software Requirement

➢ Operating System: Windows XP/NT or Windows 10


➢ Front End: PHP
➢ Back End: MYSQL
➢ Documentation: MS Word
CHAPTER 3: REQUIREMENT
3.1 Problem Definition
The problem definition for a Bus Ticket Booking System project revolves around addressing
the inefficiencies and challenges faced by travelers and bus operators in the traditional ticket
booking process. One of the primary problems is the inconvenience and time-consuming
nature of booking tickets physically at ticket counters or through agents. This process often
involves long queues, limited availability of preferred seats, and manual handling of
transactions, leading to delays and errors.

Another key problem is the lack of real-time information and updates for travelers regarding
seat availability, bus schedules, and booking status. Without access to timely information,
passengers may face difficulties in planning their journeys effectively, especially during peak
travel seasons or when making last-minute bookings.

For bus operators, the manual management of bookings, seat allocations, and payment
processing poses challenges in terms of operational efficiency, resource utilization, and
revenue management. Traditional systems may not provide comprehensive tools for
analyzing booking trends, customer preferences, and route performance, limiting operators'
ability to make data-driven decisions and optimize services.

Key problems to address include:

1. 1Inconvenience of Physical Booking:


• Long queues and wait times at ticket counters or agents.
• Limited availability of preferred seats due to manual handling of bookings.
2. Lack of Real-Time Information:
• Difficulty in accessing real-time updates on seat availability and bus
schedules.
• Challenges in making last-minute bookings or changes without timely
information.
3. Manual Booking Processes:
• Manual handling of ticket bookings, seat allocations, and payment processing.
• Prone to errors, delays, and inefficiencies in managing large volumes of
bookings.
4. Operational Inefficiencies for Bus Operators:
• Resource-intensive processes for managing bookings and seat allocations.
• Limited tools for analyzing booking trends, route performance, and customer
preferences.

Problem Statement:
The problem statement also includes the lack of personalized customer engagement and
loyalty programs, as well as complexities in managing booking modifications and refunds.
Accessibility issues for diverse user groups, including users with disabilities or limited
access to physical ticketing locations, add another layer of challenge to the existing booking
system

Key Objectives:
1. Enhanced User Experience:
a Develop a user-friendly interface for easy navigation and booking.
b Provide real-time updates on seat availability, bus schedules, and
booking status.
c Enable users to select preferred seats and make secure online
payments.
2. Efficient Booking Process:
a Automate booking processes to reduce manual errors and processing
time.
b Streamline seat allocations and booking modifications for seamless
user interactions.
c Implement a user-friendly cancellation and refund policy for customer
satisfaction.
3. Operational Efficiency for Bus Operators:
a Integrate tools for managing bus schedules, seat availability, and fare
structures.
b Implement analytics and reporting features to track booking trends,
route performance, and revenue generation.
c Optimize resource utilization and reduce operational costs through
automated processes.
4. Secure Payment Processing:
a Integrate secure payment gateways to facilitate online transactions.
b Ensure data encryption and compliance with payment industry
standards for data security.
c Implement fraud detection and prevention measures to protect against
payment frauds.
5. Personalized Customer Engagement:
a Implement loyalty programs, discounts, and promotional offers for
customer retention.
b Provide personalized recommendations based on user preferences and
past bookings.
c Enhance communication channels for proactive customer support and
feedback.
6. Accessibility and Inclusivity:
a Develop a mobile-responsive platform accessible across devices for
convenience.
b Ensure accessibility features for users with disabilities, adhering to
inclusivity standards.
c Provide multilingual support to cater to diverse user demographics and
language preferences.
7. Compliance and Data Privacy:
a Ensure compliance with regulatory requirements for online booking
systems.
b Implement data privacy measures to protect user information and
maintain confidentiality.
c Educate users about privacy policies and data handling practices for
transparency

3.2 Requirement Specification


The requirement specification for a Bus Ticket Booking System project encompasses a range
of functionalities and features to create a comprehensive and user-friendly platform for
booking bus tickets online.

Firstly, the system should include a robust user registration and authentication mechanism to
allow users to create accounts securely and access the booking functionalities. This involves
capturing essential user details and implementing authentication protocols to verify user
identities.

Secondly, the core functionality of the system should revolve around search and booking
capabilities. Users should be able to search for buses based on criteria such as origin,
destination, date, and time. The system should provide a list of available buses along with
their schedules and seat availability. Users should then be able to select their preferred seats
from a graphical layout and proceed with the booking process.

Seat management is another crucial aspect that the system needs to address. It should ensure
real-time updates on seat availability, prevent overbooking, and allow for seat selection based
on user preferences. The system should also handle scenarios where users may need to
modify or cancel their bookings, providing a seamless experience while managing booking
changes and issuing refunds if necessary.

Integration with secure payment gateways is essential for facilitating online payments. The
system should support multiple payment options, such as credit/debit cards, net banking, and
digital wallets, ensuring a secure and convenient payment process for users.

Notification and alert mechanisms are vital for keeping users informed about their bookings,
payment status, and any updates or changes related to their journeys. The system should send
timely notifications via email, SMS, or app notifications to ensure users stay updated
throughout the booking process and during their travels.

From an administrative perspective, the system should provide an admin panel with
functionalities to manage buses, routes, fares, seat allocations, and user accounts.
Administrators should have access to reporting and analytics tools to track booking trends,
revenue generation, seat occupancy rates, and other key metrics for efficient business
management and decision-making.
1. User Registration and Authentication:
• Users should be able to register with the system using their email address or
phone number.
• A verification process (e.g., email confirmation, OTP verification) should be
implemented for user authentication and security.
2. Bus Route and Schedule Management:
• Admin should be able to manage bus routes, including adding, editing, and
deleting routes.
• The system should store information about bus schedules, including departure
times, arrival times, and available seats.
3. Ticket Booking and Seat Selection:
• Users should be able to search for available buses based on their source and
destination locations, along with the desired travel date.
• The system should display available buses, their schedules, and the number of
seats available.
• Users should be able to select seats from an interactive seat map and book
multiple seats if needed.
• The booking process should include seat selection, passenger details input, and
payment processing.
4. Payment Gateway Integration:
• Integrate a payment gateway to facilitate secure online payments for booking
tickets.
• Support various payment methods such as credit/debit cards, net banking, and
digital wallets.
5. Booking Management:
• Users and admins should be able to view and manage their bookings,
including canceling or modifying bookings within a specified time frame.
• Send booking confirmation and e-tickets to users via email or SMS.
6. User Profile and Preferences:
• Users should have a profile where they can manage their personal information,
view booking history, and save preferences such as favorite routes or seat
preferences.
• Allow users to opt-in for notifications related to their bookings, such as
departure reminders or schedule changes.
7. Admin Dashboard and Reports:
• Provide an admin dashboard with functionalities to manage buses, routes,
schedules, and user bookings.
• Generate reports such as daily/weekly/monthly booking summaries, revenue
reports, and popular routes analysis.
8. Feedback and Support:
• Include a feedback mechanism for users to rate their experience and provide
suggestions.
• Provide customer support contact information or a helpdesk system for
resolving issues and handling inquiries.
.
3.3 Planning and Scheduling
3.3.1 Planning
Planning for a bus ticket booking system project involves several key steps to ensure its
successful implementation. The first step is to conduct a thorough analysis of requirements
and stakeholders' needs. This includes defining the project scope, identifying target users
(both customers and administrators), and understanding the core functionalities the system
should offer.

Once the requirements are clear, the project team can move on to the design phase. This
involves creating wireframes, mockups, and user interface designs for both the customer-
facing booking portal and the admin dashboard. Design considerations should focus on user
experience, accessibility, and mobile responsiveness to cater to a wide range of users.

Next, the development phase begins, where the actual coding and implementation of the
system take place. It's crucial to follow best practices in software development, such as
modular coding, version control, and testing at each stage of development. The system should
be scalable and flexible to accommodate future enhancements and changes.

During development, integrating a secure payment gateway is essential for handling online
transactions securely. This may involve working with third-party payment providers and
complying with PCI DSS standards for handling cardholder data.

3.3.2 Scheduling
The project schedule is the tool that communicates what work needs to be performed, which
resources of the organization will perform the work and the timeframes in which that work
needs to be performed. The project schedule should reflect all of the work associated without
a full and complete schedule, the project manager will be unable to communicate the complete
effort, in terms of cost and resources, necessary to deliver the project. The project schedule
can be viewed and updated by team members associated with the project, keeping everyone
well informed on the overall project status. Gantt chart shows our project schedule.

3.3.3 Gantt Chart


The Gantt chart begins with the project initialization phase, which includes tasks such as
defining project objectives, gathering requirements, and creating a project plan. During these
two weeks, activities like stakeholder meetings, requirement analysis, and initial resource
allocation are represented. This phase sets the foundation for the entire project and establishes
key milestones for subsequent phases. Following project initialization, the design and
planning phase takes center stage in the Gantt chart. Tasks such as creating wireframes, UI/UX
designs, database schema design, and system architecture planning are mapped out. Design
reviews with stakeholders and iterations based on feedback are also included in this phase. By
the end of week 5, the design phase should be completed, and the project team should have a
clear blueprint for development. The development phase is divided into multiple sprints or
iterations, typically following an Agile methodology. Each sprint, represented as a block in
the Gantt chart, includes tasks related to front-end and back-end development, module
integration, and testing. For example, Sprint 1 might focus on user registration/authentication
and basic UI development, Sprint 2 on bus route management and booking process, and Sprint
3 on payment gateway integration and testing. Regular meetings, code reviews, and testing
cycles are part of each sprint.

On a Gantt chart one can easily see:


● The start date of the project
● What the project tasks are
● When tasks start and finish
● How long each task will take
● How tasks group together, overlap and link with each other
● The finish date of the project.
As development sprints progress, the Gantt chart includes a dedicated block for testing and
quality assurance activities. This phase involves tasks such as unit testing, integration testing,
system testing, and user acceptance testing (UAT). Feedback loops with stakeholders and
end-users are integrated into the chart to accommodate revisions and bug fixes. The testing
phase ensures that the system meets quality standards and is ready for deployment
Fig. 1 Gantt chart
3.3.4 Program Evalution Review Technique (PERT)
The program (or project) evaluation and review technique (PERT) is a statistical tool used in
project management, which was designed to analyse and represent the tasks involved in
completing a given project. Figure shows PERT diagram for activities. PERT diagram shows
activity no, target date, expected date and standard deviation of each activity. The activities
involved are search for project, project approval, planning, requirement & analysis,
documentation, designing, designing complete, database designing, documentation complete,
coding & implementation and last testing.

Fig. 2 PERT Chart


Chapter 4: SYSTEM DESIGN
4.1 Basic Modules:-
The online Bus Ticket booking contains 1 module to work on it.

User:

Here customers can purchase the ticket or reserve their seats by accessing the
system as a guest or as a member. With every purchasing or reservation the system
will generate a reservation id or purchased id for both guest and members at a time.
Once the payment is done customers won’t be able to send the request through the
system to refund the payment if they want to cancel their purchase. Customers can
update their account details as for example: contact number, email address, mail
address etc. If the customers is not registered members then the system will not
have any account for the guest to update at any time they want. So the information
as for example name, address, contact, and email they will provide while
reservation need to make sure they don’t change for any reasons. Registered
Customers are able to cancel their booking although there will be no refund.
4.2 Data Design:

Table for User:

Attribute Description
Custemor_id Int(6) It stores the id of the
custemor
Username Varchar(30) It stores name of the
customer.
password Varchar(30) It stores the password of
customer.
address Varchar(60) It stores the address of
customer.
City Varchar(30) It stores city of customer
for city table.
gender Varchar(6) It stores gender of Customer.

DOB Data() It stores customer DOB.


Mobile no Varchar(10) It stores the Mobile no.
Email Varchar(40) It stores the email_id of
customer.

Table form for Ticket:

Symbol DataType Description

Trans Type Varchar(15) It Stores Transaction type of the


requirement.

Departure_Time Varchar(15) It stores departure time of the person.

Arrival_Time Varchar(15) It stores arrival time of the person.

Departure_Stop Varchar(15) Reference from route detail.

Arrival_Stop Varchar(15) Reference from route detail.

Via Stop Varchar(15) Reference from route detail.

Distance Varchar(15) It stores total of travel distance.

Rent Int(10) Reference from route detail.


4.4 Entity-Relationship Diagram
An entity relationship diagram (ERD) shows the relationships of entity sets stored
in a database. An entity in this context is an object, a component of data. An entity
set is a collection of similar entities. These entities can have attributes that define
its properties.

By defining the entities, their attributes, and showing the relationships between
them, an ER diagram illustrates the logical structure of databases.

ER diagrams are used to sketch out the design of a database. These are three basic
elements in ER models:

❖ Entities: Entities are the “things” about which we seek information.

❖ Attributes: Attributes are the data we collect about the entities.

❖ Relationships: Relationship provides the structure needed to draw the


information from multiple entities.
4.5 Activity Diagram

INTRODUCTION:

The focus of activity modelling is the sequence and conditions for coordinating
lower-level behaviors, rather than which classifiers own those behaviors.

These are commonly called control flow and object flow models.

The behaviors coordinated by these models can be initiated because other behaviors
finish executing, because objects and data become available, or because events
occur external to the flow.
ForUserLogin:-
❖ Use case Diagram:
INTRODUCTION:

USE CASE DIAGRAM is an expression of relations between the use cases in a


specific system or object and the external actors. Use Case expresses the functions of the system
and how the system functions interact with the external actors.

▪ Data Flow Diagram:-


Bus Ticket Booking System Data Flow diagram is often used as a preliminary step to
create an overview of the Bus Ticket without going into great detail, which can later be
elaborated. It normally consists of overall application dataflow and processes of the Bus
Ticket Process. It contains all the user flow and their entities such all the flow of Bus
Schedule, Booking, Ticket Costumer, Ticket, Customer, Bus Route, Payment. All of the
below diagrams has been used for the visualization of data processing and structured design
of the Bus Ticket Booking process.

0
Level 0:-

Level 1:

1
Level 3:-

❖ Class Diagram:
Class diagrams are one of the most useful types of diagrams in UML as they clearly map out
the structure of a system by modeling its classes, attributes, operations, and relationships
between objects. With our UML diagramming software, creating these diagrams is not as
overwhelming as it might appear. This guide will show you how to understand, plan, and create
your own class diagrams.

Basic components of a class diagram


The standard class diagram is composed of three sections:

o Upper section: Contains the name of the class. This section is always required, whether
you are talking about the classifier or an object.

2
o Middle section: Contains the attributes of the class. Use this section to describe the
qualities of the class. This is only required when describing a specific instance of a class.
o Bottom section: Includes class operations (methods). Displayed in list format, each
operation takes up its own line. The operations describe how a class interacts with data.

4.5 Security issues


One of the foremost concerns in a bus ticket booking system is maintaining the privacy and
confidentiality of user data. This includes personal information such as names, contact details,
and payment information. Security measures such as data encryption (using protocols like
SSL/TLS) during data transmission and storage are crucial to prevent unauthorized access and
data breaches. Additionally, access controls should be implemented to ensure that only
authorized personnel can access sensitive data within the system.
Authentication mechanisms play a vital role in verifying the identity of users and preventing
unauthorized access to system resources. A robust authentication system should include
features such as strong password policies, multi-factor authentication (MFA), and session
management to protect against session hijacking. Access control measures, including role-
based access control (RBAC), Handling financial transactions securely is paramount in a bus

3
ticket booking system. Integration with a trusted and PCI DSS-compliant payment gateway is
essential to ensure that credit/debit card information and other payment details are processed
securely. Tokenization techniques can be employed to tokenize sensitive payment data,
reducing the risk of exposing actual card information within the system. It's crucial to regularly
update payment processing components to address vulnerabilities and comply with industry
standardsC: Input validation and sanitization are critical to preventing common web
application vulnerabilities such as SQL injection, cross-site scripting (XSS), and command
injection attacks. Input validation ensures that user inputs meet expected formats and criteria,
while sanitization processes remove or neutralize potentially malicious content from user
inputs. By implementing strict input validation and sanitization routines, the system can
mitigate the risk of malicious input leading to security vulnerabilities.
Conducting thorough security testing and audits is essential to identify and address
vulnerabilities in the system. This includes regular vulnerability assessments, penetration
testing (pen testing), and code reviews to identify security weaknesses and loopholes.
Engaging security experts or ethical hackers to perform penetration testing can help simulate
real-world attacks and identify areas for improvement. Additionally, implementing logging
mechanisms and monitoring tools can aid in detecting and responding to security incidents in a
timely manner.

4.6 Test cases design


1. User Registration and Login: Test cases for user registration and login focus on
ensuring that users can create accounts, log in securely, and access the system as
expected. These test cases include scenarios such as:
• Valid Registration: Verify that users can register with valid details (name,
email, password) and receive a confirmation email or OTP for account
activation.
• Invalid Registration: Test with incorrect or incomplete information and
confirm that appropriate error messages are displayed.
• Email Verification: Ensure that the email verification process works correctly
and activated accounts are accessible for login.
• Successful Login: Verify that users can log in with correct credentials and are
redirected to the appropriate dashboard or landing page.
• Invalid Login Attempts: Test login failures with incorrect credentials and
validate that the system handles them securely, displaying relevant error
messages without revealing sensitive information.
2. Bus Route Management: Test cases related to bus route management validate the
system's ability to manage routes effectively. These test scenarios may include:
• Add New Route: Verify that administrators can add new bus routes with
accurate details such as source, destination, and timings.
• Edit Route: Test the ability to edit existing routes, ensuring that changes
reflect accurately in the system without affecting booked tickets.
• Delete Route: Confirm that deleting a route removes it from the system and
prevents users from booking tickets on that route.
• Conflict Resolution: Test scenarios where route timings overlap or conflict,
ensuring that the system handles conflicts appropriately, perhaps by prompting
for adjustments or notifying administrators.

4
3. Ticket Booking and Seat Selection: This set of test cases focuses on the core
functionality of booking tickets and selecting seats. These cases may cover:
• Search and Availability: Verify that users can search for buses based on
criteria such as source, destination, and date, and see accurate availability of
seats.
• Seat Selection: Test the seat selection process, ensuring that seats are marked
as reserved upon selection and remain unavailable to other users during the
booking process.
• Booking Process: Validate the end-to-end booking process, including entering
passenger details, choosing payment methods, and receiving booking
confirmations.
• Multiple Passenger Booking: Test scenarios where a user books tickets for
multiple passengers in a single transaction, ensuring seats are allocated
accordingly and passenger information is captured accurately.
4. Payment Processing: Test cases related to payment processing ensure secure and
reliable handling of transactions. These may include:
• Successful Payment: Confirm that payments are processed successfully using
valid payment methods and users receive appropriate payment confirmation.
• Failed Payment Attempts: Test scenarios of failed payments due to incorrect
details or insufficient funds, ensuring that users are notified of the failure and
guided to retry or choose alternative payment methods.
• Payment Gateway Integration: Validate the integration with payment
gateways, ensuring secure redirection, handling of payment responses, and
proper error handling for different payment scenarios.
• Refunds and Cancellations: Test ticket cancellations and refunds, verifying
that canceled seats are released, refunds are processed accurately, and users
receive confirmation of refunds.
5. Booking Management and Reporting: These test cases focus on managing booked
tickets and generating reports for administrators. Test scenarios may include:
• View Bookings: Verify that users can view their booked tickets, check booking
details, and access e-tickets for travel.
• Cancel Booking: Test ticket cancellations within the allowed time frame,
ensuring that seats are released, refunds are processed if applicable, and users
receive confirmation of cancellation.
• Admin Reporting: Validate the generation of reports such as booking
summaries, revenue reports, seat occupancy rates, and popular routes analysis
for administrators to monitor system performance and make data-driven
decisions

5
6
Chapter 5: Implementation and Testing
5.1 Code:

1. Login page:
PHP code: -

<!DOCTYPE html>
<html>
<head>
<?php include('header.php') ?>
<?php
// session_start();
// if(isset($_SESSION['login_id'])){
// header('Location:home.php');
// }
?>
<title>Admin Login |Bus Booking</title>
</head>
<style>
body {
background-image: url(./assets/img/bus.jpg);
height: 96vh;
background-position: center; background-
repeat: no-repeat; background-size: cover;
}
</style>
<body id='login-body' class="bg-light">
<div class="card col-md-4 offset-md-4 mt-
4">
<div class="card-header-edge text-white">
<strong>Login</strong>
</div>
<div class="card-body">
<form id="login-frm">
<div class="form-group">
<label>Username</label>
<input type="username" name="username"
class="formcontrol">
</div>
<div class="form-group">
<label>Password</label>
<input type="password" name="password"
class="formcontrol">
</div>
<div class="form-group text-right">
<button class="btn btn-primary btn-
block" name="submit">Login</button> </div>

</form>
</div>
</div>

</body>
<script>
$(document).ready(function(){
$('#login-frm').submit(function(e){
e.preventDefault()
$('#login-frm button').attr('disable',true)
$('#login-frm button').html('Please wait...')
$.ajax({
url:'./login_auth.php',
method:'POST',
data:$(this).serialize(),
error:err=>{
console.log(err)
alert('An error occured');
$('#login-frm button').removeAttr('disable')
$('#login-frm button').html('Login')
},
success:function(resp){
if(resp == 1){
location.replace('index.php?page=home')
}else{
alert("Incorrect username or password.")
$('#login-frm button').removeAttr('disable')
$('#login-frm button').html('Login')
}
}
})

})
})
</script>
</html>

2. Manage Account:
- PHP code: -

<?php session_start();
include('db_connect.php');
$qry = $conn->query("SELECT * FROM users where id =
".$_SESSION['login_id'])->fetch_array();
foreach($qry as $k => $val){
$meta[$k] = $val;
}
?>
<div class="container-fluid">
<form id="manage_user">
<div class="col-md-12">
<div class="form-group mb-2">
<label for="name" class="control-label">Name</label>
<input type="hidden" class="form-control" id="id"
name="id" value='<?php echo isset($meta['id']) ? $meta['id'] : '' ?>' required="">
<input type="text" class="form-control" id="name"
name="name" required="" value="<?php echo isset($meta['name']) ? $meta['name'] :
'' ?>">
</div>
<div class="form-group mb-2">
<label for="username" class="control-label">User
Name</label>
<input type="text" class="form-control" id="username"
name="username" required value="<?php echo isset($meta['username']) ?
$meta['username'] : '' ?>">
</div>
<div class="form-group mb-2">
<label for="password"
class="controllabel">Password</label>
<input type="password" class="form-control" id="password"
name="password" required value="<?php echo isset($meta['password']) ?
$meta['password'] : '' ?>">
</div>
</div>
</form>
</div>
<script>
$('#manage_user').submit(function(e){
e.preventDefault()
start_load()
$.ajax({
url:'./update_account.php',
method:'POST',
data:$(this).serialize(),
error:err=>{
console.log(err) end_load()
alert_toast('An error occured','danger');
},
success:function(resp){
if(resp == 1){
$('.modal').modal('hide')
alert_toast('Account successfully updated','success');
setTimeout(function(){
location.reload()
},500)
}
}
})
})
</script>

3. Home page:
PHP code: -

<header id="header" class="fixed-top">


<div class="container d-flex align-items-center">
<h1 class="logo mr-auto"><a href="./index.php?page=home">Bus Booking
Management System</a></h1>

<nav class="nav-menu d-none d-lg-block" id='top-nav'>


<ul>
<li class="nav-home"><a href="./index.php?page=home">Home</a></li>
<li class="nav-schedule"><a
href="./index.php?page=schedule">Schedule</a></li>
<li class="nav-booked"><a href="./index.php?page=booked">Booked
List</a></li>
<li class="drop-down nav-bus nav-location"><a href="#">Maintenance</a>
<ul>
<li><a href="./index.php?page=bus">Bus List</a></li>
<li><a href="./index.php?page=location">Location List</a></li>

</ul>
</li>
<li class="drop-down nav-user"><a href="#"><?php echo
$_SESSION['login_name'] ?> </a>
<ul>
<li><a href="./index.php?page=user">Users</a></li>
<li><a href="javascript:void(0)" id="manage_account">Manage
Account</a></li>
<li><a href="./logout.php">Logout</a></li>

</ul>
</li>
</ul>
</nav><!-- .nav-menu -->

</div>
</header>
<script>
$(document).ready(function(){
var page = '<?php echo isset($_GET['page']) ? $_GET['page'] : '' ?>';
if(page != ''){
$('#top-nav li').removeClass('active')
$('#top-nav li.nav-'+page).addClass('active')
}
$('#manage_account').click(function(){
uni_modal('Manage Account','manage_account.php')
})
})

</script>
4: Schedule Bus:

PHP Code:

<section id="bg-bus" class="d-flex align-items-center">


<main id="main">
<div class="container-fluid">
<div class="col-lg-12">
<?php if(isset($_SESSION['login_id'])): ?>
<div class="row">
<div class="col-md-12">
<button class="float-right btn btn-primary btn-sm" type="button"
id="new_schedule">Add New <i class="fa fa-plus"></i></button>
</div>
</div>
<?php endif; ?>
<div class="row">
&nbsp;
</div>
<div class="row">
<div class="card col-md-12">

<div class="card-body">
<table class="table table-striped table-bordered" id="schedule-
field">
<colgroup>
<col width="5%">
<col width="10%">
<col width="15%">
<col width="20%">
<col width="10%">
<col width="10%">
<col width="10%">
<col width="10%">
<col width="10%">
</colgroup>
<thead>
<tr>
<th class="text-center">#</th>
<th class="text-center">Date</th>
<th class="text-center">Bus</th>
<th class="textcenter">Location</th>
<th class="textcenter">Departure</th>
<th class="text-center">ETA</th>
<th class="textcenter">Availability</th>
<th class="text-center">Price</th>
<th class="text-center">Action</th>
</tr>
</thead>
<tbody>

</tbody>
</table>
</div>
</div>
</div>
</div>

</div>
</main>
</section>
<script>
$('#new_schedule').click(function(){
uni_modal('Add New Schedule','manage_schedule.php')
})
window.load_schedule = function(){
$('#schedule-field').dataTable().fnDestroy();
$('#schedule-field tbody').html('<tr><td colspan="7" class="text-center">Please
wait...</td></tr>')
$.ajax({
url:'load_schedule.php',
error:err=>{
console.log(err)
alert_toast('An error occured.','danger');
},
success:function(resp){
if(resp){
if(typeof(resp) != undefined){ resp =
JSON.parse(resp) if(Object.keys(resp).length > 0){
$('#schedule-field tbody').html('')
var i = 1 ;
Object.keys(resp).map(k=>{
var tr = $('<tr></tr>');
tr.append('<td
class="textcenter">'+(i++)+'</td>')
tr.append('<td class="">'+resp[k].date+'</td>')
tr.append('<td
class="">'+resp[k].bus+'</td>')
tr.append('<td
class="">'+resp[k].from_location+' - '+resp[k].to_location+'</td>')

tr.append('<td>'+resp[k].time+'</td>')

tr.append('<td>'+resp[k].eta+'</td>')

tr.append('<td>'+resp[k].availability+'</td>')

tr.append('<td>'+resp[k].price+'</td>')
if('<?php echo
isset($_SESSION['login_id']) ? 1 : 0 ?>' == 1){

tr.append('<td><center><button
class="btn btn-sm btn-primary edit_schedule mr-2" data-
id="'+resp[k].id+'">Edit</button><button class="btn btn-sm btn-danger remove_schedule"
data-id="'+resp[k].id+'">Delete</button></center></td>')
}else{
tr.append('<td><center><button class="btn btn-sm btn-primary mr-2 text-white book_now"
data-id="'+resp[k].id+'"><strong>Book Now</strong></button></center></td>')
}
$('#schedule-field
tbody').append(tr)

})

}else{

$('#schedule-field tbody').html('<tr><td
colspan="7" class="text-center">No data.</td></tr>')
}
}
}
},
complete:function(){
$('#schedule-field').dataTable()

manage();
$('.book_now').click(function(){
uni_modal('Book
Details','customer_book.php?id='+$(this).attr('data-id'),1)
})
}
})
}
function manage(){
$('.edit_schedule').click(function(){
uni_modal('Edit New Schedule','manage_schedule.php?id='+$(this).attr('data-id'))
})
$('.remove_schedule').click(function(){
_conf('Are you sure to delete this data?','remove_schedule',[$(this).attr('dataid')])
})
}
function remove_schedule($id=''){
start_load() $.ajax({
url:'delete_schedule.php',
method:'POST', data:{id:$id},
error:err=>{
console.log(err)
alert_toast("An error occured","danger");
end_load()
},
success:function(resp){
if(resp== 1){
alert_toast("Data succesfully deleted","success");
end_load()
$('.modal').modal('hide')
load_schedule()
}
}
})
}
$(document).ready(function(){ load_schedule()
})
</script>
5: Add New Bus Time Schedule:

Php code:
<?php
include('db_connect.php');
if(isset($_GET['id']) && !empty($_GET['id']) ){

$qry = $conn->query("SELECT * FROM schedule_list where id = ".$_GET['id'])-


>fetch_array();
foreach($qry as $k => $val){
$meta[$k] = $val;

}
$bus = $conn->query("SELECT * FROM bus where status = 1");
$location = $conn->query("SELECT id,Concat(terminal_name,', ',city,', ',state) as location
FROM location where status = 1");
?>
<div class="container-fluid">
<form id="manage_schedule">
<div class="col-md-12">
<div class="form-group mb-2">
<label for="bus_id" class="control-label">Bus Name</label>
<input type="hidden" class="form-control" id="id" name="id" value='<?php echo
isset($_GET['id']) ? $_GET['id'] : '' ?>' required="">
<select name="bus_id" id="bus_id" class="form-control" required>
<option value="" <?php echo isset($meta['bus_id']) &&
$meta['bus_id'] > 0 ? '' : 'selected' ?> disabled="">Select Here</option>
<?php while($row = $bus->fetch_assoc()){ ?>
<option value="<?php echo $row['id'] ?>" <?php echo
isset($meta['bus_id']) && $meta['bus_id'] == $row['id'] ? 'selected' : '' ?>><?php echo
$row['bus_number'] . ' | '.$row['name'] ?></option>
<?php } ?>
</select>
</div>
<div class="form-group mb-2">
<label for="from_location" class="control-label">From</label>
<select name="from_location" id="from_location" class="form-control" required>
<option value="" <?php echo isset($meta['to_location']) &&
$meta['from_location'] > 0 ? '' : 'selected' ?> disabled="">Select Here</option>
<?php while($row = $location->fetch_assoc()){ ?>
<option value="<?php echo $row['id'] ?>" <?php echo
isset($meta['from_location']) && $meta['from_location'] == $row['id'] ? 'selected' : ''
?>><?php echo $row['location'] ?></option>
<?php } ?>
</select>
</div>
<?php
$location = $conn->query("SELECT id,Concat(terminal_name,', ',city,',
',state) as location FROM location where status = 1");
?>
<div class="form-group mb-2">
<label for="to_location" class="control-label">To</label>
<select name="to_location" id="to_location" class="form-control" required>
<option value="" <?php echo isset($meta['to_location']) &&
$meta['to_location'] > 0 ? '' : 'selected' ?> disabled="">Select Here</option>
<?php while($row2 = $location->fetch_assoc()){ ?>
<option value="<?php echo $row2['id'] ?>" <?php echo
isset($meta['to_location']) && $meta['to_location'] == $row['id'] ? 'selected' : ''
?>><?php echo $row2['location'] ?></option>
<?php } ?>
</select>
</div>
<div class="form-group mb-2">
<label for="departure_time" class="control-label">Departure
Time</label>
<input type="text" class="datetimepicker form-control"
id="departure_time" name="departure_time" value="<?php echo isset($meta['departure_time'])
? date('Y/m/d H:i',strtotime($meta['departure_time'])) : '' ?>">
</div>
<div class="form-group mb-2">
<label for="eta" class="control-label">Estimated Arrival Time</label>
<input type="text" class="datetimepicker form-control" id="eta" name="eta" value="<?php echo
isset($meta['eta']) ? date('Y/m/d H:i',strtotime($meta['eta'])) : '' ?>">
</div>
<div class="form-group mb-2">
<label for="availability" class="control-label">Availabilty</label>
<input type="number" maxlength="4" class="form-control text-right" id="availability"
name="availability" value="<?php echo isset($meta['availability']) ?
$meta['availability'] : '' ?>">
</div>

<div class="form-group mb-2">


<label for="price" class="control-label">Price</label>
<input type="number" maxlength="20" class="form-control text-right"
id="price" name="price" value="<?php echo isset($meta['price']) ? $meta['price'] : '' ?>">
</div>
</div>
</form>
</div>
<script>
$('#manage_schedule').submit(function(e){
e.preventDefault() start_load() $.ajax({
url:'./save_schedule.php',
method:'POST',
data:$(this).serialize(),
error:err=>{
console.log(err)
end_load()
alert_toast('An error occured','danger');
},
success:function(resp){
if(resp == 1){
end_load()
$('.modal').modal('hide')
alert_toast('Data successfully saved','success');
load_schedule()
}
}
})
})
$('.datetimepicker').datetimepicker({
format:'Y/m/d H:i',
startDate: '+3d'
});
</script>

6: Bus List

Php code:

<section id="bg-bus" class="d-flex align-items-center">


<main id="main">
<div class="container">
<div class="col-lg-12">
<div class="row">
<div class="col-md-12">

<button class="float-right btn btn-primary btn-sm" type="button" id="new_bus">Add New <i


class="fa fa-plus"></i></button>
</div>
</div>
<div class="row">
&nbsp;
</div>
<div class="row">
<div class="card col-md-12">

<div class="card-body">
<table class="table table-striped table-bordered" id="bus-
field">

<thead>

<tr>
<th class="text-center">#</th>
<th class="text-center">Bus No.</th>
<th class="text-center">Bus Name</th>
<th class="text-center">Action</th>
</tr>
</thead>
<tbody>

</tbody>
</table>
</div>
</div>
</div>
</div>

</div>
</main>
</section>
<script>
$('#new_bus').click(function(){
uni_modal('Add New Bus','manage_bus.php')
})
window.load_bus = function(){
$('#bus-field').dataTable().fnDestroy();
$('#bus-field tbody').html('<tr><td colspan="4" class="text-center">Please
wait...</td></tr>')
$.ajax({
url:'load_bus.php',
error:err=>{
console.log(err)
alert_toast('An error occured.','danger');
},
success:function(resp){
if(resp){
if(typeof(resp) != undefined){
resp = JSON.parse(resp)
if(Object.keys(resp).length > 0){
$('#bus-field tbody').html('') var i = 1
;
Object.keys(resp).map(k=>{
var tr = $('<tr></tr>');
tr.append('<td
class="textcenter">'+(i++)+'</td>')

tr.append('<td class="text-center">'+resp[k].bus_number+'</td>')

tr.append('<td>'+resp[k].name+'</td>')

tr.append('<td><center><button class="btn btn-sm btn-primary edit_bus mr-2"


dataid="'+resp[k].id+'">Edit</button><button class="btn btn-sm btn-danger remove_bus"
dataid="'+resp[k].id+'">Delete</button></center></td>')
$('#bus-field tbody').append(tr)

})

}else{
$('#bus-field tbody').html('<tr><td

colspan="4" class="text-center">No data.</td></tr>')


}
}
}
},
complete:function(){ $('#bus-
field').dataTable()
manage();
}
})
}
function manage(){
$('.edit_bus').click(function(){
uni_modal('Edit New Bus','manage_bus.php?id='+$(this).attr('data-id'))
})
$('.remove_bus').click(function(){
_conf('Are you sure to delete this data?','remove_bus',[$(this).attr('data-id')])
})
}
function remove_bus($id=''){
start_load() $.ajax({
url:'delete_bus.php',
method:'POST', data:{id:$id},
error:err=>{
console.log(err)
alert_toast("An error occured","danger");
end_load()
},
success:function(resp){
if(resp== 1){
alert_toast("Data succesfully deleted","success");
end_load()
$('.modal').modal('hide')
load_bus()
}
}
})
}
$(document).ready(function(){ load_bus()
})

</script>
7 Bus Booked List:

<section id="bg-bus" class="d-flex align-items-center">


<main id="main">
<div class="container-fluid">
<div class="col-lg-12">
<?php if(isset($_SESSION['login_id'])): ?>
<div class="row">
<div class="col-md-12">

</div>
</div>
<?php endif; ?>
<div class="row">
&nbsp;
</div>
<div class="row">
<div class="card col-md-12">

<div class="card-body">
<table class="table table-striped table-bordered"
id="booked-field">

<thead>
<tr>
<th class="text-center">#</th>
<th class="text-center">Ref. No.</th>
<th class="text-center">Name</th>
<th class="text-center">Qty</th>
<th class="text-center">Amount</th>
<th class="text-center">Status</th>
<th class="text-center">Action</th>
</tr>
</thead> <tbody> </tbody> </table>
</div>
</div>
</main>
</section>
<script>
$('#new_schedule').click(function(){
uni_modal('Add New Schedule','manage_schedule.php')
})
window.load_booked = function(){
$('#booked-field').dataTable().fnDestroy();
$('#booked-field tbody').html('<tr><td colspan="7" class="text-center">Please wait...</td></tr>')
$.ajax({
url:'load_booked.php',
error:err=>{
console.log(err)
alert_toast('An error occured.','danger');
},
success:function(resp){
if(resp){
if(typeof(resp) != undefined){
resp = JSON.parse(resp) if(Object.keys(resp).length > 0){
$('#booked-field tbody').html('') var i = 1 ;
Object.keys(resp).map(k=>{ var tr =
$('<tr></tr>'); tr.append('<td class="text-
center">'+(i++)+'</td>') tr.append('<td
class="">'+resp[k].ref_no+'</td>') tr.append('<td
class="">'+resp[k].name+'</td>') tr.append('<td
class="">'+resp[k].qty+'</td>') tr.append('<td
class="">'+resp[k].amount+'</td>')
tr.append('<td class="">'+(resp[k].status == 1 ? 'Paid' :'Unpaid')+'</td>')

tr.append('<td><center><button
class="btn btn-sm btn-primary mr-2 text-white edit_booked" data-id="'+resp[k].schedule_id+'"
databid="'+resp[k].id+'"><strong>Edit</strong></button></center></td>')
$('#booked-field
tbody').append(tr)

})

}else{
$('#booked-field tbody').html('<tr><td
colspan="7" class="text-center">No data.</td></tr>')
}
}
}
},
complete:function(){
$('#booked-field').dataTable()
$('.edit_booked').click(function(){
uni_modal('Edit
Booked','customer_book.php?id='+$(this).attr('data-id')+'&bid='+$(this).attr('data-bid'),1)
})
}
})
}

$(document).ready(function(){
load_booked()
})
</script>

4.2 Testing Approach

Testing a Bus Booking System requires a comprehensive approach to ensure its


functionality, usability, performance, and security. Here's a testing approach tailored for
such an application:
1. Functional Testing: - Unit Testing: Developers write unit tests to verify the
functionality of individual components or modules in isolation. This ensures that each part
of the application behaves as expected and can help catch bugs early in the development
process. - Integration Testing: Integration tests verify that different components of the
application work together seamlessly. This includes testing API endpoints, database
interactions, and third-party integrations to ensure data flow and communication between
components is correct. - End-toEnd Testing: End-to-end tests simulate real user
interactions with the application, from the user interface to the backend systems. This
ensures that the entire application functions correctly from a user's perspective, including
navigation, form submissions, and data processing.

2. Usability Testing: - User Experience (UX) Testing: UX testing evaluates the overall
user experience of the application, including navigation, layout, and ease of use. Testers
assess whether users can accomplish tasks efficiently and intuitively, providing feedback
on any usability issues or areas for improvement. - Accessibility Testing: Accessibility
testing ensures that the application is usable by people with disabilities, including those
using screen readers, keyboard navigation, or assistive technologies. Testers verify that the
app complies with accessibility standards such as WCAG (Web Content Accessibility
Guidelines).

3. Performance Testing: - Load Testing: Load testing evaluates the application's


performance under expected and peak load conditions. This involves simulating multiple
users accessing the application simultaneously to identify performance bottlenecks, such
as slow response times or server errors. - Stress Testing: Stress testing assesses the
application's resilience under extreme load conditions beyond its capacity. Testers push the
application to its limits to determine how it behaves under stress, including monitoring for
crashes, errors, or resource exhaustion. - Scalability Testing: Scalability testing verifies the
application's ability to handle increasing loads by adding resources or scaling out
infrastructure components. This ensures that the application can accommodate growing
user demand without sacrificing performance or reliability.

4. Security Testing: - Vulnerability Assessment: Security testing identifies potential


vulnerabilities in the application, such as SQL injection, cross-site scripting (XSS), or
insecure authentication mechanisms. Testers use automated tools and manual techniques
to uncover security flaws and assess their severity. 57 - Penetration Testing: Penetration
testing, or ethical hacking, involves attempting to exploit vulnerabilities in the application
to assess its security posture. Testers simulate real-world attacks to identify weaknesses in
the application's defenses and provide recommendations for mitigation. - Data Privacy
Testing: Data privacy testing ensures that the application handles sensitive user data
securely and complies with data protection regulations such as GDPR. Testers verify that
personal information is encrypted, stored securely, and accessed only by authorized users.

5. Compatibility Testing: - Browser Compatibility Testing: Browser compatibility testing


verifies that the application functions correctly across different web browsers and
versions, ensuring a consistent user experience for all users. - Device Compatibility
Testing: Device compatibility testing ensures that the application works seamlessly on
various devices, including desktops, laptops, tablets.
Chapter 6: Results and Discussions
6.1 Results

1. Login page: -
2. Manage Password: -
3.Home page: -
4. Schedule List: -
5: ADD New Bus Time –
5. Bus List: -
6. Booked Bus List : -
6.2 Discussions

In the discussion section, the focus is on analyzing the outcomes and implications of the
project's development and implementation. This involves critically evaluating the
effectiveness of various components, such as the user registration and login systems, content
presentation methods, and overall user experience. Furthermore, discussions may delve into
any challenges encountered during the development process, as well as the strategies
employed to overcome them. Additionally, the discussion may explore potential areas for
further improvement and future development, based on feedback from users and
observations gathered during testing phases. Overall, the discussion section serves as a
platform for reflecting on the project's successes, shortcomings, and opportunities for
growth, ultimately informing future iterations and enhancements.

From the moment users register on our platform, they are greeted with a seamless and
intuitive registration page, where they can create an account and personalize their
experience. We prioritize user privacy and security, ensuring that their data is protected
while providing them with a smooth onboarding process.
Allow users to create accounts or log in using existing credentials.Provide a search interface where
users can enter their journey details (e.g., source, destination, date) and view available bus
options. They should be able to select seats and book tickets. Display a seat map for each bus
showing available and booked seats. Allow users to select their preferred seats. Integrate with
payment gateways to facilitate secure online payments. Allow users to view their booking history,
cancel bookings if allowed, and modify details if permitted. Send booking confirmations,
reminders, and updates via email or SMS. Provide an admin interface to manage buses, routes,
fares, user accounts, bookings, and generate reports.
Chapter 7: Conclusion and Future work
7.1 Conclusion:

A bus booking system revolutionizes the way travelers plan and secure their journeys, offering
unparalleled convenience and efficiency. With just a few clicks or taps, users can effortlessly
browse through available routes, check seat availability, and reserve tickets from the comfort of
their homes or while on the move. This seamless process not only saves valuable time but also
minimizes the risk of errors associated with traditional booking methods. The system's userfriendly
interface ensures a smooth experience, providing real-time updates and intuitive navigation. By
automating the booking process and integrating with secure payment gateways, the system
streamlines operations for both passengers and bus operators, optimizing resource utilization and
enhancing customer satisfaction. With robust architecture and advanced technologies powering its
backend, including cloud infrastructure for scalability and reliability, the bus booking system stands
as a testament to modern innovation in the transportation industry, catering to the evolving needs of
travelers and facilitating the seamless flow of people across diverse destinations.
At its core, a bus booking system represents a paradigm shift in how people engage with public
transportation, transcending geographical boundaries and logistical challenges. By harnessing the
power of technology, it empowers travelers with unprecedented control and flexibility over their
journeys, enabling them to explore new destinations or commute with ease. Furthermore, the
system fosters transparency and accountability, providing users with access to comprehensive
information about routes, fares, and available amenities. This transparency builds trust and
confidence among passengers, fostering long-term loyalty and patronage. Moreover, the system's
adaptability and scalability ensure its relevance in a dynamic and evolving transportation
landscape, where changing passenger preferences and market dynamics necessitate continuous
innovation and optimization. In essence, the bus booking system represents a pivotal step towards a
more connected, accessible, and efficient public transportation ecosystem, enriching the lives of
millions of travelers worldwide.
The implementation of a bus booking system not only modernizes the booking process but also
catalyzes broader societal benefits. By facilitating smoother travel experiences, it encourages
greater utilization of public transportation, thereby reducing traffic congestion, carbon emissions,
and reliance on individual vehicles. This shift towards sustainable mobility aligns with broader
environmental and urban planning goals, contributing to cleaner, more livable cities. Moreover, the
accessibility and inclusivity inherent in the system ensure that transportation services are available
to all segments of society, regardless of geographical location, income level, or physical ability. As
such, the bus booking system serves as a catalyst for social equity and mobility justice &
promoting.
7.2 Future work:

Integration of Emerging Technologies: As emerging technologies such as artificial intelligence


(AI), machine learning (ML), and Internet of Things (IoT) continue to evolve, integrating them into
the bus booking system can unlock new capabilities. AI and ML algorithms can be leveraged for
predictive analytics to anticipate demand, optimize route planning, and personalize user
experiences. IoT-enabled sensors can provide real-time data on bus occupancy, temperature, and
maintenance needs, improving operational efficiency and passenger safety.
Enhanced User Experience: Future developments in user interface design, augmented reality
(AR), and virtual reality (VR) could revolutionize the user experience. AR and VR technologies can
offer immersive previews of bus interiors, seating arrangements, and onboard amenities, helping
users make informed booking decisions. Voice-enabled interfaces and chatbots powered by natural
language processing (NLP) can provide personalized assistance and streamline customer support
interactions.
Smart Ticketing Solutions: Moving towards smart ticketing solutions such as contactless
payments, mobile ticketing, and digital wallets can enhance convenience and security for
passengers. Integration with blockchain technology can ensure transparent and tamper-proof
ticketing transactions while enabling seamless interoperability across different transportation
networks and modes.
Sustainability Initiatives: With growing emphasis on sustainability and environmental
conservation, future bus booking systems may prioritize eco-friendly options, such as promoting
low-emission buses, incentivizing shared rides, and integrating carbon offset programs into booking
processes. Smart incentives and rewards systems can encourage eco-conscious travel behavior
among passengers.
Data-driven Insights and Personalization: Leveraging big data analytics and machine learning
algorithms, bus booking systems can derive actionable insights from vast amounts of passenger
data. These insights can inform strategic decision-making, such as optimizing pricing strategies,
route planning, and service offerings. Additionally, personalized recommendations based on user
preferences and past travel behaviors can enhance customer loyalty and satisfaction.
Collaborative Ecosystems: Future bus booking systems may evolve into integrated mobility
platforms, fostering collaboration among multiple transportation providers, including buses, trains,
ride-sharing services, and micromobility options. Seamless intermodal connectivity, combined with
comprehensive journey planning and ticketing solutions, can offer passengers a truly
interconnected and hassle-free travel experience.
Chapter 8: References
1. REFERANCE:- These projects was impossible to be a success without the
support and help from the experience guide at company, the books and mainly
the Internet really prove it for us the “Information Highway”. Everything was
really easy to find out on the Internet Book reference.

2. WEBSITES: 
3. https://www.w3schools.com/
4. https://youtu.be/oJ9iTFF5FDs
5. https://youtu.be/PX3arEQ9ru8
6. https://www.makemytrip.com/bus-tickets/

You might also like