Ilovepdf Merged
Ilovepdf Merged
A.Y. 2023-2024
B. K. BIRLA COLLEGE, KALYAN
‘EMPOWERED AUTONOMOUS STATUS’
(Affiliated to University of Mumbai)
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.
External Examiner
(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 :
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.
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.
4. ER Diagram
5. Data Design
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.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.
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.
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
To avoid all these limitations and make the working more accurately the system
needs to be computerized.
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:-
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.
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
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.
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:
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.
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:
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:
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.
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.
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
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: -
</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:
<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']) ){
}
$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>
6: Bus List
Php code:
<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>')
})
}else{
$('#bus-field tbody').html('<tr><td
</script>
7 Bus Booked List:
</div>
</div>
<?php endif; ?>
<div class="row">
</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>
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).
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:
2. WEBSITES:
3. https://www.w3schools.com/
4. https://youtu.be/oJ9iTFF5FDs
5. https://youtu.be/PX3arEQ9ru8
6. https://www.makemytrip.com/bus-tickets/