Professional Documents
Culture Documents
TRACKIFY
Project Supervisor
Mr. Zaid Aslam
Submitted By
In our opinion, it is satisfactory and up to the mark and therefore fulfills the requirements of BS
in Computer Sciences.
Lecturer,
___________________
(Signature)
Assistant Professor,
___________________
(Signature)
Accepted By:
_____________
(For office use)
i
EXORDIUM
ii
DEDICATION
I dedicate this project to God Almighty my creator, my strong pillar, my source of inspiration,
wisdom, knowledge, and understanding. He has been the source of my strength throughout
this program and on His wings only have I soared. I also want to dedicate this project to my
beloved parents. It’s only due to their prayers that we are at this stage and successfully
performing our duties. I also want to say thanks to my respected Sir Zahid Aslam because of
their efforts that I am at the last stage of my destination.
iii
ACKNOWLEDGEMENT
A person is not perfect in all the contexts of this life. He has a limited mind and minor thinking
approaches. It is the guidance from the almighty Allah that shows the man light in the darkness
and the person finds his way in the light. Without this helping light, the person is nothing but a
helpless creature. The same is the case with us, as we experience all these phenomena during
the completion of this project and have been successful in fulfilling this duty assigned to us only
because of the help of ALLAH. The teachings of the Holy Prophet Muhammad (PBUH) were also
the continuous source of guidance for me especially His order of getting knowledge and
fulfilling one’s duty honestly were the keys for motivation. We regard our self very lucky to
work under the kind supervision of Mr. Zahid Aslam whose consistent encouragement and
timely guidance enabled us to overcome the hindrances that come in our way during the
tenure of the project. And his selfless and tireless efforts for providing us all the facilities that
we needed.
iv
PREFACE
This Documentation has been prepared to make our clients and user of the application to
understand the application and use it and get the most out of it. Trackify— Bus tracking
application for The Islamia University of Bahawalpur will be used by the users to track the
location of the buses in real-time, so that they reach university on time. Especially for student
girls, and teachers, face a lot of difficulty. Trackify helps them to reach to the bus stop before
the arrival of the bus. Now with Trackify, you don’t have to wait for bus on the bus stop.
Instead, you can get the location on mobile from home. The Application is straightforward and
easy to use, with the user-friendly UI (user-interface) designed in keeping the end users in
mind. Trackify is in alpha stage of its development and therefore, we are only giving access to
only few users. In usage, you can face some crashes and errors before the final release.
v
PROJECT BRIEF
vi
Contents
CHAPTER NO.1........................................................................................................................................... 2
INTRODUCTION ...................................................................................................................................... 2
1. Introduction ....................................................................................................................................... 3
1.1. Purpose....................................................................................................................................... 3
1.2. Scope........................................................................................................................................... 3
1.3. Definitions, Acronyms, Abbreviation.................................................................................. 4
1.3.1. API ........................................................................................................................................ 4
1.3.2. Trackify ............................................................................................................................... 4
1.3.3. Flutter .................................................................................................................................. 4
1.3.4. Firebase .............................................................................................................................. 4
1.4. References ................................................................................................................................. 4
1.5. Overview ..................................................................................................................................... 4
CHAPTER NO.2 ......................................................................................................................................... 5
GENERAL DESCRIPTION ........................................................................................................................ 5
2. General Description......................................................................................................................... 6
2.1. Product Perspective ................................................................................................................ 6
2.2. Product Function ..................................................................................................................... 6
2.3. User Characteristics ................................................................................................................ 9
2.4. General Constraints ................................................................................................................ 9
2.5. Assumptions and Dependencies ......................................................................................... 9
CHAPTER NO.3 ....................................................................................................................................... 10
SECIFIC REQUIREMENTS ...................................................................................................................... 10
3. Specific Requirements.................................................................................................................. 11
3.1. External Interface Requirements ....................................................................................... 11
3.1.1. User Interface .................................................................................................................. 11
3.1.2. Hardware Interface......................................................................................................... 11
3.1.3. Software Interface .......................................................................................................... 11
3.2. Functional Requirements..................................................................................................... 12
3.2.1. User Sign Up ................................................................................................................... 12
3.2.2. User Login ........................................................................................................................ 13
3.2.3. User Edit Profile.............................................................................................................. 13
3.2.4. Add User Schedule ........................................................................................................ 14
vii
3.2.5. View Bus Route .............................................................................................................. 15
3.2.6. View Bus Schedule ........................................................................................................ 15
3.2.7. Schedule Notification .................................................................................................... 16
3.2.8. Admin Login .................................................................................................................... 17
3.2.9. Add Bus Schedule ......................................................................................................... 17
3.2.10. Add Bus Route ............................................................................................................ 18
3.2.11. Block users .................................................................................................................. 19
3.3. Use Cases ................................................................................................................................ 20
3.3.1. Use Case Diagram #1 .................................................................................................... 20
3.3.2. Use Case Diagram #2 .................................................................................................... 21
3.3.3. Use Case Diagram #3 .................................................................................................... 22
3.4. Classes / Objects ................................................................................................................... 22
3.4.1. User .................................................................................................................................... 22
3.4.2. Admin ................................................................................................................................ 23
3.4.3. Bus Schedule .................................................................................................................. 24
3.5. Non-Functional Requirements............................................................................................ 24
3.5.1. Performance .................................................................................................................... 24
3.5.2. Reliability .......................................................................................................................... 24
3.5.3. Availability ....................................................................................................................... 25
3.5.4. Security ............................................................................................................................. 25
3.5.5. Maintainability ................................................................................................................. 25
3.5.6. Portability ......................................................................................................................... 25
3.6. Design Constraints ................................................................................................................ 25
CHAPTER NO.4 ....................................................................................................................................... 26
ANALUSIS MODEL .................................................................................................................................. 26
4. Analysis Model ............................................................................................................................... 27
4.1. Sequence Diagram................................................................................................................. 27
4.2. Data Flow Diagram................................................................................................................. 29
4.3. State Transaction Diagram .................................................................................................. 30
CHAPTER NO.5 ....................................................................................................................................... 32
CHANGE MANAGEMENT PROCESS................................................................................................... 32
5. Change Management Process .................................................................................................... 33
5.1. A.1 Appendix 1: Background Study .................................................................................. 33
viii
5.2. A.2 Appendix 2: Data Dictionary ........................................................................................ 33
CHAPTER NO.6 ....................................................................................................................................... 35
INTRODUCTION .................................................................................................................................... 35
6. Introduction ..................................................................................................................................... 36
6.1. Purpose..................................................................................................................................... 36
6.2. Scope......................................................................................................................................... 36
6.3. Definitions, Acronyms, Abbreviation................................................................................ 36
6.3.1. API ...................................................................................................................................... 36
6.3.2. Trackify ............................................................................................................................. 36
6.3.3. Flutter ................................................................................................................................ 36
6.3.4. Firebase ............................................................................................................................ 37
6.4. References ............................................................................................................................... 37
6.5. Overview ................................................................................................................................... 37
CHAPTER NO.7 ....................................................................................................................................... 38
SYSTEM OVERVIEW ................................................................................................................................ 38
7. System Overview ........................................................................................................................... 39
7.1. Technologies Used ................................................................................................................ 39
7.2. Application Overview ............................................................................................................ 39
7.3. Design Language ................................................................................................................... 39
CHAPTER NO.8 ....................................................................................................................................... 40
SYSTEM ARCHITECTURE ...................................................................................................................... 40
8. System Architecture ...................................................................................................................... 41
8.1. Architectural Design ............................................................................................................. 41
8.2. Decomposition Descriptions .............................................................................................. 42
8.2.1. Sequence Diagrams ...................................................................................................... 42
8.2.2. Class Diagrams............................................................................................................... 50
8.2.3. State Transaction Diagram .......................................................................................... 52
8.2.4. Data Flow Diagram......................................................................................................... 54
8.3. Design Rationale .................................................................................................................... 55
CHAPTER NO.9 ....................................................................................................................................... 56
DATA DESIGN ......................................................................................................................................... 56
9. Data Design ..................................................................................................................................... 57
9.1. Data Description ..................................................................................................................... 57
ix
9.2. Data Dictionary ....................................................................................................................... 59
CHAPTER NO.10 ...................................................................................................................................... 61
HUMAN INTERFACE DESIGN .............................................................................................................. 61
10. Human Interface Design ........................................................................................................... 62
10.1. Overview of user interface ............................................................................................... 62
10.2. Screen objects and actions ............................................................................................. 62
10.2.1. Login Screen ............................................................................................................... 62
10.2.2. Dashboard Screen ..................................................................................................... 63
10.2.3. Adding Bus Route ...................................................................................................... 64
10.2.4. Adding Bus Route Schedule ................................................................................... 65
10.2.5. Established Bus Route ............................................................................................. 66
10.2.6. Delete Bus Route........................................................................................................ 67
CHAPTER NO.11 ....................................................................................................................................... 68
REQUIREMENT MATRIX ...................................................................................................................... 68
11. Requirement matrix ................................................................................................................... 69
x
SRS
CHAPTER NO.1
INTRODUCTION
1. Introduction
Trackify is a software that is designed with the aim in mind to reduce problems like a schedule
change, Bus Arrival time, Delays. Students face a lot of problems relating to the Bus Schedule.
Students wait for the buses on the Bus Stops. It will reduce the waiting time of the students
and inform them of the exact time and location of the Bus. It will notify the Students with the
arrival time of the Bus. It integrates notification from the university to notify students about
any schedule change. When the bus route comes out from the University or enters in the
University it will notify the students. Students can check bus routes and their travel in real-
time. It informs the Students with the remaining time of the bus to reach on the stop through
notification or student check itself real-time on the Trackify Map. It helps the students to get
their bus without wasting their time and reach to its destination. So no more bus miss.
1.1. Purpose
Trackify ensures that students remain up to date with the bus schedules. It notifies the students
if there's any change in the bus route or schedule thus minimizing the problems like missing
point and reducing the time wastage. With this software students will be able to track their Bus
in real-time as we have incorporated a live tracking of bus on Map, updating students and other
people who will travel via university buses.
1.2. Scope
Trackify is aimed to provide a one-stop solution for all the passengers not only in university
but outside the university as well. Almost millions of passengers use buses and due to no
solution for tracking the buses in which they want to travel, the passengers remain in dark
about the timing of the buses. Sometimes due to some issue a student gets late for the point
and He/She don't know where's the bus has reached and such students and professionals who
come from different cities are affected the most due to the unknown conditions whether they
will reach on time or not. And in city university buses have their schedule.
Our software with the help of the latest Google technologies and APIs will not only track the
buses in real-time but will provide in-depth details to the students and professionals as well.
API stands for Application Program Interface. It is a computing interface that is used for
software components or a system, which allows a programmer to provide a solid solution
more rapidly. API is an intermediary between two software to interact with each other
1.3.2. Trackify
Trackify is the name of the software and this software is for Real-Time Bus Tracking
System.
1.3.3. Flutter
“Flutter is Google’s UI toolkit which is used for building beautiful, natively compiled
applications for mobile, web, and desktop from a single code base”.
1.3.4. Firebase
“Firebase gives you functionality like analytic, databases, messaging and crash reporting
so you can move quickly and focus on your users”.
1.4. References
• https://flutter.dev/
• https://firebase.google.com/
1.5. Overview
CHAPTER NO.2
GENERAL DESCRIPTION
2. General Description
In general description, we discuss only those requirements which are easy to understand and it
should be clear that it does not discuss the specific requirement.
Trackify is for those people who face problems with the buses schedule on their routes. It
informs the students about the updated bus schedule and its route. If there is any delay or
change in the route then the students will be informed through the notifications. This software
helps the students to remain up to date with new schedules and routes of the buses. It only
needs to install this software on their smartphones or remain connected with the new updates.
For more reliability live tracking system also incorporates on the Map.
It notifies the students with new updates in the bus schedule or routes. It provides the
live tracking of the buses on the Map. It updates the student when the bus comes in or
out of the University. It informs the students with the remaining time of the bus to reach
on its stop or to move from the University. Trackify minimizes the possibility of the
bus miss.
• User Functionality:
Sign-Up:
The user can sign-up which will trigger a function at the back-end, performing this
whole functionality and adding the user in the cloud database.
Login:
The user can log in to the system. By providing the valid credentials at the time of log
in.
Edit Profile:
The user will be able to edit his/her profile and view it and change it later.
User Schedule:
The user will be able to add/edit his/her schedule on the app. He/she will be able to
delete it as well.
Bus Schedule:
The user will be able to view the bus schedules.
Bus routes:
The user will be only able to view the bus routes, meaning that the user will be restricted
to the view of bus routes.
Notifications:
The user will be able to see and interact with the notifications from the application.
• Admin Functionality:
Login:
The admin will be able to use the login functionality of the application, by using the
valid credentials provided by the university.
Edit Profile:
The admin will be able to create/edit his/her profile.
Add bus schedule:
The admin will be able to add the bus schedules.
Edit Bus Schedule:
The admin will be able to edit the pre-added bus schedules and also able to delete them.
View the bus schedule:
The admin will be able to view the added bus schedules.
Add bus route:
The admin will be able to add the bus routes.
Edit Bus routes:
The admin will be given the power to edit and delete the created bus routes.
View Bus Routes:
The admin will be able to view the added bus routes.
Block Users:
The admin will be able to block, such users who have violated or misused applications
in any way or signed up with fake/invalid credentials.
• Assumptions
a) Availability of internet.
b) Users should be able to use a smartphone.
c) The user should've a Google account.
• Dependencies
a) GOOGLE APIs.
b) Cloud Fire store Database (cloud database).
c) Need of Flutter (framework).
CHAPTER NO.3
SECIFIC REQUIREMENTS
3. Specific Requirements
3.1. External Interface Requirements
In this section we discuss the software design through which users interact with the software.
The design and all the constraints which are used must be Correct, Complete and Consistent.
Here we define how the user will interact with the system and how the system interacts with
the user.
In this section, we define all the functionality of the software, how will the user interact with the
software and how it will help the user to fulfill their needs. User sign-up, live tracking of buses,
notification facility, bus routes, and schedules and how all these things work are defined in this
section. There are two main actors in this software one is Admin and the second is User
(student/employee)
3.2.1. User Sign Up
Introduction
User Sign-up is necessary because this software is only for University students and
other employees of the university. Because this software aims university students
and faculty that is why user Sign-up is necessary. Only those users can sign up who
belongs to the university.
Input
This user sign-up is only for the students and employees of the university. The
inputs required from the user are Gmail ID, full name, gender, date of birth, contact
number, address, category(student/employee), if student, then their Registration
Number and if employee, then the Employee ID and at the end password is
required.
Processing
The system checks all the information given by the user and according to its
information system accepts or rejects its sign-up request.
Output
If the user has done its sign-up successfully then a confirmation email will be sent
to his/her email id and after that user will be able to log in and use the application.
Error Handling
If the user gives some wrong information or if his/her email id is not unique then
an error message is generated by the system.
Users who successfully signed up can log in to the system. Without correct
credentials, no one can log in with the system. For logging in, the user must provide
his/her valid email and password which they gave at the time of sign-up.
Input
Processing
System process on the given email or password and check it with the database if it
matches then the system allows the user to Login in and use the software.
Output
If the email or password matches then the system directly moves the user to the
dashboard of the application and the user can use the system.
Error Handling
If email id or password doesn’t match with the database record then the system
won’t allow the user to login and will generate an error message.
3.2.3. User Edit Profile
Introduction
In this subsection, the user will update his/her profile. The data which he/she has
given during the sign-up; if he/she wants to edit something then they can use edit
functionality to edit the profile. Users cannot change his/her registration number
because it is issued by the university, so students cannot change them. Same as like
students, employees can also edit their information.
We will provide you the chance at registration time to see that you have entered the
valid credentials but later things like registration number can’t be changed but a
request can be made to the developer about changing the wrong registration
number. This applies to the employees as well.
Input
The attributes which are used at the time of sign up same attributes are used now.
But some extra attributes are also there in its profile, like users can upload its image,
give detail of its department or semester.
Processing
System process the information which user edit and when the user presses the
submit button system update its information and store it in the database.
Output
After processing the information, a notification show on the user screen that the
information has been updated successfully.
Error Handling
If the size of the image is too large or its format is not correct then the system will
display an error message.
3.2.4. Add User Schedule
Introduction
Users add their schedule according to its bus timing to reach the bus stop and the
system will notify him before reaching the bus to their stop. User add schedule and
tell the system that how before he/she want notification from the system.
Input
For adding the schedule user give some input to the system then the system will
notify according to their information. The input which is given by the user is its
stop name, bus route and time how before he/she gets the notification form the bus.
Processing
The system gets the information and store it, according to the user, the information
system will send the notification to the user that the bus will reach the stop in a few
minutes. The time at which the notification will be sent to the user will be
determined based on the information user has added into the schedule panel.
Output
A notification will send to the user that the bus will reach the stop in a few minutes.
Error Handling
If the user adds some schedule and due to network problem the schedule is not
added then the system will inform that his schedule is not added and in add schedule
panel users themselves see their schedule information.
3.2.5. View Bus Route
Introduction
Users see all the bus routes and the detail of the buses that which bus going to which
route.
Processing
When users want to see the bus routes and Live tracking of the buses, the system
will collect information on all the buses and show on the Map to the user with all
details.
Output
Users see the Live Tracking of all the buses on the Map with the bus and the driver
details who drive the bus and also the phone number of the driver.
Error Handling
If the internet connection is lost then the system show network error and the
system only show the last synced location of buses
3.2.6. View Bus Schedule
Introduction
User will see a page giving information about the schedule of the buses in which
the timing of each bus to its stop are defined. The user sees this information in View
Bus Schedule Panel where all the information of each bus with their routes, time to
reach on each stop, the driver who drives the bus everything is defined.
Processing
When the user wants to see the bus schedule then the system will check if there any
change in the schedule then the system will update the schedule.
Output
User see the updated schedule in the View Schedule Panel and the user also get
notification if any change in the schedule.
Error Handling
If the system does not update the schedule due to a network problem then the
system shows the date and time of the last update and gives notification of network
problem
3.2.7. Schedule Notification
Introduction
Notifications are generated by the system to update the user with any change in the
bus schedule, bus route, delays in bus service due to any emergency. Users will
remain up to date with all the information about the buses.
Processing
If any change in bus schedules or any other delays of bus or change in bus routes
then the system generates a message and sends it to all the users.
Output
Users will receive a notification from the system with new changes in the bus
schedule or routes.
Error Handling
Admin did not use the system without Login. Login is necessary for everyone who
uses this software.
Input
Processing
The system checks the email or password with the database if it matches then the
system gives access to the admin to the system.
Output
If email and password match then the system displays a message to the admin that
he/she has successfully logged in with the system. Routing admin directly to the
dashboard.
Error Handling
If email or password does not match then, the system will display an error message
stating, “your email or password is not correct please enter correct email or
password.”
In this panel, the admin will be given the functionality to add the buses and their
schedule. Each time a bus will be added or changed the panel on the client-side will
automatically receive these changes and automatically update the view and
information. In this way, the user will remain notified about any sudden changes in
the schedule.
Input:
Admin will have to give the following information to the system when adding a bus
schedule.
Name of driver,
Bus number,
Route,
Processing
On the information given to the system, the system will validate the form and add
or reject the information. A point of notice is that admin will have to add all the
information otherwise the bus schedule won’t be added.
Output
Once the information has been added, all the users will be notified and the
information on the client-side will be updated automatically. Notifying users about
the latest updates.
Error Handling
If in any case, the information is wrong or not filled properly, the System validator
will notify the admin about the issues in the information he/she has provided the
system.
After the bus schedule has been added or update, the system will route the admin
to another page where the user can either mark the map or write the names of the
places through which the bus will go. The bus routes can be edited later as well and
each information will be updated at the user side automatically.
Input
The admin will have to mark the map or will write the name of places through
which the bus will pass. The time arrival will be given as well. All the information
must provide or the system won’t proceed further.
Processing
Based on the information, the system will validate and proceed further, if the correct
admin will be notified. Otherwise, a message will be displayed.
Output
Once the information is successfully validated and accepted, the system will
automatically notify the users.
Error Handling
If there is an error in the information provided by the admin an error message will
be displayed.
In this section, If somehow our admin finds out any unauthorized personnel or
student, in any way not associated with the university, admin gets the ability to
block the user and take any necessary action according to university guidelines.
Processing:
If a user is found not associated with the university, an admin will click the block button
and the user will be blacklisted from the application, meaning he/she won’t receive any
information. This is necessary from the security point of view.
Output:
Error Handling:
The main classes and the functions used in this software are discussed here.
3.4.1. User
• Attributes
Full Name
Password
Gender
Department
Semester
Date of Birth
Mobile Number
Address
University ID
• Functionality
View Schedule ()
View Route ()
Add Schedule ()
View Notification ()
3.4.2. Admin
• Attributes
Full Name
Email ID
Password
• Functionality
Add Schedule ()
Edit Schedule ()
View Schedule ()
Add Route ()
Edit Route ()
View Route ()
Add Driver ()
Delete Driver ()
Block User ()
3.4.3. Bus Schedule
• Attributes
Bus Number
Route Name
Stop Name
Stop Timing
Driver Name
Tracker Name
Non-functional requirements are those which facilitate the functional requirements e.g
security, reliability, etc. These kinds of requirements are very important because these help
our software to perform well. We discuss some of them
3.5.1. Performance
The performance of the software depends upon the speed of the internet because this is an
Android and IOS application which runs on the internet. Without the internet it only
shows the last synced data, for new updates users must have the internet. If the user has a
good internet connection then the performance of the software is very good because the
software is built-in flutter and flutter is very fast and its response time is very low
3.5.2. Reliability
It must ensure that the software is reliable because it can run on all the smartphones with
both operating system Android or IOS
3.5.3. Availability
Its availability depends on the internet, if user have internet then the user can access it 24
hours. Users can see all the updates and the Live Tracking of the buses at any time and any
place.
3.5.4. Security
The security of the system is very important no one can change the schedule or routes of
the buses for this an authorization is applied, only admin can access these features other
users can only see the schedule and routes
3.5.5. Maintainability
Maintainability of the system must be easy, in the future if something needs to be changed
in the software then users cannot affect it.
3.5.6. Portability
In the future if the version of the operating system changes then the user will also access them
on that operating system.
In this software we follow the design of the smartphones. It can run on all the smartphones
with both operating systems Android and IOS. The design of the software is according to the
design of smartphones, it cannot run on Laptops or any other devices.
CHAPTER NO.4
ANALUSIS MODEL
4. Analysis Model
In this section we draw some analysis models to understand the flow of data and logic with the
help of specific requirements discussed previously in SRS.
The sequence diagram is the interaction between different objects in sequence. The interaction
of different actors from the system and how the system responds to the user all this is discussed
in the sequence diagram. Here we show the sequence of the user requests and answer of the
system in his/her requests.
• Sequence Diagram for Sign-up
• Level 0 DFD
• Level 1 DFD
CHAPTER NO.5
CHANGE MANAGEMENT PROCESS
A lot of work has been done in history but this project specifically focuses on the local problem
of the University Transport. Students have to face difficulties while traveling through the
buses, Most of the time, due to traffic jam and issues like buses having technical issues get
behind the schedule and students, go back home due to which there’s a loss of their lectures,
Especially girls suffer the most because of this issue. We have tried to overcome these
problems through this software. we reduce this problem by tracking the buses in real-time,
by using our software students will be able to see where their bus is passing through and in this
way they can manage their tasks and reach on time at the bus stop.
CHAPTER NO.6
INTRODUCTION
6. Introduction
6.1. Purpose
6.2. Scope
The aim and scope of this document is to provide a detailed design and implementation of the
System Requirement Specification. The Trackify system uses a comprehensive Google API
known as Google maps that will be used in Flutter to provide real-time tracking of the buses,
therefore, reducing the human errors. Everything mentioned in this document will be used
and implemented in the software.
6.3.3. Flutter
“Flutter is Google’s UI toolkit which is used for building beautiful, natively compiled
applications for mobile, web, and desktop from a single code base”
6.3.4. Firebase
“Firebase gives you functionality like analytic, databases, messaging, and crash reporting so
you can move quickly and focus on your users”
6.4. References
• https://flutter.dev/
• https://firebase.google.com/
6.5. Overview
CHAPTER NO.7
SYSTEM OVERVIEW
7. System Overview
In this System Design Document, we will discuss in detail about the modules of Trackify. In
the “System Overview Section”, we will discuss in general about the application and give an
overview of how the application will work.In “System Architecture”
The system is designed and coded with Flutter in Android Studio. We will be using Google’s
Online Database called Firebase for storing all the essential data. We will track our code
changes and store our code in the GitHub repository
This application aims to provide the system that enables all the students and teachers of the
university to track the location of the bus in real-time so that, students don’t have to wait for
the buses. The project is aimed to help students who come from outside the city to track the
location of the bus to reach on time. The application is simple to use; the user can sign in with
Google, then the user can easily start to track the buses and receive notifications about any
sudden change in the schedule.
CHAPTER NO.8
SYSTEM ARCHITECTURE
8. System Architecture
8.1. Architectural Design
In the diagram below (fig #1) We have explained the general deployment and functioning of
Trackify. We have planned Trackify in a way that it will be developed as a Single Client
Application (APK). It will be:
Google’s backend services will be deployed which will be responsible for user interaction and the
response to the user request. These Firebase services will be responsible for the connection link
between the backend and the front-end and will be managing the whole CRUD system.
The Firebase Database will be responsible for containing all the information regarding applications
such as User information, Bus information, Route information.
Trackify Application manages the connection between Google’s Firebase server and the
application for a signup, login, and logout using a firebase authentication library in Flutter
application.
Trackify Application manages the connection between Google’s Firebase server and the
application for a signup, login, and logout using a firebase authentication library in Flutter
application
For the operations, we have created the four classes which are named “Login, Logout,
Update and Register” handler. We’ve shown all these class figures. For the login operation,
the system will send the user’s name and password (in case of email & password)
authentication to the Firebase Database or if the user will use the Google’s Sign-In option
then only Gmail account will be sent to a database. The very same method will be used for
Signing up the account. The user name and password will be sent to the Server (Firebase
database) and in the case of Google Sign Up only the Gmail account will be added the rest
authentication will be handled by the Google API itself.
To decrease the load on the mobile we’ve divided our work process into different threads and
each thread will run when needed. In the table(1.0), we have provided the names of the
threads and their work accordingly
Login Handler This thread is to run when a user tries to login or be logged.
Depending on the option chosen user will be taken to the
dashboard or back to the login screen if he isn’t logged
successfully.
Logout handler The logout thread will run as soon as the user tries to log out once
the logout button is pressed. The system will perform the
necessary operation and the application will end.
Register Handler The Register Handler will run when a user will try to sign up. It is
responsible for sending the user’s data to the server and after
verification user will be allowed to proceed further.
Update Handler Update handler thread is designated to run when the User will try
to update his/her Profile in our application.
Table 1.0
• Setting Class
In Trackify, we will manage all of our settings and user settings in a set class which will be
managed by Setting Manager. Below are the attributes of the Setting class.
isSearchabilityPubliclyAvailable Will the user be able to search about the buses publicly?
isBusRouteChanged Has the bus changed its route or is on its current route?
Also used when University will notify about bus
schedule change
Table 1.1.1
In Trackify we are going to handle each of the components as a separate entity. Here We are
going to describe each class in detail.
• User Component
The user class contains the private string to handle user name, University id, and personal details
such as a semester, id, date of birth, department, address, mobile number, etc. While the user will
be able to provide the following functions: As mentioned in the figure (Sequence Diagram)
The admin class is specifically designed for the admin who will manage the backend functions of
the application. Admin will need to provide his full name, Email ID, and password. The admin
will be able to perform the following functions. (as shown in the figure above)
The bus schedule class contains the properties of the bus schedule; the private strings such as “Bus
number”, “Route name” and Booleans “start timings, stop timing”.
• Bus Component
The bus class contains only three private strings to get the data of the bus e.g. “Bus number”,
“Bus route”, and “bus driver”.
Add Route()
Semester
Edit Route()
DOB
Bus View Route()
Mobile Number
Bus Number Add Driver()
Address
Bus Route Delete Driver()
View Schedule()
Bus Driver Block User()
View Route()
Add Schedule()
View Notification()
Here in the class above we can see that we have four classes namely User, Admin, bus
schedule, and Bus class.
The user class is namely a model for them to handle the information from the database and
then populating the fields of the application. Here the datatypes which are discussed in detail
in chapter 4 are to fetch the data from the database and then populate the application.
In the admin class, we fetch the data from the database it acts as a model class. It is also
responsible for populating the fields of the application for the admin panel.
The bus class is responsible for the handling of the data regarding the bus. It contains the bus
number name, and the driver name and the route information.
The bus schedule class is responsible for keeping the track of the bus point stops and the
arrival point while it also holds the data about the bus and the bus driver.
What we want is to create a beautiful and easy-to-use system that is available for everyone
everywhere. Especially for female students who have to travel a long way to the bus stop and then
they come to know that either the bus is scheduled out or has passed because the students got late.
We have developed this system in such a way that it isn’t so much storage hungry or data-hungry
meaning it is capable of running on old legacy Android OS (low-end) devices and new devices as
well. We also plan to release the application on iOS mobiles to cover both markets. We’ve use
RESTFUL API and Flutter so that it remain a cross-platform application and easily available to
the users. The reason we’ve used flutter is that it makes it easier to run natively without using any
other virtual machine such as in the case of JAVA and it is platform-independent. The flexibility
of Flutter made it possible for us to compile applications for different platforms.
CHAPTER NO.9
DATA DESIGN
9. Data Design
9.1. Data Description
• USER CLASS:
userFullName: The full name of the user as mentioned in the university Id card.
• ADMIN CLASS:
BUS CLASS:
BusNumber: The number of the bus usually issued by the govt e.g RNR323.
busRouteName: The bus route name is the name of the path/route that it will be traveling
to.
Bus User
Route
Route Name
Route Time
Stop Name
username: String
universityID: String
Email: String
Password: String
Department: String
Semester: Int
Address: String
2) Admin
3) Bus Schedule
4) Bus
CHAPTER NO.10
HUMAN INTERFACE DESIGN
After that, the user will be able to see the dashboard. Where he/she can see the
current schedules of the buses on the real-time map
10.2. Screen objects and actions
The log in screen as shown above in the picture is the first screen that the user will be seeing
This figure indicates the adding bus route functionality on the administrator side
CHAPTER NO.11
REQUIREMENT MATRIX
Here in the requirement matrix, we’re going to create and demonstrate briefly the use cases
that we have included in this document and that is going to be used in the application and are
used in the components.
“X” denotes that the use case has been used in the given component. The name of the use cases
their IDs and their usage in “X” is given below.
Sign Up UC1
Login UC2
UC1 × × × ×
UC2 × × × × ×
UC3 × × × ×
UC4 × × × ×
UC5 × × × ×
UC6 × × × ×
UC7 × × ×
UC8 × × ×
UC9 × × ×
UC10 × × ×
UC11 × × ×
UC12 × × ×