Soumya - Mini - Project - Report
Soumya - Mini - Project - Report
Submitted By
Soumya Ranjan Jena
(2224100031)
CERTIFICATE
This is to certify that the project report entitled “ONLINE BUS RESERVATION
SYSTEM” being submitted by Mr. Soumya Ranjan Jena bearing the registration no:
2224100031 in partial fulfillment for the award of the Degree of Master of Technology in
Computer Science and Application to the Odisha University of Technology and Research is a
record of bonafide work carried out by him under my guidance and supervision.
The results embodied in this project report have not been submitted to any other
University or Institute for the award of any Degree or Diploma.
DECLARATION
ACKNOWLEDGEMENT
I would like to express my sincere gratitude to my advisor, Mrs. Rojalin Mallik, Professor,
Department of computer science and application whose knowledge and guidance have
motivated me to achieve goals. He has consistently been a source of motivation,
encouragement, and inspiration. The time I have spent working under his supervision has truly
been a pleasure.
I take it as a great privilege to express our heartfelt gratitude to Mrs. Rojalin Mallik, for his
valuable support and to all senior faculty members of the CSA department for their help during
my course. Thanks to programmers and non-teaching staff of CSA.
Finally, special thanks to my parents for their support and encouragement throughout my life
and this course. Thanks to all my friends and well-wishers for their constant support.
The Online Bus Booking Reservation System is a web-based application designed to streamline
and simplify the process of reserving bus tickets for travelers. With the increasing popularity
of online booking platforms, this system provides an efficient and convenient solution for both
passengers and bus operators.
The system allows users to search for available bus routes, view schedules, select seats, and
make reservations from the comfort of their homes or any location with internet access. It
eliminates the need for physical visits to bus terminals or relying on telephone reservations,
saving time and effort for travelers.
CONTENTS
Chapter 1- Introduction 9
1.1-Introduction
1.2-Project scope
1.3-Module Description
1.4-Existing System
1.5-Proposed System
Chapter 8- Testing 38
8.1- Types of Testing
8.2- Test Cases
FIG 1: SDLC 16
E-R diagram 29
1.1. Introduction
• The project entitled “Online Bus Reservation System” is focused on to provide
numerous benefits and conveniences for both passengers and bus operators.
• It outlines the purpose of the system, its significance, and the objectives of the project.
It also introduces the key components and functionalities of the system.
• An online bus reservation system is a web-based platform that allows users to conveniently
search for available bus routes, view schedules, select seats, and make reservations. It eliminates
the need for physical visits to bus terminals or relying on telephone reservations. Users can easily
specify their departure and arrival locations, travel dates, and passenger details.
1. The Admin Panel facilitates interaction with the client-side interface, allowing
administrators to monitor and manage the system's operations.
2. The Admin Panel provides the ability to search for bus schedules based on various parameters
such as route, date, and time. This feature assists administrators in retrieving specific schedule
information.
3. The Admin Panel enables administrators to view and manage a comprehensive list of
bus schedules available in the system. They can add, edit, or delete schedules as
needed.
4. Administrators have the capability to make reservations on behalf of users, assisting in situations
where manual assistance is required or for special cases.
5. Administrators can access and manage user reservations, including modifying or canceling
bookings as per user requests or system requirements.
6. Administrators can add, edit, or delete bus details, including bus types, seating capacity, and other
relevant information. They can also manage location information, such as adding new routes or
modifying existing ones.
This module allows users to create accounts, log in securely, and manage their
personal information.
It enables administrators to add, edit, and delete bus routes, including details such as
departure and arrival locations, distance, and duration.
It handles the actual booking and reservation process, including seat availability
checks, and fare calculation.
This module allows administrators to create and manage bus schedules for different
routes, specifying departure times, fares, and available seats.
This module handles the management of reservations made by users. It allows users to view
their reservations, and modify booking details.
1.4. Existing System
On the internet, there are already several academic management systems available such
as RedBus, MakeMyTrip , Goibibo , Abhibus , Busbud etc.
Still there exists some drawbacks in the existing system, such as:
● The user interface of existing systems may be outdated or poorly designed, making it
difficult for users to navigate, search for buses, and make reservations. Complicated
and non-intuitive interfaces can result in a poor user experience and deter users from
using the system.
● Existing systems may provide limited or incomplete information about bus schedules,
routes, fares, and seat availability. Users may face difficulties in finding accurate and
up-to-date information, leading to inconvenience and potential booking errors.
● Some existing systems may not allow users to easily modify or cancel their
reservations online. Users may need to contact customer support or visit physical ticket
counters, causing inconvenience and additional effort.
Addressing these drawbacks in the development of an improved online bus reservation system can
significantly enhance the user experience, increase efficiency, and improve customer satisfaction.
Once the programmers start building the tool the programmers need lot of external
support. This support can be obtained from senior programmers, from book or from websites.
Before building the system, the above consideration is taken into account for developing the
proposed system.
● A Research Paper on “Design and Development of Online Bus Ticket Reservation System" by
Sachin S. Totade and Dr. P. S. Sonule.
Product perspective → The software product is a Web application. The application will be
made up of two parts, one administrator who has all the rights and the other user who has
limited rights to handle the application. The three users of the system, namely the bus
coordinator (Admin) and passengers (User) interact with the system in different ways.
Product Functions→ First of all it will authenticate the user whether he is Admin or Users;
the unauthorized person can’t get access to the application. The admin will be able to Add,
delete, and modify user’s details. He can also Add, delete and modify medicine details. He can
use this application to check the evaluations and no. of medicine and users’ prescription
uploaded in this system.
Safety Requirements→ All the data will be saved to database for safety purpose so there
will be no data loss. These data can be accessed only by an authorized person so data theft is
also not possible in this application.
Economic Feasibility→ The project has shown the economic feasibility by the study
of the fact that by using this software the increased number of the customers can be given
service effectively and efficiently and can save a lot time and saving time means saving money.
The cost and benefit analysis has shown that cost that have incurred in developing the project
is less than the benefits that the project is going to provide once it is developed, so this project
has passed the feasibility test.
Behavioral Feasibility→ The User also interested in this project, as it will help them
to do work with ease and efficiently without complexity, so they supported the development
of this project with full enthusiasm. This shows the behavioral feasibility of the project.
In order to develop the project “Online Bus Reservation System” we have adopted the
Iterative Enhancement Model also known as Incremental Model. This model removes the
shortcoming of waterfall model. Since many facts of this system are already known. It is not a
new concept and hence no research is required. A working version can be easily created and
hence the system can start working. Rest of the functionalities can be implemented in the next
iteration and can be delivered later. As the requirement analysis is also not required. It not being
a new technology risk involved is also less. So, one need not perform detailed risk analysis. If
redevelopment Admin is less than development can be started with less number of people and
in next increments others can be involved. As this model combines the advantage of waterfall
model and prototyping, clients are always aware of the product being delivered and can always
suggest changes and enhancements and can get them implemented. As less amount of customer
communication is required one need not apply spiral model in which all types of analysis are
done in detail. As the deadline is affordable one need not to for Rapid Application Development
model. Iterative enhancement model is useful when less manpower is available forsoftware
development and the release deadlines are specified. It is best suited for in house product
development, where it is ensured that the user has something
to start with. The complete product is divided into releases and the developer delivers the
product release by release.
● CSS
● Javascript
● SVG
▪ Backend
● PHP
● MySQL
● 4 GB RAM
● 1TB HDD
6.1. Scope
In this section we define the scope of the design effort. The design phase is an
important part of the system development phase. A good design of the system needs
creativity and flair from the designer and is the key to effective and successful engineering.
The following are the basic objectives of the software design process:
In the project, the design phase has been identified as one of the most crucial
documents. In this phase, we have identified the various aspect of the “Online Bus
Reservation System”, which have to be implemented as subsystems and their further
components.
The system model chosen for the software project is the prototyping model. It begins
with requirement gathering. The overall objectives of the software are well defined, known
requirements are identified and an area where further definition is mandatory has been
outlined. After this the software process is initiated and a prototype is built and then it is
evaluated by the farmers and dealers to refine requirements for the software to be developed.
A prototype is a working system that is developed to test the ideas about the new
system and prototyping is a process of building a model of the system to be developed.
This approach is used in our project because it is difficult to know all the requirements
in the beginning of the project. Such situation arises when no other system like
proposed one is built earlier.
The complete system of our project is based on iterative model where the user keeps
specifying the requirements according to the model made available and the changes are
incorporated into the system to build a better model. In this type of approach, we will
develop a prototype and show it to the doctor and patient. Then are verifies the prototype. In
case if there are some suggestions from them then again that functionality is added to the
system and again the administrator evaluates it. This cycle gets repeated till the time the user
is completely satisfied with the prototype. Then the actual project is built and implemented
thereafter.
6.3. Use-Case Diagram.
6.4. Use Case Description
Admin Login
Description: This use case involves a registered admin logging into their account on the
online bus reservation system.
Actors: Admin
Flow: The admin enters their login credentials (username/email and password). The system
verifies the credentials and grants access to the user account.
Search Bus Schedules
Description: This use case allows users to search for available bus schedules based on
specific criteria.
Actors: User
Flow: The user enters the departure and destination locations, travel date, and any other
relevant preferences. The system retrieves and displays matching bus schedules.
Select Seats
Description: This use case enables users to select seats for their bus reservation.
Actors: User
Flow: The system presents the user with a visual representation of the bus layout and
available seats. The user selects the desired seats based on availability and personal
preference.
Make Reservation
Description: This use case allows users to make a reservation for a selected bus schedule
and seats.
Actors: User
Flow: The user confirms the reservation details, including the selected bus schedule, seats,
and passenger information. The system processes the reservation and generates a booking
confirmation.
Manage Reservation
Description: This use case allows users to view, modify, or cancel their existing
reservations.
Actors: User
Flow: The user accesses their reservation history, selects a specific reservation, and performs
actions such as modifying passenger details or canceling the reservation. The system updates
the reservation accordingly.
Admin Manage Bus
Description: This use case allows the admin to manage bus details, such as adding new
buses, editing bus information, or removing buses from the system.
Actors: Admin
Flow: The admin logs into the admin panel, accesses the bus management section, and
performs actions such as adding new buses, updating bus details, or removing buses from the
system.
Admin Manage Schedules
Description: This use case enables the admin to manage bus schedules, including adding
new schedules, modifying existing schedules, or canceling schedules.
Actors: Admin
Flow: The admin accesses the schedule management section, selects a specific schedule, and
performs actions such as adding new schedules, updating departure times, or canceling
scheduled trips
6.5. ER Diagram
6.6. Activity Flow Diagram
6.7. Data Flow Diagram
Zero level
1st level
2vd level
Chapter 7. Code Snippe
Admin Page
Frontend
<header id="header">
<div class="container d-flex align-items-center">
<h1 class="logo mr-auto"><a href="./index.php?page=home">OBRS Admin Panel</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-booked"><a href="./index.php?page=booked">Reservations</a></li>
<li class="drop-down nav-bus nav-location"><a href="#">Services</a>
<ul>
<li><a href="./index.php?page=bus">List Bus</a></li>
<li><a href="./index.php?page=location">List Location</a></li>
</ul>
</li>
<li class="nav-schedule"><a href="./index.php?page=schedule">Manage Schedule</a></li>
<li class="drop-down nav-user"><a href="#"><?php echo $_SESSION['login_name'] ?> </a>
<ul>
<!-- <li><a href="./index.php?page=user">Manage User</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>
Backend
<!DOCTYPE html>
<html>
<head>
<?php include('header.php') ?>
<?php
// session_start();
// if(isset($_SESSION['login_id'])){
// header('Location:home.php');
// }
?>
<title>Admin Login |Online Bus Reservation</title>
</head>
<style>
body {
background-image: url(./assets/img/bsimgstat.png) ;
height: 100%;
background-position: center;
background-repeat: no-repeat;
/* background-size: stretch; */
}
</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">
<p><b>Admin Login Panel</b></p>
<div class="form-group">
<label>Username</label>
<input type="username" name="username" class="form-control">
</div>
<div class="form-group">
<label>Password</label>
<input type="password" name="password" class="form-control">
</div>
<div class="form-group text-right">
<button class="btn btn-success btn-block" name="submit">Login as Admin</button>
<br><a href="./index.php">Back to Home</a>
</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('Checking details...')
$.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>
Account Manage
<!DOCTYPE html>
<html>
<head>
<?php include('header.php') ?>
<?php
// session_start();
// if(isset($_SESSION['login_id'])){
// header('Location:home.php');
// }
?>
<title>Admin Login |Online Bus Reservation</title>
</head>
<style>
body {
background-image: url(./assets/img/bsimgstat.png) ;
height: 100%;
background-position: center;
background-repeat: no-repeat;
/* background-size: stretch; */
}
</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">
<p><b>Admin Login Panel</b></p>
<div class="form-group">
<label>Username</label>
<input type="username" name="username" class="form-control">
</div>
<div class="form-group">
<label>Password</label>
<input type="password" name="password" class="form-control">
</div>
<div class="form-group text-right">
<button class="btn btn-success btn-block" name="submit">Login as Admin</button>
<br>
<a href="./index.php">Back to Home</a>
</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('Checking details...')
$.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>
Login Page
<?php
include 'db_connect.php';
session_start();
extract($_POST);
$password = md5($password);
$qry = $conn->query("SELECT * FROM users where username='$username' and password = '$password' ");
if($qry->num_rows > 0){
foreach($qry->fetch_array() as $k => $val){
if($k != 'password')
$_SESSION['login_'.$k] = $val;
}
echo 1;
}else{
echo 2;
}
?>
Chapter 8: Testing
Testing
Software testing is a process used to identify the correctness, completeness and quality
of developed computer software. It includes a set of activities conducted with the intent of
finding errors in software so that it could be corrected before the product is released to the end
users. In other word software testing is an activity to check that the software system is defect
free. Software testing is primarily a broad process that is composed of several interlinked
processes. The primary objective of software testing is to measure software health along with
its completeness in terms of core requirements. Software testing involves examining and
checking software through different testing processes.
▪ Errors Free - Identifying technical bugs/errors and ensuring the software is error-
free
This phase determines the error in the project. If there is any error then it must be removed
before delivery of the project.
Unit Testing: - Unit testing focuses verification effort on the smallest unit of software design
– the module. Using the detail design description as a guide, important control paths are tested
to uncover errors within the boundary of the module. The relative complexity of tests and the
errors detected as a result is limited by the constrained scope established for unit testing. The
unit test is always white box oriented, and the step can be conducted in parallel formultiple
modules. Unit testing is normally considered an adjunct to the coding step. After source level
code has been developed, reviewed, and verified for correct syntax, unit test case design begins.
Integration Testing - A level of the software testing process where individual units are
combined and tested as a group. The purpose of this level of testing is to expose faults in the
interaction between integrated units.
System Testing - Software is only one element of a larger computer-based system. Ultimately,
software is incorporated with other system elements (e.g. new hardware, information), and a
series of system integration and validation tests are conducted. Steps taken during software
design and testing can greatly improve the probability of successful software integration in the
larger system.
There are many types of system tests that are worthwhile for software-based systems: -
Usability Testing - Usability Testing is a type of testing done from an end- user’s
perspective to determine if the system is easily usable.
Functionality testing - Tests all functionalities of the software against the requirement.
Stress tests – Stress tests are designed to confront programs with abnormal situations.
Profile Page
List of Reservation
Bus List
Chapter 11: Conclusion
Conclusion
The Online Bus Reservation System has been computed successfully and was also tested
successfully by taking "Test Cases". It is user friendly, and has required options, which can
be utilized by the user to perform the desired operations.
The development and implementation of the Online Bus Reservation System have successfully achieved
its objectives of providing a convenient and efficient platform for bus ticketing and reservations.
Through this project, we have witnessed the transformation of the traditional bus booking process into a
streamlined and user-friendly online system.
The Online Bus Reservation System offers numerous benefits to both passengers and bus operators.
Passengers can easily search for available bus routes, view schedules, check seat availability, and make
reservations from the comfort of their homes or any location with internet access. The system provides
real-time updates, ensuring accurate information is available to users and reducing the chances of
booking errors or inconveniences. The integration of secure payment gateways enables smooth and safe
transactions, giving users multiple payment options to choose from. Users can also manage their
reservations, modify details, or cancel bookings when needed.
In conclusion, the Online Bus Reservation System project has successfully delivered a reliable, user-
friendly, and efficient solution for bus ticketing and reservations. It has contributed to the digitization and
optimization of the bus transportation industry, providing a convenient and streamlined experience for
passengers while improving operational efficiency for bus operators.
Chapter 12: References
The following reference has been used to develop the project “Online Bus Reservation System”: -
Books
▪ PHP and MySQL Web Development by Luke Welling and Laura Thomson
▪ Database System by Abraham Silberschatz, Henry F. Korth, and S. Sudarshan
▪ Node.JS Web Development by David Herron
▪ Web Development with HTML, CSS, and JavaScript" by Jon Duckett:
Web Source
▪ www.w3schools.com
▪ www.wikipedia.org
▪ www.javatpoint.com
▪ www.stackoverflow.com
▪ https://www.mongodb.com/
▪ www.tutorialspoint.com
▪ www.jsp.net
▪ www.javatpoint.com