Bus Track App
Bus Track App
Prepared By Id number
In today's urban environments, efficient public transportation systems are essential for managing traffic
congestion and improving commuter experiences. The Bus Tracker Android App aims to enhance the
accessibility and reliability of public bus services by providing real-time tracking and information to
users.
The app leverages GPS technology to track the location of buses in real time, allowing users to view
bus routes, estimated arrival times, and current locations on an interactive map. Users can easily plan
their journeys, track bus arrivals, and receive notifications for service updates.
Key features include user-friendly interface design, integration with Firebase for real-time data updates,
and secure user authentication for personalized experiences. The app not only benefits commuters by
reducing waiting times and improving travel planning but also provides valuable analytics to
transportation authorities for optimizing bus routes and schedules.
The Bus Tracker Android App represents a significant advancement in urban mobility solutions,
promoting sustainable and efficient public transportation for city dwellers.
1
Acknowledgement
We extend our heartfelt gratitude to all those who have contributed to the success of this group project.
Each member of our team has played a crucial role, and we would like to express our sincere
appreciation to everyone involved.
First and foremost, we are grateful to our project Advisor, Ato. Getahun Gezu, for their invaluable
guidance, support, and encouragement throughout the duration of this project.
We would like to thank our fellow team members, for their dedication, collaboration, and commitment
to excellence. Each member brought unique skills and perspectives, contributing to the project's success
and making it a rewarding collaborative effort.
We also acknowledge the support of our friends and family members who have stood by us with
patience and understanding, offering encouragement and motivation throughout this journey.
Lastly, Thank you all for your unwavering support, teamwork, and dedication to making this group
project a success.
1
1
List of Abbreviations
AACATA – Addis Ababa City Administration Transport Authority
Apps - Applications
AR – Augmented Reality
CD – Continuous Development
HD – High Definition
Ms – Microsoft
UI – User Interface
WIFI
1
I
Table of Contents
Chapter one: Introduction ............................................................................................................... 1
1. Interview............................................................................................................................... 1
2. Observations ......................................................................................................................... 2
II
..................................................................................................................................................... 3
III
Chapter Three................................................................................................................................ 20
3.4.4.2 Constraints.................................................................................................................. 30
IV
List of Tables
Table 1: WBS ................................................................................................................................ 11
VI
Table 31:Use Case Description for login ...................................................................................... 34
VI
I
List of Figures
Figure 1: system development life cycle methodology .................................................................. 3
IX
Chapter one: Introduction
1
the sector. Some of the problems are; the user is unable to view or locate nearby buses in their
vicinity, hindering their ability to plan and navigate their daily commute effectively, the user is
unable to view the real-time location of a bus, users are unable to determine whether the bus
they intend to board is already full or has available seating, users are unable to reserve a place in
a bus, resulting in inconvenience and potential disruption to their travel plans.
Therefore, there is a pressing need to develop a comprehensive bus tracker application thatcan
address these issues and improve the overall quality of the bus transportation system.
1.3 Objective
1
1.3.1 General objective
The general objective of this project is to develop a real time bus tracker and reservation android
application for city buses.
1.4 Scope
The system exclusively supports the English language. This means that all features,
functionalities, and content within the application will be available and accessible only in English.
The user interface, instructions, prompts, and any other form of communication within the
application will be in English. The application will not provide any support or translation forother
languages.
The system is limited to Addis Ababa. The features and functionalities of the application are
specifically designed to cater to the needs and requirements of the residents and businesses in
Addis Ababa. The application may not be compatible or relevant for users outside of the city.
By focusing solely on Addis Ababa, the application can provide more accurate and localized
information, services, and solutions.
The Application only supported by android devices running version 4 and above. Users with
android devices running on version 4 or any subsequent versions can easily access and utilize the
application. By targeting the specific range of android versions, large majority of users can benefit
from the features and functionalities offered by the application.
1
1.5 Tools and Methodologies
1. Interview
We are going to use these data collection method on the first two phase of system development
life cycle. On these data collection method we are going to interview different persons on the
sector. We use the interview method because of many advantages on it hence we can find
1
pure and neat data it’s also the most effective way to collect data.
2. Observations
The next method to collected data is observation. Observation has many advantages to be
chosen on our research some of them are us followed:-
The data can be recorded systematically.
To find a reliable information.
It’s easy to observer certain group or individual whom are difficult to access.
It’s also important to identify peoples to be interviewed
Have a very low cost in compared to others.
3. Document analyses
The last way of data collection method to be used on the project. These data collection method
helps us to understand the existing system implementation. The way to implement document
analyses by taking different data’s from the city bus provider. These method also helps as to
analyze documents done before to find reliable information.
2
Figure 1: system development life cycle methodology
3
single codebase.
Dart: The programming language used by Flutter.
Firebase: A suite of cloud-based tools by Google, often used with Flutter apps. For our bus tracker app,
we use:
- Firestore: A NoSQL database to store user, bus, track, route, and other related data.
- Firebase Authentication: To handle user authentication and authorization.
- Firebase Cloud Messaging: To send push notifications to users.
- Firebase Analytics: To track user interactions within the app
Website tool:
React: popular javascript frameworks/libraries for building interactive user interface and single – page
application.
Next.js: is a react based framework that enable developers to build server side rendered (SSR) and static
web applications.
Tailwind css: is a utility first css framework for rapidly building customer user interfaces. Instead of
writing custom css, we use predefined classes to style our HTML element directly.
Code editor:
VS code: a popular code editor with many extension for web and app development.
1.6 Beneficiaries
Bus tracker applications provide a wide range of benefits some of them are:-
Stakeholders
For the enterprise:
Get more customer
Based on customer request distribute bus to more traffic
For customer:
Get information for the bus
To save the wasting time
When the bus is wait the user take another option
For government
Convert traditional system to automated system
Increase customer need
4
For the team develop the program
Enhance knowledge and skill
Tangible benefits
It is project benefit that can convert into monetary values. For this project, we have identified
5
the following tangible benefits (per year).
Intangible benefits
Enhance reliability.
Knowledge gain by project developer.
Increasing the competiveness of the individual.
More timely, update and accurate information.
Improved productivity.
Improved the morale of our team.
Facilitating information processing of our team.
Faster decision making on the team member
Enhance customer satisfaction
Minimize error prone
Provide secure and reliable service
Reduce dispute among passenger when they use hand recording.
Progress customer service
Provide convenient way to use the application
1.7 Schedule
6
Project Implem
intiation Develop entation
and ment and
plannin System System and mainten
g analysis design testing ance
12/1/2023
4/25/2024
3/4/2024
5/30/2024
1/7/2024
0
10
20
Duration(Days)
30
40
50
60
7
Chapter Two: Project Management
2.1 Introduction
A project is a unique, transient endeavor undertaken to achieve planned objectives, which could
be defined in terms of outputs, outcomes or benefits. A project is usually deemed to be a success
if it achieves the objectives according to their acceptance criteria, within an agreed timescale and
budget. Time, cost and quality are the building blocks of every project and projectmanagement is
the application of processes, methods, skills, knowledge and experience to achieve specific
project objectives according to the project acceptance criteria within agreed parameters. Project
management has final deliverables that are constrained to a finite timescale and budget, A key
factor that distinguishes project management from management is that it hasa final deliverable
and a finite timespan, unlike management which is an ongoing process. Because of this a project
professional needs a wide range of skills; often technical skills, and certainly people management
skills and good business awareness.
In order to create the aforementioned final deliverables, project management has various core
components and subtasks undertaken by the project manager or the project management team
starting with defining the reason why a project is necessary; then capturing project requirements
followed by specifying quality of the deliverables themselves once that is done estimating
resources and timescales that are needed to fulfill the deliverables is required; then preparing a
business case to justify the investment is made, after which securing corporate agreement and
funding commences. It is also important to be developing and implementing a management plan
for the project to ensure project success and throughout every step of the way leading and
motivating the project delivery team is an activity that shouldn’t be ignored.
Project management can be used by anyone to manage projects, even if they are not formally
called a ‘project manager’ in order to ensure project success regardless of the title a person
assuming the position of ‘project manager’ must balance the triple constraint and be able to make
effective tradeoffs with respect to the project goals. It is also important to understand the project
context or environment which refers to the influences which will affect the project both internally
and externally that can be environmental, social, technological and economic.
8
Work breakdown structure
Work breakdown structure (WBS) in project management is a method for completing a complex,
multi-step project. The goal of WBS is to make a large project more manageable. Breaking it
down into smaller chunks means work can be done simultaneously by different team members,
leading to better team productivity and easier project management.
The WBS on our project was built using the top-down approach because the order which we will
be preparing our project document has been predetermined by the academic committee, this
approach will make it easier for us to organize our work.
9
Activitie Phases Activities or task Duratio Depen Deliverables
s n dence
Number
1 Project Background research 21 days - Chapter one
initiation Data collection documentation
Identify data collection
methodology
Understanding the
problem of existing
system
Scheduling
Making ready the
interview questions
2 Project Develop WBS 10 days 1 Chapter two
planning Prepare and document documentation
resource plan
Prepare and document
financial plan.
Identify and document
team organization
structure
Identify and document
process model
Prepare and document
risk management plan
10
Modeling diagrams
11
Table1:WBS
12
2.3 Resource planning
Resource planning involves determining what physical resources and what quantities of each
should be used and when they would be needed to perform project activities.
13
Designer Optimize database performance.
14
the design is implemented accurately.
• Conduct user research and incorporate
user feedback into the design.
Quality Develop and execute test plans. 1
7 Assurance Identify and report bugs or issues.
Specialist Collaborate with developers to address
concerns.
Table 2: Human Resource Plan
15
2.3.2.2 Software Resources
16
Android version
5.1 or higher
Telegram Desktop Used to exchange information
and ideas among team members
Table 4:Software Resource Plan
18
Windows 10/11 and - Free -
android OS
Telegram desktop - Free -
Table 7: Software purchase estimates
19
autonomy and decision-making power, democratic decentralization can help to create a more
flexible and responsive project environment.
20
software
developers who are
working on the
frontend and
backend of the
software
3.Bezawit Design Manager Overseeing the • +251 927000768
Alemayehu and Business design process of • bezawit27@gmail.com
Analyst the project, fromthe
initial idea to
the final product
4. Bezawit Testing Manager lead and managethe • +251 927865543
Tsebelu testing process and • bezat12@gmail.com
strategy for the
software project
5. Fikir Kindu Marketing manager lead and managethe • +251 90 637 4823
and testing process and • fikirkin11@gmail.com
Customer Support strategy for the
software project
Table 10: Team organization
21
A risk management technique is usually seen in the software project plan. This can be divided
into risk mitigation, monitoring and management plan. In this project all works are done as part
of risk analysis. As part of the overall project plan project manager generally uses this risk MMM
plan.
In some software teams, risk is documented with the help of a Risk Information Sheet (RIS). This
RIS is controlled by using a database system for easier management of information i.e creation,
priority ordering, searching, and other analysis. After documentation of RMMM and start of a
project, risk mitigation and monitoring steps will start.
22
2.7.1 Risk Items Table
The table describes the risk related with the project.
-Proper supervision and honest communication among members regarding deadlines and
ramping up work
Risk Monitoring
-Regular checkups by project manager to see if deadlines are being met
23
Risk Management
-Update the schedule accordingly when change occurs
24
- Prioritize tasks or activities requiring more attention
Risk Monitoring
-consulting schedule before and after performing an activity to check for proper sequencing
of activities
Risk Management
-Go back to previous activity and track the next activity in the sequence and then proceed to
performing the proper activities sequentially
Table 13:Making sequence mistakes
Risk Mitigation
-Follow predetermined resource plan
Risk Monitoring
-perform resource allocation checkup
Risk Management
Reallocate resource to their desired purpose
Error
Risk Mitigation
-be sensitive and accurate during estimating costs
Risk Monitoring
-continually assess expenses
25
Risk Management
-recalibrate budget in accordance with the market at the time
-Reduce extra expenses
Table 15:cost estimation errors
Failures
Risk Mitigation
-plan resources
26
-have a clear goal and objectives
Risk Monitoring
-continuously track resource utilization and communicate goal and objectives b/n teammembers
-use appropriate integration method
Risk Management
-consult experts regarding integration
27
Risk ID:R8 Risk name: absence of
leadership
Risk Mitigation
- focus on choosing the right leader that have what it take to be a leader and check if they
have the experience.
Risk Monitoring
28
-check if the chosen leader has any problem that can make them absent.
Risk Management
-give the leader appropriate task that can make the leader more interested and help him on the
leader need.
Table 19: Absence of leadership
29
Chapter Three
3.1 Introduction
System analysis answers the question of who will use the system, what the system will do, and
where and when it will be used. During this phase, the project team investigates any current
system(s), identifies opportunities for improvement, and develops a concept for the new system.
The system proposal is the initial deliverable that describes what business requirements the new
system should meet. System analysis is conducted for the purpose of studying a system or its parts
in order to identify its objectives. It is a problem solving technique that improves the system and
ensures that all the components of the system work efficiently to accomplish their purpose.
30
In this chapter we have included information about the current system and proposed system,
functional and non-functional requirements to describe how the system will accomplish the
objectives described in the first chapter.
31
Ensuring that buses arrive on time to their designated routes is crucial for maintaining efficiency
and customer satisfaction. This task falls into the hands of controllers, who play a vital role in
monitoring and managing the movement of buses to ensure they adhere to their schedules without
any delays. Controllers are responsible for overseeing the entire operation of bus services, from
monitoring the progress of buses in real-time to making quick decisions to address any issues that
may arise. They work closely with drivers, deployers, and other staff members to coordinate the
smooth running of services and minimize disruptions that could lead to delays.
In the event of a maintenance issue occurring, the driver is responsible for promptly reporting the
issue to the deployer. The deployer will then escalate the report to the deployment manager, who
will assess the severity of the issue and determine the appropriate course of action. If necessary, the
deployment manager will notify the maintenance body to address and resolve the maintenance issue
efficiently and maintenance body will address the issue and resolve it in a timely manner. This
structured reporting process ensures that maintenance issues are promptly addressed and resolved
to maintain the safety and operational efficiency of the vehicles.
The bus system in Addis Ababa is known for being affordable and accessible to a wide range of
residents. However, the system does face challenges such as overcrowding during peak hours,
limited routes to certain areas of the city, and occasional delays due to traffic congestion.
Currently there is no dedicated public bus tracker system with in the country, Passengers waiting at
bus stops often find themselves in a state of uncertainty and frustration when they are unaware of
32
the arrival time of their bus. Without a real-time bus tracking system in place, passengers are left to
rely on outdated schedules or simply wait without any indication of when their bus will arrive. This
lack of information can lead to long wait times, missed connections, and overall dissatisfaction with
the public transportation system. Implementing a real-time bus tracking system would greatly
improve the passenger experience, providing them with accurate and up-to-date information on the
arrival times of buses, reducing wait times, and increasing overall efficiency and satisfaction for all
passengers.
Overall, the city bus system in Addis Ababa plays a crucial role in providing transportation for
residents and visitors alike, and efforts are being made to improve and expand the system in order
to better serve the growing population of the city.
3.3 Proposed system
34
Reliability: The application should be reliable for users whenever they need it. It should
minimize system failures and users can access the application consistently.
Integration: The application should be able to integrate with external systems such as
goggle map, to provide accurate information to users.
Scalability: The application should be able to handle an increasing demand without
degradation in its performance.
Learnability: the system should be learnable in one week.
35
Figure 3:Essential use case diagram
3.4.1.2 Use Case Documentation
Use case name: Uses bus
Use case Id: UC01
Description: user use this use case to use bus
Pre-condition:
Post-condition: user will use the bus
Actor: Passenger
Basic course of action:
1. The passenger wants to use bus
2. The passenger goes to bus stop
36
3. The passenger wait a bus
4. The passenger checks the route of the bus when the bus comes
5. Get on a bus
6. Use case ends
Alternative course of action:
A: The bus does not go to the direction passenger wants
A4. The passenger does not get on the bus
A5. Use case continues on step 3 of BCA.
Table 22:Uses bus
37
A: The bus is full
A4. The ticketer informs the passenger there is no free
space
A5. Use case continues on step 1 of BCA
Table 24:Check the bus
38
Alternative course of action:
A: there is no available driver
A2. Use case ends
39
Basic course of action:
1. The manager want to view report
2. The manager check if there is generated report
3. The manager view the report
4. Use case ends
Alternative course of action:
A: There is no generated report
A2. The manager asks employee to generate report
A3. The Employee gives the generated report to the
manager
A4. Use case continues on step 3 of BCA
Table 26:View report
40
the UI, but not the exact details. Essential UI prototype represent user interface requirements in
a technology independent manner, just as essential use case models do for behavioral
requirements. An essential user interface prototype is effectively the initial state-the beginning
point-of the user interface prototype for a system.it models user interface requirements,
requirements that are evolved through analysis and design to result in the final user interface for
a system, enabling the team to explore usability aspects of the system. Below you will find an
array of UI prototype depicting the various component the android app.
41
Figure 5: Home and Station page UI
42
Figure 6: Buses and Bus information UI
43
Figure 8: Sign in and Driver UI
Figure 9: Route UI
44
Figure 9: Feedback UI
45
Figure 10: Ticketer page UI
46
Figure 7:UI flow diagram
47
Figure 8:UI flow diagram
48
Description: The location data provided by the app should be accurate and reliable to ensure users
can trust the information
49
ID: T003
Name: User Privacy
Description: The app must adhere to privacy regulations and not share user location data with third
parties without explicit consent.
ID: T004
Name: Accessibility
Description: The app should be accessible to all users, including those with disabilities, by following
accessibility guidelines and standards.
ID: T005
Name: Notifications
Description: Users should receive timely notifications about changes in bus schedules, delays, or
other relevant information.
ID: T006
Name: User Authentication
Description: If the app includes features like saving favorite routes or personalized settings, it should
implement secure user authentication mechanisms.
ID: T007
Name: Feedback Mechanism
Description: Users should be able to provide feedback about the app's performance, accuracy, and
usability to help improve its quality.
ID: T008
Name: Data Usage
Description: The app should use data efficiently to minimize bandwidth usage and reduce data
costs for users.
ID: T008
Name: Compliance
Description: Ensure compliance with local regulations and laws governing public transportation
apps, including data protection and accessibility standards.
3.4.4.2 Constraints
A constraint is a restriction on the degree of freedom we have in providing a solution, these are
some of the constraint that apply to our project:-
1. ID: A001
Name: Device Compatibility
Description: The app should be compatible with a wide range of Android devices to ensure
accessibility for all users.
50
2. ID: A002
Name: Location Accuracy
Description: Depending on the device's GPS capabilities and environmental factors, the app
should provide accurate location data to track buses effectively.
3. ID: A003
Name: Server Reliability
Description: The backend server responsible for collecting and disseminating bus location
data should be robust and reliable to minimize downtime and disruptions.
4. ID: 004
Name: Battery Consumption
Description: The app should minimize battery consumption to ensure it doesn't drain the user's
device quickly, especially during prolonged usage.
5. ID: A005
Name: Data Encryption for Privacy
Description: Implement a check to ensure that sensitive user data, especially location
information, is encrypted during transmission and storage. This check adds an extra
layer of security, safeguarding user privacy and preventing unauthorized access to
sensitive information within the bus tracker app.
6. ID: A006
Name: Consistent Data Format
Description: Enforce a check to ensure that data received from various transit providers
follows a consistent format. This ensures that the app's data processing logic remains
stable and can effectively handle information from different sources, minimizing errors
and enhancing the overall reliability of the bus tracker system.
Id B001
51
app.
Id B002
Likelihood Between 6 to 12
Id B003
Description Implementing multi-language support in
the bus tracker app can have a positive
impact by increasing user accessibility
and expanding the user base to speakers
of various languages.
Likelihood Between 1 to 2 year since launch.
Impact A common feature in global applications.
Table 29:change case 3
Id B004
Description Introducing augmented reality (AR) way
finding in the bus tracker app can have a
groundbreaking positive impact by
revolutionizing user experience and
providing enhanced navigation
capabilities.
Likelihood Between 6 months to 2 year since
52
Impact Revolutionary user experience, improved
navigation for users.
Description: The admin register new staff members in to the system by adding their personal
details and assigning relevant roles.
Pre-Condition(s): The admin must be logged into the system with appropriate permissions
53
The admin must have all requested personal details of the new staff members
Actor(s): Admin
Includes: Login
Extends:
5. The system prompts the admin to fill in details of the new staff.
8. The system validates the entered information and registers the new staff member.
Actor(s): Admin
Includes: Login
Extends:
3. The system displays a list of all staff members registered in the system.
4. The admin selects the staff member to delete from the system.
5. The system prompts the admin for confirmation before deleting the staff member.
Description: The user add new bus in to the system by adding their details.
Pre-Condition(s): The admin must be logged into the system with appropriate permissions
The admin must have all requested personal details of the new bus
Actor(s): Admin
55
Includes: Login
Extends:
5. The system prompts the admin to fill in details of the new bus.
6. The user fills all the requested details accurately.
8. The system validates the entered information and registers the new bus.
Description: The user updates the details of an existing bus in the system.
Pre-Condition(s): The user must be logged into the system with appropriate permissions
Actor(s): Admin
Includes: Login
56
Extends:
4. The user selects the bus for which he/she want to update the information.
5. The system prompts the user to edit details of the selected bus.
8. The system validates the changes and updates the bus information.
Description: The user deletes the details of an existing bus in the system.
Pre-Condition(s): The user must be logged into the system with appropriate permissions
The bus to be deleted must already exist in the system
Actor(s): Admin
Includes: Login
Extends:
57
Basic course of action:
1. The user wants to delete bus.
3. The system presents a list of buses for the administrator to choose from.
Pre-Condition(s): The user must be logged into the system with appropriate permissions
Actor(s): Admin
Includes: Login
Extends:
Pre-Condition(s): The user must have their user name and password.
Post condition: The user successfully login to the system.
Includes :
59
6. The system validates the form
7. The system checks user name and password from database entity
8. The system display home page
9. Use Case end
Alternative course of Action :
A: The provided user name or password is invalid
A6: The system informs the user the provided user name/password is invalid.
A7: use case continues from BCA-3.
60
Actor Admin, Manager
Include: Login
Extend
Basic flow of action
1.The user must login
2.User click on trip
3.The system read details all of information from system database
4. Display the report
Table: Use Case Description for view report
Use Case name: Registering a passenger
Use Case ID: SUC-010
Description: This use case describes how a new user registered into the system
Pre-condition: The user must have the application in his phone
Post-condition: The user registered successfully
Actor: Passenger
Includes:
Extends:
Basic course of action
1. The passenger wants to be registered in the system.
2. The passenger opens the app
2. The system prompts the user to enter their phone number.
3. The passenger enters their phone number and clicks on the "login" button.
4. The system checks users phone number
5. The system sends a verification code to the user's phone number via text message.
6. The passenger receives the verification code
7. The passenger enters the verification code.
8. The system verifies the code and confirms the user's phone number.
9. The passenger is prompted to insert name.
10. The passenger enters name and click next.
11. The system displays the home page.
12. use case ends.
Alternative Course Of Action
A: Passenger enters incorrect phone number
A4: The system prompts them to enter the phone number again
A5: use case continues from BCA-3
B: Passenger enters incorrect verification code
B7. The system prompts them to enter verification code again
B8. Use case continues from BCA-7
Table: Use Case Description for registering a passenger
61
Use Case name: Update passenger number
Use Case ID: Suc-011
Description: The ticketer updates the current number of passengers in the bus
Pre-condition: The ticketer must be logged into the system with appropriate permissions
Post-condition: The ticketer update the number of passengers
Actor: Ticketer
Include: Login
Extend:
63
Basic Course of Action
1. The user wants to add station.
2. The user access route management page.
3. The user select Station.
4. The system display station registration form.
5. The user fill the form and submit.
6. The system checks the form.
7. Station added successfully.
8. use case ends
Alternative Course Of Action
A. The form is invalid.
A2. The system displays a message indicating the information in the form is invalid.
A3. Use case continues from BCA-5.
Table: Use case description for add station
Use Case name: Receive notification
Use Case ID: Suc-015
Description: This use case allows the passenger to cancel their reservation in the bus track system.
Pre-condition: The passenger must have an existing reservation in the bus track system.
Post-condition: The reservation is successfully cancelled in the bus track system.
Actor Passenger
Include:
Extend:
Basic course of action
1. The user wants to receive notification.
2. The user opens the app.
3. The user selects specific bus.
4. The user enables “notify me” feature.
5. The system send notification when the bus is approaching.
6. The user receives notification.
7. use case ends
Alternative Course Of Action
A. The user does not enable “notify me” feature.
A6. The user does not receive notification.
A7. Use case ends.
64
Post-condition: The user is logged out of the system and their session is terminated.
Actor: Admin, Manager, Driver, Ticketer, Passenger
Include: Login
Extend:
Basic course of action
1. The user selects the "Logout" option from the system's user interface.
2. The system displays a confirmation message asking the user if they want to log out.
3. The user confirms their intention to log out.
4. The system terminates the user's session and clears any user-specific data.
5. The system redirects the user to the login page.
6. use case ends
Alternative course of action
A. The user cancels the logout process
A2. The system returns to the previous state and the user remains logged in.
A3. Use case continues from use case 1 of BCA.
Table: Use Case Description for Logout
65
Delete staff
Add bus
66
Figure : Add bus sequence diagram
Update bus
67
Figure : Update bus sequence diagram
Delete bus
68
Figure : Delete bus sequence diagram
Assign bus
69
Figure : Assign bus sequence diagram
Login
70
Figure :Login sequence diagram
Track bus
71
Figure :Track bus sequence diagram
View report
72
Figure : View report sequence diagram
Registering passenger
74
Figure :View assigned bus sequence diagram
Add route
75
Figure :Add station sequence diagram
Receive notification
76
Figure :Logout sequence diagram
77
Figure: Register staff activity diagram
78
Figure: Register route activity diagram
79
Figure: Track bus activity diagram
80
Figure: Login activity diagram
81
Figure: Add route activity diagram
82
Chapter Four
System Design
4.1 Introduction
System design is the process of designing the element of a system such as the architecture, module
and component, the different of those components and the data that given through that system. The
purpose of this process is to provide sufficient detailed data and information about the system and
its elements to enable an implementation consistent with the model and views of the system
architecture.
Some of graphical modeling language are:
a. Flowchart: is a diagrammatic representation of a problem or a problem or algorithm that
illustrates the sequence of operation to be performed.
b. Unified modeling language (UML): is a standardized modeling language consisting of an
integrated set of diagrams, developed to help system and software developers for
specifying, visualizing, constructing and documenting the artifacts of a system.
c. System modeling language (sysML): is a general-purpose graphical modeling language for
specifying, analyzing, designing and verifying complex systems. It provider graphical
representation with a semantic foundation for modeling system requirements. sysML is
used by system engineering applications.
83
Cohesion: both the mobile application and website follow a specific thematic
design to ensure any new feature added will follow a strict design procedure to
maintain consistency and familiarity.
Portability: the mobile application will be compatible with android platforms
granting user groups access.
Real-time tracking: the app should provide user with real-time information on bus
locations and estimated arrival times. This allow user to plan their journeys more
effectively.
User-friendly interface: the app should have an intuitive, easy-to-navigate interface
that allows user to quickly access the information they need.
Performance and responsiveness: the app should be fast and responsive, providing
updates and information without significant delays.
Customization: allowing user to customize their experience, such as saving
favorite routes or setting alert for specific buses, can enhance the user experience.
Learnability: the system will follow a familiar UI design to ensure.
84
Customization vs. Consistency
Allowing users to customize the app (e.g., favorite routes, notifications) can enhance user
satisfaction, but it may require additional complexity in app design and maintenance.
Data Sources vs. Data Quality
Using multiple data sources can improve the app's robustness and accuracy, but it may introduce
inconsistencies if the sources differ in data quality or timing.
Usability vs. Development Time
Streamlining the app for a smooth user experience may require additional development time to
optimize the app's functionality and performance.
Security vs. Convenience
Implementing secure authentication and data storage practices can protect user data but may also
add complexity to the user experience.
4.4 subsystem decomposition
System decomposition begins by decomposing the system into cohesive, well-defined subsystems.
Subsystem are then decomposed into cohesive, well-defined components. Components are then
decomposed into cohesive, well-defined sub-components. This allows for better maintenance and
scalability of the system as it is being built.
1. User Interface (UI) Subsystem:
- Manages the presentation layer of the app.
- Handles views such as maps, lists, and other visual elements.
- Enables user interactions like selecting routes, searching for stops, and setting preferences.
85
- Provides route suggestions based on user preferences and real-time data.
5. Notifications Subsystem:
- Manages alerts and notifications (e.g., bus arrival times).
- Can handle scheduling and sending push notifications.
6. Location Services Subsystem:
- Handles access to the device's location services.
- Provides the user's current location to the app for personalized tracking and navigation.
- Ensures user privacy and security when accessing location data.
7. Settings and Preferences Subsystem:
- Allows users to customize app settings (e.g., favorite routes, notification preferences).
- Manages the storage of user preferences and settings.
- Ensures user preferences are respected throughout the app.
8. Analytics and Reporting Subsystem:
- Gathers data on user interactions and app performance.
- Provides insights for improving the app based on user feedback.
9. Security and Privacy Subsystem:
- Ensures secure handling of user data and sensitive information.
- Implements user authentication and authorization mechanisms.
- Handles data encryption and secure communication with external services.
4.5 Design phase models
The design model is an object model describing the realization of use cases, and serves as
abstraction of the implementation model and its source code. The design model is used as essential
input to activities in implementation and test. Some of the design phase model include:
class diagram
persistence model
user interface
deployment diagram
network diagram
86
can use a single class diagram to model an entire system, or we can use several class diagram to
model the components of a system. We have chosen to use a single class diagram to model our
system since it has a rather low complexity.
87
4.5.2 Persistence model
The database we use (firestore) is firebase database that is suite of service, create a unified
experiences for our users across both the app and website, with shared data, authentication, and
functionality.
Firebase can certainly be used as part of the persistent model for a bus tracker android app,
particularly for storing and syncing real-time data such as bus location, routes and schedules.
Firebase is the perfect choice for the persistent model depends on the specific requirements and
constraints of your bus tracker app. It's important to consider factors such as scalability, cost, and
integration with other services when making this decision.
88
4.5.2.1 Mapping class diagram to relation
Mapping a class diagram to a relational model involves translating the classes, attributes, and
associations defined in a UML class diagram into tables, columns, and relationships in a relational
database schema.
To create a mapping class diagram to relations (tables) for the entities mentioned (Bus, Route,
Station, User, track, admin, feedback, manager, ticketer, driver), we can represent each entity as a
table in a relational database.
NO Table Name Columns
89
10 Driver Id(primary key), address, assignedBus, assignedBusPlate,
contactNumber, email, name, role, isOnline
4.5.2.2 Normalization
Normalization is the process of organizing data in a database efficiently. The goal of normalization
is to minimize redundancy and dependency by organizing data into tables and defining
relationships between them. This helps ensure data integrity and avoids data anomalies such as
update, insertion, and deletion anomalies.
Bus:
Column name Data type
90
Id(primary key) string
Name string
Model String
Capacity number
currentLocation geoPonit
startTime TimeStamp
endTime TimeStamp
isAvailable boolean
plateNumber number
assignedDriver string
assignedRoute string
assignedStations array
assignedTicketer string
Route:
91
Column name Data type
Name string
EAT number
startLocation string
endLocation string
Station:
Column name Data type
Location geoPoint
Name string
User:
Column name Data type
92
Username string
phone number
Track:
Column name Data type
assignedBus string
assignedBusPlate string
endTo string
numberOfPassenger string
startingForm string
Admin:
Column name Data type
contactNumber number
email string
93
Name string
Role string
Feedback:
Column name Data type
feedback string
timestamp TimeStamp
Driver:
Column name Data type
address string
assignedBus string
assignedBusPlate string
contactNumber number
94
Email string
IsOnline boolean
Name string
Role string
Manager:
Column name Data type
Name string
Address string
Email string
contactNumber number
Role string
Ticketer:
Column name Data type
95
Name string
Email string
Address string
assignedBusPlate string
assignedBus string
contactNumber number
Role string
96
Figure: sign in mobile UI
97
Figure: home and bus station list mobile UI
98
Figure: admin login web UI
99
Figure: route list web UI
10
0
Figure: feedback web UI
10
1
different nodes or hardware devices in a system. It shows the physical architecture of the system
and how the various components interact with each other.
1. Bus Tracking System:
-This is the overall system encompassing all components involved in the bus tracking application.
2. Mobile Device:
Android App:
-This is the application installed on the user's Android device.
-It allows users to track buses in real-time, see bus location, routes, and receive notifications.
-The app communicates with the backend API to fetch and display relevant data.
3. Server:
Backend API:
-This server-side component handles requests from the Android app and the GPS devices.
-It processes data, applies business logic, and interacts with the Firebase database to store and
retrieve data.
-It acts as a mediator between the mobile app, GPS devices, and the Firebase database.
4. Firebase:
Firebase Database:
-This is a cloud-based NoSQL database provided by Google.
-It stores all the data related to the bus tracking system, including user information, bus estimated
time, real-time bus locations, and administrative data.
-It provides real-time data synchronization making it suitable for mobile and web applications.
5. Bus:
GPS Device:
-Each bus is equipped with a GPS device that sends real-time location data.
-These devices communicate with the backend API using HTTP to transmit their location data at
regular intervals.
6. Admin Panel:
Web Application:
-This is a web-based interface used by administrators to manage the bus tracking system.
-It provides functionalities such as adding or removing buses, updating schedules, viewing
analytics, and managing user data.
10
2
-The admin panel interacts directly with the Firebase database to perform CRUD (Create, Read,
Update, and Delete) operations.
10
3
- Key elements: Mobile network connectivity (3G, 4G, 5G), Wi-Fi connectivity, GPS for
location tracking.
2. Backend Server:
- This is the server where the backend application logic of the bus tracker app resides.
- Key elements: Internet connectivity, sufficient processing power and memory, firewall and
security measures, load balancers for distributing traffic (if needed).
3. Database Server:
- This is the server where the data related to buses, routes, station, users, etc., is stored.
- Key elements: Database management system (NoSQL and Cloud firebase), sufficient storage
capacity, backup and recovery mechanisms, access control.
4. Bus Tracking Backend API:
- This is the backend API responsible for tracking buses' real-time locations and providing data
to the Android app.
- Key elements: Web server (Node.js), RESTful API endpoints, secure communication
(HTTPS), and scalability for handling concurrent requests.
10
4
Chapter Five - Implementation
5.1 Introduction
Software implementation can be defined as the process and producers needed to take software
application and tools from planning and development to the production stage. As such our team
has worked hard to use the tool at our disposal to turn the concepts elaborated in the previous
chapters into real world application that can benefit society. We have used a variety of
programming language such as flutter, dart and react, some integrated development environment
such as visual studio and cloud service such as firebase and a lot of internet research in the process
and in this chapter, you will find the result illustrated in the form of sample codes.
5.2 Sample Code
In this section we have include sample code for components of our mobile application and web
dashboard which are important and the sample codes can be found below.
Bus model
Description: The class is used to represent and manage information related to buses within an
Android app.
Parameter: id, name, bus number, plateNumber, capacity, isAvailability, startTime and endTimes,
numberOfPassenger, availableSite, startingForm and endTo.
Code:
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
class BusInformationModel {
final String id;
final String? name;
final String? busNumber;
final String? plateNumber;
final String? capacity;
final bool? isAvailable;
final DateTime? startTime;
final DateTime? endTime;
final String? numberOfPassengers;
final String? availableSits;
final String? startingFrom;
final String? endTo;
LatLng? location;
10
5
BusInformationModel({
this.location,
required this.id,
this.name,
this.busNumber,
this.plateNumber,
this.capacity,
this.isAvailable,
this.startTime,
this.endTime,
this.numberOfPassengers,
this.availableSits,
this.startingFrom,
this.endTo,
});
10
6
'capacity': capacity,
'isAvailable': isAvailable,
'startTime': startTime != null ? Timestamp.fromDate(startTime!) : null,
'endTime': endTime != null ? Timestamp.fromDate(endTime!) : null,
'numberOfPassengers': numberOfPassengers,
'availableSits': availableSits,
'startingFrom': startingFrom,
'endTo': endTo,
};
}
10
7
Current_user model
Description: This class is likely used within an authentication system to manage the currently
authenticated user. It encapsulates information related to the user, such as their authentication
status and associated data.
Parameter: user
Code:
import 'package:bus_tracking_app_client/repos/auth_repo.dart';
import 'package:firebase_auth/firebase_auth.dart';
class CurrentUser {
final User? user;
CurrentUser(this.user);
}
Station model
Description: class represents a station with location information and an optional list of associated
buses
Parameter: location, name and bus
Code:
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import './bus_model.dart';
class StationModel {
final LatLng? location;
final String? name;
final List<BusInformationModel>? busses;
10
8
return StationModel(
location: location,
name: data['name'] ?? '',
);
}
10
9
Chapter six - Conclusion and Recommendation
6.1 Conclusion
This project has met its conclusion as of 09/08/2024, As such the final deliverables have been
prepared, tested and examined and here are some conclusions we have arrived at:
The system can only be useful if public buses are equipped with GPS or other tracking
technology to accurately monitor location and movement.
The system can be expanded by ensuring accessibility to all users, including those with
disabilities, by incorporating features such as voice commands, screen readers and
alternative language options.
We strongly believe that the system offer a multitude of benefits for both passengers and
transport companies by providing real-time information for passengers and transport
company can use data collected from the App to improve service quality and enhance
overall customer satisfaction.
6.2 Recommendation
We have some insight regarding the topic of our project. Here are our recommendations:
When working on similar project, time management and effective communication are
essential for successful completion.
We recommend, if possible, to work on projects like this with commitment to ensure the
highest quality outcome.
The application should be continuously improved by gathering feedback and making
improvements to further enhance user experience.
11
0
Reference
11
1