Major Proj
Major Proj
A PROJECT REPORT
of
BACHELOR OF ENGINEERING
IN
COMPUTER SCIENCE ENGINEERING
Submitted by
APRIL 2025
CERTIFICATE
System” is the bonafide work of “Karra Ram Teja, Stuti Paras Jain
and Pratima Gurnani” who carried out the project work under my
supervision.
SIGNATURE SIGNATURE
Aman Sharma for his time and efforts he provided throughout the year.
Your useful advice and suggestions were really helpful to me during the
Management System.
Pratima Gurnani
TABLE OF CONTENT
ABSTRACT iv
CHAPTER 1 INTRODUCTION
2
1.1 OBJECTIVES
2
1.1.1 Primary Objectives
2
1.1.2 Secondary Objectives
3
1.2 PROBLEM STATEMENT
4
1.3 NEED FOR THE PROJECT
11
2.3.2 Software Requirements
CHAPTER 3 SYSTEM DESIGN
13
3.1 PROJECT DESCRIPTION
14
3.2 DATAFLOW DIAGRAM
3.3 E-R DIAGRAM 15
16
3.4 TABLES
3.5 METHODOLOGY 18
18
3.5.1 Requirement Analysis
19
3.5.2 System Design
19
3.5.3 Backend development
19
3.5.3.1 Tools and Technologies
21
3.5.3.2 REST API Implementation
21
3.5.3.3 Tools for Testing
21
3.5.3.4 Backend Features
22
3.5.4 Frontend development
24
3.5.5 Module development
REFERENCES 37
LIST OF TABLES
16
3.2 Bus Table
17
3.3 BusStop Table
17
3.4 Driver Table
LIST OF FIGURES
DB Database
UI User Interface
overcrowded buses, and safety concerns are daily struggles for commuters.
app for passengers with a Spring Boot backend and a driver dashboard to
by drivers) and send emergency alerts via a one-tap SOS button. Drivers
behavior improves user experience. Built with Spring Boot (backend) and
wait times, and makes public transport more user- friendly and efficient.
CHAPTER 1
INTRODUCTION
The public city transport is very important for all cities, mainly for all big
cities and tourist centres. When inhabitants use public transport vehicles
instead of the private cars the environment pollution is reduced and also
the noise in the city is lower.
The use of bus traveling is a large growing business in India and other
countries; hence bus reservation system deals with maintenance of
records of each passenger who had reserved a seat for a journey. It also
includes maintenance of information like schedule and details of each bus.
Also, we get to know that there are many operations, which they have to
do manually. It takes a lot of time and causes many errors. Due to this,
sometimes a lot of problems occur and they were facing many disputes
with customers. To solve the above problem, and further maintaining
records of items, seat availability for customers, price of per seat, bill
generation and other things, we are offering this proposal. [8]
With the steady growth of urban populations, public transport systems are
facing increasing demand and challenges. BusBuddy is designed to
address these challenges by offering a smarter, user-friendly platform for
both passengers and transport operators. The project aims to:
SYSTEM ANALYSIS
2.2.2 Limitations
Database PostgreSQL
From the passenger’s side, the app allows users to search for buses by
entering a source and destination. It supports detection of intermediate
stops, making the search more flexible. Passengers can view real-time
seat availability at each stop as updated by drivers, helping them avoid
crowded buses. The app also shows estimated arrival and destination
times. Users can save favorite routes for faster access and use the
Emergency SOS feature to request immediate help in case of distress.
Additionally, the feedback system allows passengers to rate and review
services to support continuous improvement.
3.2 DATAFLOW DIAGRAM
The Data Flow Diagram illustrates the flow of data between various users
and components in the BusBuddy system. Passengers interact with the
system to view bus schedules, estimated arrival and destination times,
submit feedback, or flag issues. Drivers can log in to update seat
availability. Admins access the system to review feedback, manage flags,
and oversee the operational data.
The ER diagram represents the data model for the BusBuddy system. It
highlights the relationships between different entities such as User, Driver,
Bus, and associated data like Feedback, and Route.
User: Contains fields like user ID, name, and password. A user can
book tickets and submit feedback.
Driver: Represents the drivers who operate buses. Each driver is
associated with a Bus.
Bus: Central to the system, it is linked with both User and Driver. A
bus can trigger an SOS alert and operates on a specific route.
Ticket: Connected to users and used to represent a booking.
Feedback: Submitted by users, typically after a bus ride.
Route: Each bus operates on a route.
SOS Alert: Triggered by a bus in case of emergencies.
The system design phase focused on creating a clear blueprint for the
application's architecture. This included:
Data Flow Diagrams (DFD): Designed to model how data flows
between users (passengers, drivers, and admins) and the system
components.
Entity Relationship Diagrams (ERD): Created to define the
relationships between database entities such as users, buses, drivers,
routes, and feedback.
Modular Approach: The system was divided into three core
modules:
1. Frontend: Developed using Flutter to ensure cross-platform
compatibility and an intuitive user interface.
2. Backend: Built using Spring Boot (Java) to handle business logic,
API integrations, and data processing.
3. Database: Managed using PostgreSQL to store structured data
efficiently and maintain relational integrity.
HTTP Methods:
Error Handling: Ensured secure API design with proper error codes
and messages for invalid requests. [3]
Postman: Used for API testing and documentation. Postman helped verify
API endpoints, validate responses, and automate testing workflows. [17]
1. Passenger Module:
2. Driver Module:
3. Admin Module:
Figure 4.2 is the Driver Login Screen for the BusBuddy app, designed to
facilitate secure access for registered drivers. The interface features a
clean and minimalist layout with two input fields: one for entering the
Bus Number and another for the Mobile Number, both essential for
authentication. Below the input fields, a prominent "Submit" button
allows users to proceed with the login process.
Figure 4.3 Driver Dashboard
Figure 4.3 serves as the main dashboard for a driver within the
BusBuddy app. It provides essential information about the driver,
including their name ("Sid"), bus number (9A), and contact details
(1212121212). The interface clearly displays the route details, indicating
the journey from Durgapura to Narayan Singh Circle, with a visual
arrow emphasizing the direction of travel. At the bottom, a prompt
encourages the driver to "Slide to Start Journey," accompanied by an
illustration of a bus, ensuring a user-friendly and intuitive experience for
initiating the trip.
Figure 4.4 Bus Stops availability Screen
Figure 4.4 serves as a detailed view of bus seat availability for route
number 9A. It provides users with real-time information about the
occupancy levels at each stop, displayed through percentage indicators
(0%, 50%, 75%, and 100%). Each stop is clearly labeled with its name
(e.g., Durgapura, Tonk Fatak, Rambagh, Ajmeri Gate) and includes an
icon to denote its location. The design is clean and user-friendly,
enabling passengers to quickly assess the availability of seats at
upcoming stops.
Figure 4.5 User Main Screen
Figure 4.6 is the Online Bus Ticket Booking System interface, designed
to facilitate seamless journey planning for users. It features a clean and
intuitive layout that guides users through the booking process. At the
top, followed by input fields for specifying the origin ("From") and
destination ("To"). Users can also select the booking date and time,
ensuring they choose their preferred travel schedule. Below these fields,
the section titled "Passengers" allows users to specify the number of
children, adults, and seniors traveling, with corresponding fare details
displayed dynamically. The total fare is calculated in real-time, and a
prominent "Submit" button at the bottom enables users to finalize their
booking efficiently.
Figure 4.7 Emergency Assistance Prompt