SlideShare a Scribd company logo
A MAJOR PROJECT REPORT
On
“QR SCAN BASED INTELLIGENT SYSTEM FOR SCHOOL BUS
TRACKING”
Submitted to
SRI INDU COLLEGE OF ENGINEERING AND TECHNOLOGY
In partial fulfillment of the requirements for the award of degree of
BACHELOR OF TECHNOLOGY
In
COMPUTER SCIENCE AND ENGINEERING
Submitted by
PRANITHA DEVIREDDY [20D41A05G7]
P.SAI VARSHITHA [20D41A05F2]
P.VENU [20D41A05F4]
P.AKSHAY [20D41A05F1]
Under the esteemed guidance of
Mr. SNVASRK PRASAD
(Assistant Professor)
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
SRI INDU COLLEGE OF ENGINEERING AND TECHNOLOGY
(An Autonomous Institution under UGC, Accredited by NBA, Affiliated to JNTUH)
Sheriguda (V), Ibrahimpatnam (M), Rangareddy Dist – 501 510
(2023-2024)
SRI INDU COLLEGE OF ENGINEERING AND TECHNOLOGY
(An Autonomous Institution under UGC, Accredited by NBA, Affiliated to JNTUH)
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
CERTIFICATE
Certified that the Major project entitled “QR SCAN BASED INTELLIGENT SYSTEM
FOR SCHOOL BUS TRACKING” is a bonafide work carried out by PRANITHA
DEVIREDDY[20D41A05G7], P.VARSHITHA [20D41A05F2], P.VENU [20D41A05F4],
P.AKSHAY [20D41A05F1] in partial fulfillment for the award of degree of Bachelor of
Technology in Computer Science andEngineering of SICET, Hyderabad for the academic
year 2023-2024.The project has been approved as it satisfies academic requirements in respect
of the work prescribed for IV Year, II-Semester of B. Tech course.
INTERNAL GUIDE HEAD OF THE DEPARTMENT
(Mr. SNVASRK PRASAD) (Prof .Ch.G.V.N.PRASAD)
EXTERNAL EXAMINER
ACKNOWLEDGEMENT
The satisfaction that accompanies the successful completion of the task would be put
incomplete without the mention of the people who made it possible, whose constant guidance
and encouragement crown all the efforts with success. We are thankful to Principal Dr. G.
SURESH for giving us the permission to carry out this project. We are highly indebted to
Prof.Ch.G.V.N.Prasad, Head of the Department of Computer Science And Engineering, for
providing necessary infrastructure and labs and also valuable guidance at every stage of this
project. We are grateful to our internal project guide Mr.SNVASRK PRASAD, Asst Prof. for
his constant motivation and guidance given by him during the execution of this project work.
We would like to thank the Teaching & Non-Teaching staff of Department of ComputerScience
and engineering for sharing their knowledge with us, last but not least we express our sincere
thanks to everyone who helped directly or indirectly for the completion of this project.
PRANITHA DEVIREDDY [20D41A05G7]
P.SAI VARSHITHA [20D41A05F2]
P.VENU [20D41A05F4]
P.AKSHAY [20D41A05F1]
QR SCAN BASED INTELLIGENT SYSTEM FOR SCHOOL
BUS TRACKING
ABSTRACT
In the present day, it is not uncommon for parents and guardians to worry about the well-
being and safety of their child or children. With the advent of numerous technologies, schools
that can afford, implement extensive and costly measures to ensure the security of their
students. However, such technologies remain inaccessible to the not so wealthy. This paper
proposes an efficient and reliable school bus tracking cum safety solution in the form of an
android application coupled with a website. The system incorporates location tracking, a
simple but fool-proof authentication and notification mechanism, and anomaly detection
techniques for raising alerts in case of unusual activity. Such a system allows for the parents
to be aware of their child in unprecedented as well as known circumstances. The school
authorities are also able to monitor the status of their buses via a website. As additional
features to improve the travel, this paper implements route optimization and traffic-based
delay prediction.
i
TABLE OF CONTENTS
S.No. Chapters Page No.
i. List of Figures............................................................................................iii
ii. List of Screenshots ..................................................................................... iv
1. INTRODUCTION
1.1 INTRODUCTION OF PROJECT……………………………………………01-02
1.2 LITERATURE SURVEY……………………………………………………..03-04
1.3 MODULES……………………………………………………………………...05
2. SYSTEM ANALYSIS
2.1 EXISTING SYSTEM & ITS DISADVANTAGES…………………………...06-07
2.2 PROPOSED SYSTEM & ITS ADVANTAGES……………………………...07-08
2.3 SYSTEM REQUIREMENTS…………………………………………………..09
3. SYSTEM STUDY
3.1 FEASIBILITY STUDY………………………………………………………..10-12
4. SYSTEM DESIGN
4.1 SYSTEM ARCHITECTURE…………………………………………………....13
4.2 DATA FLOW DIAGRAM……………………………………………………....14
4.3 UML DIAGRAMS…………………………………………………………….15-24
4.3.1 USECASE DIAGRAM………………………………………………….16-17
4.3.2 CLASS DIAGRAM……………………………………………………….18
4.3.3 SEQUENCE DIAGRAM…………………………………………….....19-20
4.3.4 ACTIVITY DIAGRAM…………………………………………………21-22
4.3.5 DEPLOYMENT DIAGRAM……………………………………………..23
4.3.6 DATA DICTIONARY…………………………………………………..24-28
ii
5.TECHNOLOGIES USED
5.1 WHAT IS PYTHON ? …………………………………………………………29
5.1.1 ADVANTAGES & DISADVANTAGES OF PYTHON……………...29-30
5.1.2 HISTORY……………………………………………………………......31
5.2 WHAT IS MACHINE LEARNING ? …………………………………………32
5.2.1 CATEGORIES OF ML………………………………………………......33
5.2.2 NEED FOR ML………………………………………………………….33
5.2.3 CHALLENGES IN ML……………………………………………….....34
5.2.4 APPLICATIONS……………………………………………………...…34
5.2.5 HOW TO START LEARNING ML?.....................................................35-37
5.2.6 ADVANTAGES & DISADVANTAGES OF ML…………………….38-39
5.3 PYTHON DEVELOPMENT STEPS………………………………………..39-41
5.4 MODULES USED IN PYTHON……………………………………………41-43
5.5 INSTALL PYTHON STEP BY STEP IN WINDOWS & MAC……………43-48
6. IMPLEMENTATION
6.1 SOFTWARE ENVIRONMENT……………………………………………..49
6.1.1 PYTHON……………………………………………………………..49-51
6.1.2 SAMPLE CODE…………………………………………………….52-56
7. SYSTEM TESTING
7.1 INTRODUCTION TO TESTING………………………………………….57-63
8. SCREENSHOTS…………………………………………………………..64-71
9. CONCLUSION…………………………………………………….72
10. REFERENCES……………………………………………………………73-74
iii
LIST OF FIGURES
Fig No Name Page No
4.1 System Architecture 13
4.2 Data Flow Diagram 14
4.3.1 Use case diagram 16-17
4.3.2 Class diagram 18
4.3.3 Sequence diagram 19-20
4.3.4 Activity diagram 21-22
4.3.5 Deployment diagram 23
4.3.6 Data dictionary 24-28
iv
LIST OF SCREENSHOTS
FIG NO SCREENSHOT PAGE NO
8.1 Home Page 64
8.2 Home Page about School 64
8.3 Admin Page 65
8.4 Login Page 65
8.5 Login Page 65
8.6 Contact Page 66
8.7 Admin Login Successful Page 66
8.8 Register Page 67
8.9 Details of Child 67
8.10 Bus Delay Update 67
8.11 Feedback Analysis Page 68
8.12 Sentiment Analysis Page 68
8.13 Conductor Login Successful Page 68
8.14 QR Code Scan Page 69
8.15 Details of Child 69
8.16 Parent Login Successful Page 69
8.17 Children Profile Page 70
8.18 Passwords 70
8.19 Details of Children 70
8.20 GPS Tracking 71
8.21 Notifications Page 71
8.22 Feedback Page 71
1
1.INTRODUCTION
1.1 INTRODUCTION TO PROJECT
In today’s world, ensuring safety and security is a major concern and top priority. There have
been a lot of reports of mishaps with children during travel. Child safety is always the main
concern for parents as well as the school authorities, especially when they are away from their
child. They are always eager to ensure that all necessary precautions are being taken. For
example, parents are always concerned about their child coming late from school. The presence
of conductors and caretakers on buses is being employed to ensure someone keeps a watch over
children and their safe boarding and leaving the bus. However, not all schools have enough
personnel and often parents at work need live updates of their child’s whereabouts.
Another common problem faced by the people in India is relying on the ever-busy
streets for daily commutes. Traffic especially affects heavy vehicles like buses which are prone
to delay. For schools facilitating buses as a mode of transport, they need to know how early the
buses should depart to pick up the students for school. In case of delay, the entire school
schedule gets disrupted.
Observations from a survey with the local school authorities and the parents of school-
going children revealed that there is a lack of such a system. However, there was general
agreement towards the existence of such a system being of good use. It is of particular value to
those who travel from far to get to the school and also to those who travel through congested
routes. A study of the existing literature on the topic reveals the existence of numerous tracking
technologies, which keep track of the student's activity, the location of the route of the bus.
Some of these also implement additional security measures. However, these suffer from the
requirement of hardware components and complicated use, while some are one dimensional and
have loopholes.
Therefore, a solution is needed which can:
• Provide reliable information about the whereabouts of a child from the point of pick-up to
drop-off.
• The application should be as automated as possible, reducing the work of bus staff
• The proposed solution shall also give additional information such as estimated arrival time
2
• The application should be intelligent and be able to issue alerts in case of a deviation from the
norm.
• The application should be easy to use and should not involve any complicated or expensive
hardware.
The paper proposes an android based solution that uses QR code scanning to
authenticate each child and log their entry or exit from the bus. The solution uses this logged
information, along with location and route information using google APIs, to monitor the live
status of the bus and the children. The system communicates via REST APIs with a Django
backend server and dispatches notifications to parents. The authors have also integrated features
to alert the conductor and school authorities in case of any mistakes in boarding, leaving or
route.
The application is reliable, easy to use and inexpensive. To address the problem of
traffic-induced delays, this study also presents work on an additional feature in the system to
predict the bus delays due to road anomalies to suggest to the school authorities what time the
school buses should leave in the morning to pick up the children. This paper is distributed in
seven sections. Section II of this paper discusses the related literature behind previous solutions
of student safety in buses, as well as routing and travel algorithms. Section III introduces the
proposed methodology, which is split into two parts: the first part dealing with the actual mobile
application for parents and bus staff, while the second explains our approach for predicting time
delays. In Section IV the results obtained through this work are summarized. Section V goes
over certain limitations and challenges in this study. The paper concludes with Section VI and
VII which detail the conclusion and future scope, respectively.
3
1.2 LITERATURE SURVEY
1.2.1 TITLE: “Mobile Application for College Bus Tracking”
ABSTRACT: This paper proposes an Android mobile phone application that gives information
about buses, bus numbers as well as bus routes both online and offline. Reason for Android
platform Android requires an open source development which is probably the most feasible and
a present user friendly approach. This paper also deals with Location Based Services, which are
used to track the current location of the bus as well as give an estimate remaining time for the
tracked bus to reach its destination using the client –server technology. Also It display the
required maps with the help of GPS.
1.2.2 TITLE: Child - Children Tracking Android Application March 2015
ABSTRACT: Android operating system is at the top in market because of its features
like portability, platform independence, and low memory consumption. As android
operating System is used in mobile phones, tablets and laptops it has covered more than
80% of the market. Now everyone is using android phone. As android is an open source
operating system many developers are developing various applications every day, Millions of
applications are available for use free of cost. These applications are helpful for Ticket booking,
banking services, Online shopping, Tracking our family members etc. The Secure Child
Application is designed for School and Parent to track the children while they are travelling
through School van. The days are Gone when one of the two parents will sit at home to take
care of the children and one earns. Now time has come for both the parents to work; in such
scenario the security of children is very important.
1.2.3 TITLE: Children Safety and School Bus Tracking Solution. International Journal of
Electrical, Electronics and Computer Systems (IJEECS)
ABSTRACT: Despite the strict majors taken for children safety by the authorities the crimes
over children are increasing on significant amount. To restrict these crimes it is important to
enhance security for children. Mishaps and missing of children are causing parent to worry
about their children. School authorities may be penalized heavily for these mishaps, So school
bus monitoring is an effective major to restrict these mishaps. This paper proposes an embedded
system which focues on children safety, tracking of school bus and exact location of school bus
with the help of longitude and altitude positioning of GPS and sending information through
SMS.
4
1.2.4 TITLE: Smart School Bus for Children Transportation Safety Enhancement with IOT
ABSTRACT: School is the second best place for kids to inculcate education and ethical values
next to home. Providing safety for the students throughout transportation to and from the school
plays a vital role. The school will scale back the range of accidents during the transportation.
This project helps both parents and therefore the school administration to manage and monitor
numerous factors like number of students aboard, details of each student, pickup and drop
timings, location, attendance system etc. parents can monitor the situation of the school bus
together with the pickup and drop timings of the student through an android application. In our
project, a GPS unit and a fingerprint sensing element that is connected to the Node MCU over
Wi-Fi through an Arduino Uno. The geographic coordinates of the school bus within which the
SKG13 GPS is located updates the location within the database unit. The fingerprint scanner
detects the identification of the student once the student boards the bus.
1.2.5 TITLE: RFID based school bus tracking and security system.
ABSTRACT: In present time due to increase in number of kidnapping and road accident cases,
parents always worry about their children. This paper recommends a SMS based solution which
assists parents to track their children location in real time.To track the location GPS module is
used and to identify the identity of the child a RFID card is used which is in built in the system.
Whenever a child boards a bus, the RFID tag located in his identity card will be detected by the
reader present in the bus and the system will identify the child and will send a text message to
the parents consisting the current location and time. In this way the parents will be able to keep
record of their kid's whereabouts. The paper also proposes security system such as drunk and
drive prevention system and speed control mechanism.
5
1.3 MODULES
Authentication Module: The Authentication module is responsible for implementing the QR
code scanning mechanism to verify the identity of students and school staff boarding the buses.
This module ensures a secure and fool-proof authentication process, reducing the risk of
unauthorized access and enhancing overall safety.
Location Tracking Module: The Location Tracking module utilizes GPS technology to
continuously monitor and track the real-time location of school buses. This information is
crucial for parents, school authorities, and the system itself to ensure that buses are on the correct
route, provide accurate arrival times, and enhance the overall visibility of the bus fleet.
Anomaly Detection Module: The Anomaly Detection module employs advanced techniques
to identify unusual activities or emergencies during bus journeys.
This module plays a crucial role in raising alerts in real-time, allowing for prompt responses to
potential safety concerns. By monitoring deviations from normal patterns, the system enhances
overall security measures.
User Interface Module (Android Application and Website): The User Interface module
provides an intuitive and user-friendly interface for both parents and school authorities. It
includes an Android application for parents to track their child's bus and receive notifications,
as well as a website for school staff to monitor the overall status of the buses. This module
ensures accessibility and ease of use for all stakeholders.
Optimization and Prediction Module: The Optimization and Prediction module focuses on
enhancing the efficiency of the school bus transportation system. It includes features such as
route optimization to minimize travel time and fuel consumption, and traffic-based delay
prediction to anticipate and address potential delays. This module contributes to cost savings
and ensures a more reliable and punctual transportation service.
6
2. SYSTEM ANALYSIS
2.1 EXISTING SYSTEM
The existing system for school bus tracking often relies on expensive and extensive
technologies, making it inaccessible for schools with budget constraints. Parents and guardians
are understandably concerned about the safety of their children during school bus transportation.
While some schools can afford advanced security measures, others lack access to such
resources. This project aims to address this disparity by proposing an efficient and affordable
school bus tracking cum safety solution. The system consists of an Android application paired
with a website, incorporating location tracking, a QR-based authentication mechanism, and
notification features. Additionally, anomaly detection techniques are employed to raise alerts in
case of unusual activities, ensuring an extra layer of security. The proposed system not only
keeps parents informed in both known and unforeseen circumstances but also allows school
authorities to monitor bus status through a dedicated website. To enhance the overall travel
experience, the system implements route optimization and traffic-based delay prediction as
additional features. This comprehensive approach seeks to make school bus tracking and safety
measures accessible to a broader range of educational institutions, promoting the well-being of
students without imposing a financial burden.
DISADVANTAGES OF EXISTING SYSTEM:
• Cost Constraints: The existing school bus tracking systems often come with high
implementation and maintenance costs, making them unaffordable for schools with limited
budgets. This financial barrier restricts the accessibility of advanced safety measures,
leaving many educational institutions with conventional and less secure methods of student
transportation.
• Limited Authentication Methods: Many existing systems rely on conventional
authentication methods, such as manual attendance or basic RFID cards. These methods can
be prone to errors or unauthorized usage, potentially compromising the safety of students
during bus journeys. Lack of advanced authentication measures can be a limitation in
ensuring fool-proof security.
• Inadequate Anomaly Detection: Some current systems may lack sophisticated anomaly
detection mechanisms, making them less capable of identifying and responding to unusual
activities or emergencies effectively.
7
• Scalability Issues: As the number of students and buses increases, scalability becomes a
significant concern for some existing systems. Scalability issues can lead to performance
degradation, delays in data processing, and decreased overall system efficiency, hindering
the system's ability to handle a growing student population.
• Limited Accessibility for Parents: Existing systems may not provide real-time and user-
friendly interfaces for parents to monitor their child's bus journey. Limited accessibility to
accurate and timely information about the bus location, expected arrival times, and potential
delays can create anxiety and inconvenience for parents, impacting their ability to stay
informed about their child's safety.
2.2 PROPOSED SYSTEM
The proposed system aims to overcome the limitations of the existing school bus tracking
systems by introducing a comprehensive and cost-effective solution. Our system incorporates
advanced features to enhance the overall security and efficiency of student transportation.
Through the integration of QR code scanning for authentication, we address the limitations of
traditional methods, ensuring a more fool-proof and secure verification process.
To improve anomaly detection, the proposed system implements sophisticated
techniques that can swiftly identify and respond to unusual activities or emergencies, thereby
enhancing the overall safety measures. The use of GPS-based location tracking provides real-
time and accurate information about the school buses, enabling parents to monitor their child's
journey conveniently through a user-friendly Android application and a dedicated website. This
ensures that parents are well-informed about their child's whereabouts, fostering a sense of
security.
Moreover, the system focuses on scalability to accommodate the growing needs of
educational institutions, ensuring optimal performance even as the student population and the
number of buses increase. By incorporating route optimization and traffic-based delay
prediction, our system not only prioritizes safety but also enhances the efficiency of the school
bus transportation system, providing a more streamlined and reliable service for both parents
and school authorities. The proposed system thus presents a holistic approach to school bus
tracking, addressing the limitations of the existing systems and promoting a safer and more
accessible environment for students.
8
ADVANTAGES OF PROPOSED SYSTEM:
• Enhanced Security Measures: The proposed system leverages QR code scanning for
authentication, offering a more robust and secure verification process compared to
traditional methods. This advanced authentication mechanism reduces the risk of
unauthorized access and ensures that only authorized individuals, such as students and
school staff, are allowed on the school buses.
• Real-Time Tracking and Monitoring: With the integration of GPS-based location
tracking, the system provides real-time and accurate information about the school buses.
Parents can easily monitor their child's journey through a user-friendly Android application
and a dedicated website. This real-time tracking enhances parental awareness and
contributes to the overall safety and security of students during transportation.
• Sophisticated Anomaly Detection: The proposed system incorporates advanced anomaly
detection techniques, enabling swift identification and response to unusual activities or
emergencies. This feature enhances the overall safety measures, ensuring that any potential
issues are addressed promptly. The system's ability to detect anomalies contributes to a safer
environment for students during their bus commute.
• Scalability and Efficiency: Addressing scalability concerns, the system is designed to
handle an increasing number of students and buses without compromising performance.
This scalability ensures optimal system efficiency, making it suitable for educational
institutions of varying sizes. The system's ability to scale contributes to its long-term
viability and effectiveness in accommodating the evolving needs of schools.
• Route Optimization and Delay Prediction: The inclusion of route optimization and
traffic-based delay prediction features improves the overall efficiency of the school bus
transportation system. By optimizing routes, the system minimizes travel time and fuel
consumption, leading to cost savings for the school. Additionally, predicting and addressing
traffic-based delays ensures a more reliable and punctual transportation service, contributing
to a positive experience for both students and parents.
9
2.3 SYSTEM REQUIREMENTS
HARDWARE REQUIREMENTS:
Processor i5 Processor 5th
Gen
RAM 8 GB
Hard Disk 1 TB
SOFTWARE REQUIREMENTS:
Operating System Windows 10 / 11
Programming Language Python 3.10
Domain Image Processing & Cloud Computing
Integrated Development Environment Visual Studio Code
Front End Technologies HTML5, CSS, JavaScript
Back End Technologies or Framework Django
Database (RDBMS) MySQL
Database Software WAMP or XAMPP Server
Web Server or Deployment Server Django Application Development Server
Design / Modelling Rational Rose
10
3. SYSTEM STUDY
3.1 FEASIBILITY STUDY
1. TECHNICAL FEASIBILITY
2. OPERATIONAL FEASIBILITY
3. ECONOMIC FEASIBILITY
A feasibility study assesses the operational, technical and economic merits of the proposed
project. The feasibility study is intended to be a preliminary review of the facts to see if it is
worthy of proceeding to the analysis phase. From the systems analyst perspective, the feasibility
analysis is the primary tool for recommending whether to proceed to the next phase or to
discontinue the project.
The feasibility study is a management-oriented activity. The objective of a feasibility study is
to find out if an information system project can be done and to suggest possible alternative
solutions.
Projects are initiated for two broad reasons:
1. Problems that lend themselves to systems solutions
2. Opportunities for improving through:
(a) Upgrading systems
(b) Altering systems
(c) Installing new systems
A feasibility study should provide management with enough information to decide:
• Whether the project can be done
• Whether the final product will benefit its intended users and organization
• What are the alternatives among which a solution will be chosen
TECHNICAL FEASIBILITY
A large part of determining resources has to do with assessing technical feasibility. It considers
the technical requirements of the proposed project. The technical requirements are then
compared to the technical capability of the organization. The systems project is considered
technically feasible if the internal technical capability is sufficient to support the project
requirements. The analyst must find out whether current technical resources can be upgraded or
added to in a manner that fulfils the request under consideration.
11
This is where the expertise of system analysts is beneficial, since using their own experience
and their contact with vendors they will be able to answer the question of technical feasibility.
The essential questions that help in testing the operational feasibility of a system include the
following:
• Is the project feasible within the limits of current technology?
• Does the technology exist at all?
• Is it available within given resource constraints?
• Is it a practical proposition?
• Manpower- programmers, testers & debuggers
• Software and hardware
• Are the current technical resources sufficient for the new system?
• Can they be upgraded to provide to provide the level of technology necessary for the new
system?
• Do we possess the necessary technical expertise, and is the schedule reasonable?
• Can the technology be easily applied to current problems?
• Does the technology have the capacity to handle the solution?
• Do we currently possess the necessary technology?
OPERATIONAL FEASIBILITY
Operational feasibility is dependent on human resources available for the project and involves
projecting whether the system will be used if it is developed and implemented.
Operational feasibility is a measure of how well a proposed system solves the problems, and
takes advantage of the opportunities identified during scope definition and how it satisfies the
requirements identified in the requirements analysis phase of system development.
The essential questions that help in testing the operational feasibility of a system include the
following:
• Does current mode of operation provide adequate throughput and response time?
• Does current mode provide end users and managers with timely, pertinent, accurate and useful
formatted information?
• Does current mode of operation provide cost-effective information services to the business?
• Could there be a reduction in cost and or an increase in benefits?
• Manpower problem
• Manager resistance
• Organizational conflicts and policies
12
• Social acceptability
• Government regulations
• Does management support the project?
• Legal aspects
• How do the end-users feel about their role in the new system?
ECONOMIC FEASIBILITY
Economic analysis could also be referred to as cost/benefit analysis. It is the most frequently
used method for evaluating the effectiveness of a new system. In economic analysis the
procedure is to determine the benefits and savings that are expected from a candidate system
and compare them with costs. If benefits outweigh costs, then the decision is made to design
and implement the system.
An entrepreneur must accurately weigh the cost versus benefits before taking an action.
Possible questions raised in economic analysis are:
• Is the system cost effective?
• Do benefits outweigh costs?
• The cost of doing full system study
• The cost of business employee time
• Estimated cost of hardware
• Estimated cost of software/software development
The concerned business must be able to see the value of the investment it is pondering before
committing to an entire system study. If short-term costs are not overshadowed by long-term
gains or produce no immediate reduction in operating costs, then the system is not economically
feasible, and the project should not proceed any further.
The exact costs are not required to determine economic feasibility. It is only required to
determine if it is feasible that the project costs will fall within the target budget or return on
investment. A rough estimate of the project schedule is required to determine if it would be
feasible to complete the systems project within a required timeframe. The required timeframe
would need to be set by the organization.
13
4. SYSTEM DESIGN
4.1 SYSTEM ARCHITECTURE
14
4.2 DATA FLOW DIAGRAM:
1. The DFD is also called as bubble chart. It is a simple graphical formalism that can be used to
represent a system in terms of input data to the system, various processing carried out on this
data, and the output data is generated by this system.
2. The data flow diagram (DFD) is one of the most important modeling tools. It is used to model
the system components. These components are the system process, the data used by the process,
an external entity that interacts with the system and the information flows in the system.
3. DFD shows how the information moves through the system and how it is modified by a series
of transformations. It is a graphical technique that depicts information flow and the
transformations that are applied as data moves from input to output.
4. DFD is also known as bubble chart. A DFD may be used to represent a system at any level of
abstraction. DFD may be partitioned into levels that represent increasing information flow and
functional detail.
15
4.3 UML DIAGRAMS
UML stands for Unified Modeling Language. UML is a standardized general-purpose
modeling language in the field of object-oriented software engineering. The standard is
managed, and was created by, the Object Management Group.
The goal is for UML to become a common language for creating models of object
oriented computer software. In its current form UML is comprised of two major components: a
Meta-model and a notation. In the future, some form of method or process may also be added
to; or associated with, UML.
The Unified Modeling Language is a standard language for specifying, Visualization,
Constructing and documenting the artifacts of software system, as well as for business modeling
and other non-software systems.
The UML represents a collection of best engineering practices that have proven
successful in the modeling of large and complex systems.
The UML is a very important part of developing objects oriented software and the
software development process. The UML uses mostly graphical notations to express the design
of software projects.
GOALS:
The Primary goals in the design of the UML are as follows:
1. Provide users a ready-to-use, expressive visual modeling Language so that they can develop and
exchange meaningful models.
2. Provide extendibility and specialization mechanisms to extend the core concepts.
3. Be independent of particular programming languages and development process.
4. Provide a formal basis for understanding the modeling language.
5. Encourage the growth of OO tools market.
6. Support higher level development concepts such as collaborations, frameworks, patterns and
components.
7. Integrate best practices.
16
4.3.1 USE CASE DIAGRAM:
A use case diagram in the Unified Modeling Language (UML) is a type of behavioral
diagram defined by and created from a Use-case analysis. Its purpose is to present a graphical
overview of the functionality provided by a system in terms of actors, their goals (represented
as use cases), and any dependencies between those use cases. The main purpose of a use case
diagram is to show what system functions are performed for which actor. Roles of the actors in
the system can be depicted.
FIG.4.3.1.1
17
FIG.4.3.1.2
FIG.4.3.1.3
18
4.3.2 CLASS DIAGRAM:
In software engineering, a class diagram in the Unified Modeling Language (UML) is a type of
static structure diagram that describes the structure of a system by showing the system's classes,
their attributes, operations (or methods), and the relationships among the classes. It explains
which class contains information.
FIG.4.3.2.1
19
4.3.3 SEQUENCE DIAGRAM:
A sequence diagram in Unified Modeling Language (UML) is a kind of interaction diagram
that shows how processes operate with one another and in what order. It is a construct of a
Message Sequence Chart. Sequence diagrams are sometimes called event diagrams, event
scenarios, and timing diagrams.
FIG.4.3.3.1
20
FIG.4.3.3.2
FIG.4.3.3.3
21
4.3.4 ACTIVITY DIAGRAM:
Activity diagrams are graphical representations of workflows of stepwise activities and actions
with support for choice, iteration and concurrency. In the Unified Modeling Language, activity
diagrams can be used to describe the business and operational step-by-step workflows of
components in a system. An activity diagram shows the overall flow of control.
FIG.4.3.4.1
22
FIG.4.3.4.2
FIG.4.3.4.3
23
4.3.5 DEPLOYMENT DIAGRAM:
Deployment Diagram is a type of diagram that specifies the physical hardware on which the
software system will execute. It also determines how the software is deployed on the underlying
hardware. It maps software pieces of a system to the device that are going to execute it.The
deployment diagram maps the software architecture created in design to the physical system
architecture that executes it. In distributed systems, it models the distribution of the software
across the physical nodes.
Deployment Diagram Symbol and notations
Deployment Diagram Notations
FIG.4.3.5.1
24
4.3.6 DATA DICTIONARY:
auth_group
Table comments: auth_group
Column Type Null Default
id int(11) No
name varchar(150) No
auth_group_permissions
Table comments: auth_group_permissions
Column Type Null Default
id bigint(20) No
group_id int(11) No
permission_id int(11) No
Indexes
auth_permission
Table comments: auth_permission
Column Type Null Default
id int(11) No
name varchar(255) No
content_type_id int(11) No
codename varchar(100) No
25
Indexes
Key name Type Unique Packed Column
Cardina
lity
Colla-
tion
Null
PRIMARY BTREE Yes No id 40 A No
auth_permission_conten
t_type_id_codename_0
1ab375a_uniq
BTREE Yes No
content_type_id A No
codename 40 A No
auth_permission_conten
t_type_id_2f476e4b
BTREE No No content_type_id A No
auth_user
Table comments: auth_user
Column Type Null Default
id int(11) No
password varchar(128) No
last_login datetime(6) Yes NULL
is_superuser tinyint(1) No
username varchar(150) No
first_name varchar(150) No
last_name varchar(150) No
email varchar(254) No
is_staff tinyint(1) No
is_active tinyint(1) No
date_joined datetime(6) No
26
Indexes
Keyname Type Unique Packed Column Cardinality Collation Null
PRIMARY BTREE Yes No id 0 A No
username BTREE Yes No username 0 A No
auth_user_groups
Table comments: auth_user_groups
Column Type Null Default
id bigint(20) No
user_id int(11) No
group_id int(11) No
Indexes
Key name Type Unique Packed Column
Cardinal
ity
Collation Null
PRIMARY BTREE Yes No id 0 A No
auth_user_groups_user
_id_group_id_94350c
0c_uniq
BTREE Yes No
user_id A No
group_id 0 A No
auth_user_groups_user
_id_6a12ed8b
BTREE No No user_id A No
auth_user_groups_gro
up_id_97559544
BTREE No No group_id A No
27
bus_delay_details
Table comments: bus_delay_details
Column Type Null Default
id bigint(20) No
delay_status longtext No
Indexes
Keyname Type Unique Packed Column Cardinality Collation Null
PRIMARY BTREE Yes No id 1 A No
childrens_data
Column Type Null Default
c_id int(11) No
children_rollnum varchar(50) Yes NULL
children_name varchar(50) No
children_mothername varchar(50) No
children_fathername varchar(50) No
children_contact varchar(50) Yes NULL
children_email varchar(254) No
children_password varchar(50) Yes NULL
children_address longtext No
children_class varchar(50) No
children_image varchar(100) Yes NULL
children_qrcode varchar(100) Yes NULL
children_status1 varchar(50) No
children_status2 varchar(50) No
28
Indexes
Keyname Type Unique Packed Column Cardinality Collation Null
PRIMARY BTREE Yes No c_id 3 A No
conductorapp_qrmodels
Table comments: conductorapp_qrmodels
Column Type Null Default
id bigint(20) No
qrcode varchar(100) Yes NULL
Indexes
Keyname Type Unique Packed Column Cardinality Collation Null
PRIMARY BTREE Yes No id 8 A No
user_feedback
Table comments: user_feedback
Column Type Null Default
feedback_id int(11) No
rating varchar(200) Yes NULL
text varchar(200) Yes NULL
sentiment varchar(700) Yes NULL
userfeedback_id int(11) Yes NULL
29
5. TECHNOLOGIES
5.1 WHAT IS PYTHON?
Below are some facts about Python.
Python is currently the most widely used multi-purpose, high-level programming language.
Python allows programming in Object-Oriented and Procedural paradigms. Python
Programs generally are smaller than other programming languages like Java.
Programmers have to type relatively less and indentation requirement of the language,
makes them readable all the time.
Python language is being used by almost all tech-giant companies like – Google, Amazon,
Facebook, Instagram, Dropbox, Uber… etc.
The biggest strength of Python is huge collection of standard library which can be used forthe
following –
• Machine Learning
• GUI Applications (like Kivy, Tkinter, PyQt etc.)
• Web frameworks like Django (used by YouTube, Instagram, Dropbox)
• Image processing (like Opencv, Pillow)
• Web scraping (like Scrapy, BeautifulSoup, Selenium)
• Test frameworks
• Multimedia
5.1.1 ADVANTAGES & DISADVANTAGES OF PYTHON
1. Extensive Libraries
Python downloads with an extensive library and it contain code for various purposes like
regular expressions, documentation-generation, unit-testing, web browsers, threading
databases, CGI, email, image manipulation, and more. So, we don’t have to write the complete
code for that manually.
2. IOT Opportunities
Since Python forms the basis of new platforms like Raspberry Pi, it finds the future bright for
the Internet of Things. This is a way to connect the language with the real world.
30
3. Simple and Easy
When working with Java, you may have to create a class to print ‘Hello World’. But in Python,
just a print statement will do. It is also quite easy to learn, understand, and code.This is why
when people pick up Python, they have a hard time adjusting to other more verbose languages
like Java.
4. Readable
Because it is not such a verbose language, reading Python is much like reading English. This is
the reason why it is so easy to learn, understand, and code. It also does not need curlybraces to
define blocks, and indentation is mandatory. This further aids the readability ofthe code.
5. Object-Oriented
This language supports both the procedural and object-oriented programming paradigms.
While functions help us with code reusability, classes and objects let us modelthe real world. A
class allows the encapsulation of data and functions into one.
6. Free and Open-Source
Like we said earlier, Python is freely available. But not only can you download Pythonforfree,
but you can also download its source code, make changes to it, and even distributeit. It downloads
with an extensive collection of libraries to help you with your tasks.
7. Portable
When you code your project in a language like C++, you may need to make some changesto it if
you want to run it on another platform. But it isn’t the same with Python. Here, youneed to code
only once, and you can run it anywhere. This is called Write Once Run Anywhere (WORA).
However, you need to be careful enough not to include any system dependent features.
8. Interpreted
Lastly, we will say that it is an interpreted language. Since statements are executed one by
one, debugging is easier than in compiled languages.
31
Disadvantages of Python
So far, we’ve seen why Python is a great choice for your project. But if you choose it, you
should beaware of its consequences as well. Let’s now see the downsides of choosing Python
over another language.
1. Speed Limitations
We have seen that Python code is executed line by line. But since Python is interpreted, it
often results in slow execution. This, however, isn’t a problem unless speed is a focal point
for the project. In other words, unless high speed is a requirement, the benefits offered by
Python are enough to distract us from its speed limitations.
2. Weak in Mobile Computing and Browsers
While it serves as an excellent server-side language, Python is much rarely seen on the
client-side. Besides that, it is rarely ever used to implement smartphone-based
applications. One such application is called Carbonnelle.
The reason it is not so famous despite the existence of Bryton is that it isn’t that secure.
3. Design Restrictions
As you know, Python is dynamically-typed. This means that you don’t need to declare the
type of variable while writing the code. It uses duck-typing. But wait, what’s that? Well,
it just means that if it looks like a duck, it must be a duck. While this is easy on the
programmers during coding, it can raise run-time errors.
4. Underdeveloped Database Access Layers
Compared to more widely used technologies like JDBC (Java DataBase
Connectivity) and ODBC (Open DataBase Connectivity), Python’s database access layers
are a bit underdeveloped. Consequently, it is less often applied in huge enterprises.
5. Simple
No, we’re not kidding. Python’s simplicity can indeed be a problem. Take my example. I
don’t do Java, I’m more of a Python person.
This was all about the Advantages and Disadvantages of Python Programming Language.
32
5.1.2 HISTORY OF PYTHON
What do the alphabet and the programming language Python have in common? Right, both
start with ABC. If we are talking about ABC in the Python context, it's clear that the
programming language ABC is meant. ABC is a general-purpose programming language
and programming environment, which had been developed in the Netherlands, Amsterdam,
at the CWI (Centrum Wiskunde &Informatica). The greatest achievement of ABC was to
influence the design of Python. Python was conceptualized in the late 1980s. Guido van
Rossum worked that time in a project at the CWI, called Amoeba, a distributed operating
system. In an interview with Bill Venners1
, Guido van Rossum said: "In the early 1980s, I
worked as an implementer on a team building a language called ABC at Centrum Wiskunde
en Informatica (CWI). I don't know how well people know ABC's influence on Python. I
try to mention ABC's influence because I'm indebted to everything I learned during that
project and to the people who worked on it. Later on in the same Interview, Guido van
Rossum continued: "I remembered all my experience and some of my frustration with
ABC. I decided to try to design a simple scripting language that possessed some of ABC's
better properties, but without its problems. So I started typing. I created a simple virtual
machine, a simple parser, and a simple runtime. I made my own version of the various
ABCparts that I liked.
5.2 WHAT IS MACHINE LEARNING?
Before we take a look at the details of various machine learning methods, let's start by
looking at what machine learning is, and what it isn't. Machine learning is often categorized
as a subfield of artificial intelligence, but I find that categorization can often be misleading
at first brush. The study of machine learning certainly arose from research in this context,
but in the data science application of machine learning methods, it's more helpful to think
of machine learning as a means of building models of data.
Fundamentally, machine learning involves building mathematical models to help
understand data. "Learning" enters the fray when we give these models tunable parameters
that can be adapted to observed data; in this way the program can be considered to be
"learning" from the data. Once these models have been fit to previously seen data, they can
be used to predict and understand aspects of newly observed data.
33
I'll leave to the reader the more philosophical digression regarding the extent to which this
type of mathematical,model-based "learning" is similar to the "learning" exhibited by the
human brain. Understanding the problem setting in machine learning is essential to using
these tools effectively, and so we will start with some broad categorizations of the types of
approacheswe'll discuss here.
5.2.1 Categories of Machine Leaning
At the most fundamental level, machine learning can be categorized into two main types:
supervised learning and unsupervised learning.
Supervised learning involves somehow modeling the relationship between measured
features of data and some label associated with the data; once this model is determined, it
can be used to apply labels.
Unsupervised learning involves modeling the features of a dataset without reference to any
label, and is often described as "letting the dataset speak for itself." These models include
tasks such as clustering and dimensionality reduction. Clustering algorithms identify
distinct groups of data, while dimensionality reduction algorithms search for more succinct
representations of the data. We will see examples of both types of unsupervised learning
in the following section.
5.2.2 Need for Machine Learning
Human beings, at this moment, are the most intelligent and advanced species on earth
because they can think, evaluate and solve complex problems. On the other side, AI is still
in its initial stage and haven’t surpassed human intelligence in many aspects. Then the
question is that what is the need to make machine learn? The most suitable reason for doing
this is, “to make decisions, based on data, with efficiency and scale”.
Lately, organizations are investing heavily in newer technologies like Artificial
Intelligence, Machine Learning and Deep Learning to get the key information from data to
perform several real-world tasks and solve problems. The fact is that we can’t do without
human intelligence, but other aspect is thatwe all need to solve real-world problems with
efficiency at a huge scale. That is why the need for machine learning arises.
34
5.2.3 Challenges in Machines Learning
While Machine Learning is rapidly evolving, making significant strides with cybersecurity
and autonomous cars, this segment of AI as whole still has a long way to go. The reason
behind is that ML has not been able to overcome number of challenges. The challenges
that ML is facing currently are −
Quality of data − having good-quality data for ML algorithms is one of the biggest
challenges. Use of low-quality data leads to the problems related to data preprocessing and
feature extraction.
Time-Consuming task − another challenge faced by ML models is the consumption of time
especially for data acquisition, feature extraction and retrieval.
Lack of specialist persons − As ML technology is still in its infancy stage, availability of
expert resources is a tough job.
No clear objective for formulating business problems − Having no clear objective and
well -defined goal for business problems is another key challenge for ML because this
technology is not that mature yet.
Issue of over fitting & under fitting − If the model is over fitting or under fitting, it cannot
berepresented well for the problem.
Curse of dimensionality − another challenge ML model faces is too many features of data
points. This can be a real hindrance.
Difficulty in deployment − Complexity of the ML model makes it quite difficult to be
deployed in real life.
5.2.4 Applications of Machine Learning:
Machine Learning is the most rapidly growing technology and according to researchers we
are in the golden year of AI and ML. It is used to solve many real-world complex problems
which cannot be solved with traditional approach. Following are some real-world
applications of ML −
• Emotion analysis
• Sentiment analysis
• Error detection and prevention
35
• Weather forecasting and prediction
• Stock market analysis and forecasting
• Speech synthesis
• Speech recognition
• Customer segmentation
• Object recognition
• Fraud detection
• Fraud prevention
• Recommendation of products to customer in online shopping.
5.2.5 How to Start Learning Machine Learning?
Arthur Samuel coined the term “Machine Learning” in 1959 and defined it as a “Field of
study that gives computers the capability to learn without being explicitly
programmed”.
And that was the beginning of Machine Learning! In modern times, Machine Learning is one
Of the most popular (if not the most!) career choices. According to Indeed, Machine Learning
Engineer Is the Best Job of 2019 with a 344% growth and an average base salary of $146,085
per year.
But there is still a lot of doubt about what exactly Machine Learning is and how to start
learning it? So this article deals with the Basics of Machine Learning and also the path you
can follow to eventually become a full-fledged Machine Learning Engineer. Now let’s get
started!!!
How to start learning ML?
This is a rough roadmap you can follow on your way to becoming an insanely talented
Machine Learning Engineer. Of course, you can always modify the steps according to your
needs to reach your desired end-goal!
Step 1 – Understand the Prerequisites
In the case, you are a genius, you could start ML directly but normally, there are some
prerequisites that you need to know which include Linear Algebra, Multivariate Calculus,
Statistics, and Python. And if you don’t know these, never fear!
36
(a) Learn Linear Algebra and Multivariate Calculus
Both Linear Algebra and Multivariate Calculus are important in Machine Learning are more
focused on application heavy machine learning, then you will not be that heavily focused
on math’s as there are many common libraries available. But if you want to focus onR&D
in Machine Learning, then mastery of Linear Algebra and Multivariate Calculus is very
important as you will have to implement many ML algorithms from scratch.
(b) Learn Statistics
Data plays a huge role in Machine Learning. In fact, around 80% of your time as an ML
expert will be spent collecting and cleaning data. And statistics is a field that handles the
collection, analysis, and presentation of data. So it is no surprise that you need to learn it!!!
Some of the key concepts in statistics that are important are Statistical Significance,
Probability Distributions, Hypothesis Testing, Regression, etc. Also, Bayesian Thinking is
also a very important part of ML which deals with various concepts like Conditional
Probability, Priors, and Posteriors, Maximum Likelihood, etc.
(c)Learn Python
Some people prefer to skip Linear Algebra, Multivariate Calculus and Statistics and learn
them as they go along with trial and error. But the one thing that you absolutely cannot skip
is Python! While there are other languages you can use for Machine Learning like R, Scala,
etc. Python is currently the most popular language for ML. In fact, there are many Python
libraries that are specifically useful for Artificial Intelligence and Machine Learning such
as Keras, TensorFlow, Scikit-learn, etc. So if you want to learn ML, it’s best if you learn
Python! You can do that using various online resources and courses such as Fork Python
available Free on GeeksforGeeks.
Step 2 – Learn Various ML Concepts
Now that you are done with the prerequisites, you can move on to actually learning ML
(Which is the fun part!!!) It’s best to start with the basics and then move on to more
complicated stuff. Some of the basic concepts in ML are:
37
(a) Terminologies of Machine Learning
• Model – A model is a specific representation learned from data by applying some
machine learning algorithm. A model is also called a hypothesis.
• Feature – A feature is an individual measurable property of the data. A set of numeric
features can be conveniently described by a feature vector.
• Target (Label) – A target variable or label is the value to be predicted by our model.
For the fruit example discussed in the feature section, the label with each set of input
would be the name of the fruit like apple, orange, banana, etc.
• Training – The idea is to give a set of inputs(features) and it’s expected outputs(labels),
so after training, we will have a model (hypothesis) that will then map new data to one
of the categories trained on.
• Prediction – Once our model is ready, it can be fed a set of inputs to which it will
provide a predicted output(label).
(b) Types of Machine Learning
• Supervised Learning – This involves learning from a training dataset with labeled
data using classification and regression models. This learning process continues until
the required level of performance is achieved.
• Unsupervised Learning – This involves using unlabelled data and then finding the
underlying structure in the data in order to learn more and more about the data itself
using factor and cluster analysis models.
• Semi-supervised Learning – This involves using unlabelled data like Unsupervised
Learning with a small amount of labeled data. Using labeled data vastly increases the
learning accuracy and is also more cost-effective than Supervised Learning.
• Reinforcement Learning – This involves learning optimal actions through trial and
error. So the next action is decided by learning behaviors that are based on the current
state and that will maximize the reward in the future.
38
5.2.6 ADVANTAGES & DISADVANTAGES OF ML
Advantages of Machine learning:
1. Easily identifies trends and patterns -
Machine Learning can review large volumes of data and discover specific trends and patterns
that would not be apparent to humans. For instance, for an e-commerce website like Amazon,
it serves to understand the browsing behaviors and purchase histories of its users to help cater
to the right products, deals, and reminders relevant to them. It uses the results to reveal relevant
advertisements to them.
2. No human intervention needed (automation)
With ML, you don’t need to babysit your project every step of the way. Since it means giving
machines the ability to learn, it lets them make predictions and also improve the algorithms
on their own. A common example of this is anti-virus software’s. They learn to filter new
threatsas they are recognized. ML is also good at recognizing spam.
3. Continuous Improvement
As ML algorithms gain experience, they keep improving in accuracy and efficiency. This
lets them make better decisions. Say you need to make a weather forecast model. As the
amount of data you have keeps growing, your algorithms learn to make more accurate
predictions faster.
4. Handling multi-dimensional and multi-variety data
Machine Learning algorithms are good at handling data that are multi-dimensional and
multivariate, and they can do this in dynamic or uncertain environments.
5. Wide Applications
You could be an e-trailer or a healthcare provider and make ML work for you. Where it does
apply, it holds the capability to help deliver a much more personal experience to customers
while also targeting the right customers.
39
Disadvantages of Machine Learning:
1. Data Acquisition
Machine Learning requires massive data sets to train on, and these should be
inclusive/unbiased, and of good quality. There can also be times where they must wait for
new data to be generated.
2. Time and Resources
ML needs enough time to let the algorithms learn and develop enough to fulfill their purpose
with a considerable amount of accuracy and relevancy. It also needs massive resources to
function. This can mean additional requirements of computer power for you.
3. Interpretation of Results
Another major challenge is the ability to accurately interpret results generated by the
algorithms. You must also carefully choose the algorithms for your purpose.
4. High error-susceptibility
Machine Learning is autonomous but highly susceptible to errors. Suppose you train an
algorithm with data sets small enough to not be inclusive. You end up with biased predictions
coming from a biased training set. This leads to irrelevant advertisements being displayed to
customers. In the case of ML, such blunders can set off a chain of errors that can go undetected
for long periods of time. And when they do get noticed, it takes quite some time to recognize
the source of the issue, and even longer to correct it.
5.3 PYTHON DEVELOPMENT STEPS
Guido Van Rossum published the first version of Python code (version 0.9.0) at alt.sources
in February 1991. This release included already exception handling, functions, and the core
data types of list, dict, str and others. It was also object oriented and had a module system.
Python version 1.0 was released in January 1994. The major new features included in this
release were the functional programming tools lambda, map, filter and reduce, which Guido
Van Rossum never liked. Six and a half years later in October 2000.
40
This release included list comprehensions, a full garbage collector and it was supporting
Unicode Python flourished for another 8 years in the versions 2.x before the nextmajorrelease
as Python 3.0 (also known as "Python 3000" and "Py3K") was released. Python3 is not
backwards compatible with Python 2.x. The emphasis in Python 3 had been on the removal
of duplicate programming constructs and modules, thus fulfilling or coming close to
fulfilling the 13th law of the Zen of Python: "There should be one -- and preferably only one
-- obvious way to do it. Some changes in Python 7.3:
• Print is now a function
• Views and iterators instead of lists
• The rules for ordering comparisons have been simplified. E.g. a heterogeneous list
cannot be sorted, because all the elements of a list must be comparable to each other.
• There is only one integer type left, i.e. int. long is int as well.
• The division of two integers returns a float instead of an integer. "//" can be used to have
the "old" behaviour.
• Text Vs. Data Instead Of Unicode Vs. 8-bit
Purpose:
We demonstrated that our approach enables successful segmentation of intra-retinal
layers—even with low-quality images containing speckle noise, low contrast, and different
intensity ranges throughout—with the assistance of the ANIS feature.
Python
Python is an interpreted high-level programming language for general-purpose
programming. Created by Guido van Rossum and first released in 1991, Python has a
design philosophy that emphasizes code readability, notably using significant whitespace.
Python features a dynamic type system and automatic memory management. It supports
multiple programming paradigms, including object-oriented, imperative, functional and
procedural, and has a large and comprehensive standard library.
• Python is Interpreted − Python is processed at runtime by the interpreter. You do not
need to compile your program before executing it. This is similar to PERL and PHP.
• Python is Interactive − you can actually sit at a Python prompt and interact with the
interpreter directly to write your programs.
41
• Python also acknowledges that speed of development is important. Readable and terse
code is part of this, and so is access to powerful constructs that avoid tedious repetition
of code. Maintainability also ties into this may be an all but useless metric, but it does
say something about how much code you have to scan, read and/or understand to
troubleshoot problems or tweak behaviors. This speed of development, the ease with
which a programmer of other languages can pick up basic Python skills and the huge
standard library is key to another area where Python excels. All its tools have been
quick to implement, saved a lot of time, and several of them have later been patched
and updated by people with no Python background - without breaking.
5.4 MODULES USED IN PYTHON
Tensor flow
Tensor Flow is a free and open-source software library for dataflow and differentiable
programming across a range of tasks. It is a symbolic math library, and is also used for
machine learning applications such as neural networks. It is used for both research and
production at Google.
Tensor Flow was developed by the Google Brain team for internal Google use. It was
releasedunder the Apache 2.0 open-source license on November 9, 2015.
Numpy
Numpy is a general-purpose array-processing package. It provides a high-performance
multidimensional array object, and tools for working with these arrays.
It is the fundamental package for scientific computing with Python. It contains various
features including these important ones:
• A powerful N-dimensional array object
• Sophisticated (broadcasting) functions
• Tools for integrating C/C++ and Fortran code
• Useful linear algebra, Fourier transform, and random number capabilities
• Besides its obvious scientific uses, Numpy can also be used as an efficient
multidimensional container of generic data. Arbitrary data-types can be defined using
Numpy which allows Numpy to seamlessly and speedily integrate with a wide varieties.
42
Pandas
Pandas is an open-source Python Library providing high-performance data manipulation
and analysis tool using its powerful data structures. Python was majorly used for data
munging and preparation. It had very little contribution towards data analysis. Pandas
solved this problem. Using Pandas, we can accomplish five typical steps in the processing
and analysis of data, regardless of the origin of data load, prepare, manipulate, model, and
analyze. Python with Pandas is used in a wide range of fields including academic and
commercial domains including finance, economics, Statistics, analytics, etc.
Matplotlib
Matplotlib is a Python 2D plotting library which produces publication quality figures in a
variety of hardcopy formats and interactive environments across platforms. Matplotlib can
be used in Python scripts, the Python and IPython shells, the Jupyter Notebook, web
application servers, and four graphical user interface toolkits. Matplotlib tries to make easy
things easy and hard things possible. You can generate plots, histograms, power spectra,
bar charts, error charts, scatter plots, etc., with just a few lines of code. For examples, see
the sample plots and thumbnail gallery.
For simple plotting the pyplot module provides a MATLAB-like interface, particularly
when combined with IPython. For the power user, you have full control of line styles, font
properties, axes properties, etc. via an object oriented interface or via a set of functions
familiar to MATLAB users.
Scikit – learn
Scikit-learn provides a range of supervised and unsupervised learning algorithms via a
consistent interface in Python. It is licensed under a permissive simplified BSD license and
is distributed under many Linux distributions, encouraging academic and commercial use.
Python
Python is an interpreted high-level programming language for general-purpose
programming. Created by Guido van Rossum and first released in 1991, Python has a
design philosophy that emphasizes code readability, notably using significant whitespace.
43
Python features a dynamic type system and automatic memory management. It supports
multiple programming paradigms, including object-oriented, imperative, functional and
procedural, and has a large and comprehensive standard library.
• Python is Interpreted − Python is processed at runtime by the interpreter. You do not
need to compile your program before executing it. This is similar to PERL and PHP.
• Python is Interactive − you can actually sit at a Python prompt and interact with the
interpreter directly to write your programs.
Python also acknowledges that speed of development is important. Readable and terse code
is part of this, and so is access to powerful constructs that avoid tedious repetition of code.
Maintainability also ties into this may be an all but useless metric, but it does say something
about how much code you have to scan, read and/or understand to troubleshoot problems
or tweak behaviors. This speed of development, the ease with which a programmer of other
languages can pick up basic Python skills and the huge standard library is key to another
area where Python excels. All its tools have been quick to implement, saved a lot of time,
and several of them have later been patched and updated by people with no Python
background - without breaking.
5.5 INSTALL PYTHON STEP-BY-STEP IN WINDOWS AND MAC
Python a versatile programming language doesn’t come pre-installed on your computer
devices. Python was first released in the year 1991 and until today it is a very popular
high-level programming language. Its style philosophy emphasizes code readability
with its notable use of great whitespace.
The object-oriented approach and language construct provided by Python enables
programmers to write both clear and logical code for projects. This software does not
come pre-packaged with Windows.
How to Install Python on Windows and Mac:
There have been several updates in the Python version over the years. The question
is how to install Python? It might be confusing for the beginner who is willing to start
learningPython but this tutorial will solve your query. The latest or the newest version of
Python isversion 3.7.4 or in other words, it is Python 3.
44
Note: The python version 3.7.4 cannot be used on Windows XP or earlier devices.
Before you start with the installation process of Python. First, you need to know about your
System Requirements. Based on your system type i.e. operating system and based
processor, you must download the python version. My system type is a Windows 64-bit
operating system. So the steps below are to install python version 3.7.4 on Windows 7
device or to install Python 3. Download the Python Cheatsheet here. The steps on how to
install Python on Windows 10, 8 and 7 are divided into 4 parts to help understand better.
Download the Correct version into the system
Step 1: Go to the official site to download and install python using Google Chrome or
any other web browser. OR Click on the following link: https://www.python.org
Now, check for the latest and the correct version for your operating system.
45
Step 2: Click on the Download Tab.
Step 3: You can either select the Download Python for windows 3.7.4 button in Yellow
Color or you can scroll further down and click on download with respective to their version.
Here, we are downloading the most recent python version for windows 3.7.4
Step 4: Scroll down the page until you find the Files option.
Step 5: Here you see a different version of python along with the operating system.
• To download Windows 32-bit python, you can select any one from the three options:
Windows x86 embeddable zip file, Windows x86 executable installer or Windows x86 web
based installer.
46
•To download Windows 64-bit python, you can select any one from the three options:
Windows x86-64 embeddable zip file, Windows x86-64 executable installer or Windows
x8664 web-based installer.
Here we will install Windows x86-64 web-based installer. Here your first part regarding
which version of python is to be downloaded is completed. Now we move ahead with the
second part in installing python i.e. Installation
Note: To know the changes or updates that are made in the version you can click on the
Release Note Option.
Installation of Python
Step 1: Go to Download and Open the downloaded python version to carry out the
installation process.
Step 2: Before you click on Install Now, Make sure to put a tick on Add Python 3.7 to PATH.
47
Step 3: Click on Install NOW After the installation is successful. Click on Close.
With these above three steps on python installation, you have successfully and correctly
installed Python. Now is the time to verify the installation. Note: The installation process
might take a couple of minutes.
Verify the Python Installation
Step 1: Click on Start
Step 2: In the Windows Run Command, type “cmd”.
48
Step 3: Open the Command prompt option.
Step 4: Let us test whether the python is correctly installed. Type python –V and press Enter.
Step 5: You will get the answer as 3.7.4
Note: If you have any of the earlier versions of Python already installed. You must first
uninstall the earlier version and then install the new one.
Check how the Python IDLE works
Step 1: Click on Start
Step 2: In the Windows Run command, type “python idle”.
Step 3: Click on IDLE (Python 3.7 64-bit) and launch the program
Step 4: To go ahead with working in IDLE you must first save the file.
Click on File > ClickOn Save
Step 5: Name the file and save as type should be Python files. Click on SAVE. Here I have
named the files as Hey World.
Step 6: Now for e.g. enter print
49
6. IMPLEMENTATION
6.1 SOFTWARE ENVIRONMENT
6.1.1 PYTHON
Python is a general-purpose interpreted, interactive, object-oriented, and high-level
programming language. An interpreted language, Python has a design philosophy that
emphasizes code readability (notably using whitespace indentation to delimit code blocks rather
than curly brackets or keywords), and a syntax that allows programmers to express concepts in
fewer lines of code than might be used in languages such as C++or Java. It provides constructs
that enable clear programming on both small and large scales. Python interpreters are available
for many operating systems. C, Python, the reference implementation of Python, is open source
software and has a community-based development model, as do nearly all of its variant
implementations. C, Python is managed by the non-profit Python Software Foundation. Python
features a dynamic type system and automatic memory management. Interactive Mode
Programming.
What is Python programming language?
Python is a high-level, general-purpose, interpreted programming language.
1) High-level
Python is a high-level programming language that makes it easy to learn. Python doesn’t require
you to understand the details of the computer in order to develop programs efficiently.
2) General-purpose
Python is a general-purpose language. It means that you can use Python in various domains
including:
• Web applications
• Big data applications
• Testing
• Automation
• Data science, machine learning, and AI
50
3) Interpreted
Python is an interpreted language. To develop a Python program, you write Python code into a
file called source code.
To execute the source code, you need to convert it to the machine language that the computer
can understand. And the Python interpreter turns the source code, line by line, once at a time,
into the machine code when the Python program executes.
Compiled languages like Java and C# use a compiler that compiles the whole source code
before the program executes.
Why Python?
Python increases your productivity. Python allows you to solve complex problems in less time
and fewer lines of code. It’s quick to make a prototype in Python.
Python becomes a solution in many areas across industries, from web applications to data
science and machine learning.
Python is quite easy to learn in comparison with other programming languages. Python syntax
is clear and beautiful.
Python has a large ecosystem that includes lots of libraries and frameworks.
Python is cross-platform. Python programs can run on Windows, Linux, and macOS.
Python has a huge community. Whenever you get stuck, you can get help from an active
community.
Python developers are in high demand.
History of Python
• Python was created by Guido Van Rossum.
• The design began in the late 1980s and was first released in February 1991.
51
Why the name Python?
No. It wasn't named after a dangerous snake. Rossum was fan of a comedy series from late 70s.
The name "Python" was adopted from the same series "Monty Python's Flying Circus".
Python Version History
Implementation started - December 1989
Internal releases – 1990
52
6.1.2 SAMPLE CODE
from tkinter import * import tkinter from
tkinter import filedialog import
matplotlib.pyplot as plt from tkinter.filedialog
import askopenfilename import numpy as np
import cv2 from tkinter import ttk import os
import tensorflow as tf
import os import sys from keras.models import
model_from_json import pickle from
keras.applications.inception_v3 import InceptionV3
main = tkinter.Tk()
main.title("Deep Learning based Object Detection and Recognition Framework for the
Visually-Impaired") main.geometry("1200x1200") global filename global ssd global
inception_model class_labels = ['fifty', 'fivehundred', 'hundred', 'ten', 'thousand',
'twenty'] net =
cv2.dnn.readNetFromCaffe("model/SSD300.txt","model/SSD300.caffemodel")
CLASSES = ["background", "aeroplane", "bicycle", "bird", "boat",
"bottle", "bus", "car", "cat", "chair", "cow", "diningtable",
"dog", "horse", "motorbike", "person", "pottedplant", "sheep",
"sofa", "train", "tvmonitor"]
COLORS = np.random.uniform(0, 255, size=(len(CLASSES), 3)) def
loadInception():
53
global inception_model with
open('model/model.json', "r") as json_file:
loaded_model_json = json_file.read()
inception_model = model_from_json(loaded_model_json)
json_file.close()
inception_model.load_weights("model/model_weights.h5")
inception_model._make_predict_function()
pathlabel.config(text="SSD-Inception Model loaded") def
detectCurrency(filename): global inception_model
image = cv2.imread(filename) img = cv2.resize(image,
(32,32)) im2arr = np.array(img) im2arr =
im2arr.reshape(1,32,32,3) img = np.asarray(im2arr)
img= img.astype('float32') img
= img/255 preds = inception_model.predict(img)
predict = np.argmax(preds)output = "" if
np.amax(preds) > 0.98:
output = "Currency Note Recognized as: "+class_labels[predict]
return output def ssdDetection(): global filename global
ssd
row = 50 text.delete('1.0', END) filename =
filedialog.askopenfilename(initialdir="testImages") output =
detectCurrency(filename) text.insert(END,str(filename)+"
loadedn") pathlabel.config(text=str(filename)+" loaded")
image_np = cv2.imread(filename) image_np =
54
cv2.resize(image_np,(800,500))
(h, w) = image_np.shape[:2]
ssd = tf.Graph() with
ssd.as_default():
od_graphDef = tf.GraphDef() with
tf.gfile.GFile('model/frozen_inference_graph.pb', 'rb') as file:
serializedGraph = file.read()
od_graphDef.ParseFromString(serializedGraph)
tf.import_graph_def(od_graphDef, name='')
with ssd.as_default(): with
tf.Session(graph=ssd) as sess:
blob = cv2.dnn.blobFromImage(cv2.resize(image_np, (300, 300)),0.007843, (300, 300))
net.setInput(blob) detections = net.forward() for i in np.arange(0,
detections.shape[2]) confidence = detections[0, 0, i, 2]
if confidence > 0.2:
idx = int(detections[0, 0, i, 1]
box = detections[0, 0, i, 3:7] * np.array([w, h, w, h]),(startX, startY, endX, endY) =
box.astype("int") print(confidence * 100 if (confidence * 100) > 70:
label = "{}: {:.2f}%".format(CLASSES[idx],confidence * 100)
cv2.putText(image_np, label, (10, row), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (255, 0, 0),
2, cv2.LINE_AA) row = row + 30 text.insert(END,"Detected &
Recognized Objects: "+CLASSES[idx]+"n") if (confidence * 100) > 50:
cv2.rectangle(image_np, (startX, startY), (endX, endY),COLORS[idx],
55
if len(output) > 0:
text.insert(END,output+"n") text.update_idletasks()
cv2.putText(image_np, output, (10, 450), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (255, 0,
0), 2, cv2.LINE_AA) cv2.imshow('SSD Object
Detection Output', image_np) cv2.waitKey(0) def
graph():
f = open('model/history.pckl', 'rb') data
= pickle.load(f)
f.close()
accuracy = data['accuracy'] loss = data['loss']
plt.figure(figsize=(10,6)) plt.grid(True)
plt.xlabel('Epoch') plt.ylabel('Accuracy/Loss')
plt.plot(loss, 'ro-', color = 'red') plt.plot(accuracy, 'ro-
', color = 'green') plt.legend(['Loss', 'Accuracy'],
loc='upper left') plt.title('SSD-Inception V3
Accuracy & Loss Graph') plt.show() font = ('times',
14, 'bold')
title = Label(main, text='Deep Learning based Object Detection and Recognition Framework
for the Visually-Impaired') title.config(bg='DarkGoldenrod1', fg='black')
title.config(font=font) title.config(height=3, width=120) title.place(x=5,y=5)
font1 = ('times', 13, 'bold')
inceptionButton = Button(main, text="Generate SSD-Inception Model",
command=loadInception) inceptionButton.place(x=50,y=100)
inceptionButton.config(font=font1)
56
ssdButton = Button(main, text="Run SSD300 Object Detection & Classification",
command=ssdDetection) ssdButton.place(x=50,y=150) ssdButton.config(font=font1)
graphButton = Button(main, text="Inception Accuracy & Loss Graph", command=graph)
graphButton.place(x=480,y=150) graphButton.config(font=font1) pathlabel =
Label(main) pathlabel.config(bg='brown', fg='white') pathlabel.config(font=font1)
pathlabel.place(x=480,y=100) font1 = ('times', 12, 'bold')
text=Text(main,height=18,width=150) scroll=Scrollbar(text)
text.configure(yscrollcommand=scroll.set) text.place(x=10,y=200)
text.config(font=font1) main.config(bg='LightSteelBlue1') main.mainloop()
57
7.SYSTEM TESTING
7.1 INTRODUCTION TO TESTNG
The purpose of testing is to discover errors. Testing is the process of trying to discover every
conceivable fault or weakness in a work product. It provides a way to check the functionality of
components, sub-assemblies, assemblies and/or a finished product It is the process of exercising
software with the intent of ensuring that the Software system meets its requirementsand user
expectations and does not fail in an unacceptable manner. There are various types of test. Each
test type addresses a specific testing requirement.
Types of Software Testing: Different Testing Types with Details
We, as testers, are aware of the various types of Software Testing like Functional Testing, Non-
Functional Testing, Automation Testing, Agile Testing, and their sub-types, etc.
Each type of testing has its own features, advantages, and disadvantages as well. However, in
this tutorial, we have covered mostly each and every type of software testing which we usually
use in our day-to-day testing life.
Different Types of Software Testing
58
(A) Functional Testing:
There are four main types of functional testing.
# 1) Unit Testing
Unit testing is a type of software testing which is done on an individual unit or component to
test its corrections. Typically, Unit testing is done by the developer at the application
development phase. Each unit in unit testing can be viewed as a method, function, procedure,
or object. Developers often use test automation tools such as NUnit, Xunit, JUnit for the test
execution.
Unit testing is important because we can find more defects at the unit test level.
For example, there is a simple calculator application. The developer can write the unit test to
check if the user can enter two numbers and get the correct sum for addition functionality.
a) White Box Testing
White box testing is a test technique in which the internal structure or code of an application is
visible and accessible to the tester. In this technique, it is easy to find loopholes in the design of
an application or fault in business logic. Statement coverage and decision coverage/branch
coverage are examples of white box test techniques.
b) Gorilla Testing
Gorilla testing is a test technique in which the tester and/or developer test the module of the
application thoroughly in all aspects. Gorilla testing is done to check how robust your
application is.
For example, the tester is testing the pet insurance company’s website, which provides the
service of buying an insurance policy, tag for the pet, Lifetime membership. The tester can focus
on any one module, let’s say, the insurance policy module, and test it thoroughly with positive
and negative test scenarios.
# 2) Integration Testing
Integration testing is a type of software testing where two or more modules of an application
are logically grouped together and tested as a whole. The focus of this type of testing is to find
the defect on interface, communication, and data flow among modules. Top-down or Bottom-
up approach is used while integrating modules into the whole system.
This type of testing is done on integrating modules of a system or between systems.
For example, a user is buying a flight ticket from any airline website. Users can see flight details
and payment information while buying a ticket, but flight details and payment processing are
two different systems. Integration testing should be done while integrating of airline website
and payment processing system.
59
a) Gray box testing
As the name suggests, gray box testing is a combination of white-box testing and black-box
testing. Testers have partial knowledge of the internal structure or code of an application.
# 3) System Testing
System testing is types of testing where tester evaluates the whole system against the specified
requirements.
a) End to End Testing
It involves testing a complete application environment in a situation that mimics real-world use,
such as interacting with a database, using network communications, or interacting with other
hardware, applications, or systems if appropriate.
For example, a tester is testing a pet insurance website. End to End testing involves testing of
buying an insurance policy, LPM, tag, adding another pet, updating credit card information on
users’ accounts, updating user address information, receiving order confirmation emails and
policy documents.
b) Black Box Testing
Blackbox testing is a software testing technique in which testing is performed without knowing
the internal structure, design, or code of a system under test. Testers should focus only on the
input and output of test objects.
Detailed information about the advantages, disadvantages, and types of Black Box testing can
be found here.
c) Smoke Testing
Smoke testing is performed to verify that basic and critical functionality of the system under
test is working fine at a very high level.
Whenever a new build is provided by the development team, then the Software Testing team
validates the build and ensures that no major issue exists. The testing team will ensure that the
build is stable, and a detailed level of testing will be carried out further.
For example, tester is testing pet insurance website. Buying an insurance policy, adding another
pet, providing quotes are all basic and critical functionality of the application. Smoke testing for
this website verifies that all these functionalities are working fine before doing any in-depth
testing.
d) Sanity Testing
Sanity testing is performed on a system to verify that newly added functionality or bug fixes are
working fine. Sanity testing is done on stable build. It is a subset of the regression test.
60
For example, a tester is testing a pet insurance website. There is a change in the discount for
buying a policy for second pet. Then sanity testing is only performed on buying insurance policy
module.
e) Happy path Testing
The objective of Happy Path Testing is to test an application successfully on a positive flow. It
does not look for negative or error conditions. The focus is only on valid and positive inputs
through which the application generates the expected output.
f) Monkey Testing
Monkey Testing is carried out by a tester, assuming that if the monkey uses the application, then
how random input and values will be entered by the Monkey without any knowledge or
understanding of the application.
The objective of Monkey Testing is to check if an application or system gets crashed by
providing random input values/data.
# 4) Acceptance Testing
Acceptance testing is a type of testing where client/business/customer test the software with real
time business scenarios.
The client accepts the software only when all the features and functionalities work as expected.
This is the last phase of testing, after which the software goes into production. This is also called
User Acceptance Testing (UAT).
a) Alpha Testing
Alpha testing is a type of acceptance testing performed by the team in an organization to find
as many defects as possible before releasing software to customers.
For example, the pet insurance website is under UAT. UAT team will run real-time scenarios
like buying an insurance policy, buying annual membership, changing the address, ownership
transfer of the pet in a same way the user uses the real website. The team can use test credit card
information to process payment-related scenarios.
b) Beta Testing
Beta Testing is a type of software testing which is carried out by the clients/customers. It is
performed in the Real Environment before releasing the product to the market for the actual
end-users.
Beta Testing is carried out to ensure that there are no major failures in the software or product,
and it satisfies the business requirements from an end-user perspective. Beta Testing is
successful when the customer accepts the software. Usually, this testing is typically done by the
end-users.
61
Usually, the Beta version of the software or product released is limited to a certain number of
users in a specific area. So, the end-user uses the software and shares the feedback with the
company. The company then takes necessary action before releasing the software worldwide.
c) Operational acceptance testing (OAT)
Operational acceptance testing of the system is performed by operations or system
administration staff in the production environment. The purpose of operational acceptance
testing is to make sure that the system administrators can keep the system working properly for
the users in a real-time environment.
The focus of the OAT is on the following points:
• Testing of backup and restore.
• Installing, uninstalling, upgrading software.
• The recovery process in case of natural disaster.
• User management.
• Maintenance of the software.
(B) Non-Functional Testing
There are four main types of functional testing.
# 1) Security Testing
It is a type of testing performed by a special team. Any hacking method can penetrate the system.
Security Testing is done to check how the software, application, or website is secure from
internal and/or external threats. This testing includes how much software is secure from
malicious programs, viruses and how secure & strong the authorization and authentication
processes are.
It also checks how software behaves for any hacker’s attack & malicious programs and how
software is maintained for data security after such a hacker attack.
a) Penetration Testing
Penetration Testing or Pen testing is the type of security testing performed as an authorized
cyber-attack on the system to find out the weak points of the system in terms of security.
Pen testing is performed by outside contractors, generally known as ethical hackers. That is why
it is also known as ethical hacking. Contractors perform different operations like SQL injection,
URL manipulation, Privilege Elevation, session expiry, and provide reports to the organization.
Notes: Do not perform the Pen testing on your laptop/computer. Always take written permission
to do pen tests.
62
# 2) Performance Testing
Performance testing is testing of an application’s stability and response time by applying load.
The word stability means the ability of the application to withstand in the presence of load.
Response time is how quickly an application is available to users. Performance testing is done
with the help of tools. Loader.IO, JMeter, LoadRunner, etc. are good tools available in the
market.
a) Load testing
Load testing is testing of an application’s stability and response time by applying load, which is
equal to or less than the designed number of users for an application.
For example, your application handles 100 users at a time with a response time of 3 seconds,
then load testing can be done by applying a load of the maximum of 100 or less than 100 users.
The goal is to verify that the application is responding within 3 seconds for all the users.
b) Stress Testing
Stress testing is testing an application’s stability and response time by applying load, which is
more than the designed number of users for an application.
For example, your application handles 1000 users at a time with a response time of 4 seconds,
then stress testing can be done by applying a load of more than 1000 users. Test the application
with 1100, 1200, 1300 users and notice the response time. The goal is to verify the stability of
an application under stress.
c) Scalability Testing
Scalability testing is testing an application’s stability and response time by applying load, which
is more than the designed number of users for an application.
For example, your application handles 1000 users at a time with a response time of 2 seconds,
then scalability testing can be done by applying a load of more than 1000 users and gradually
increasing the number of users to find out where exactly my application is crashing.
Let’s say my application is giving response time as follows:
• 1000 users -2 sec
• 1400 users -2 sec
• 4000 users -3 sec
• 5000 users -45 sec
• 5150 users- crash – This is the point that needs to identify in scalability testing
63
d) Volume testing (flood testing)
Volume testing is testing an application’s stability and response time by transferring a large
volume of data to the database. Basically, it tests the capacity of the database to handle the data.
e) Endurance Testing (Soak Testing)
Endurance testing is testing an application’s stability and response time by applying load
continuously for a longer period to verify that the application is working fine.
For example, car companies soak testing to verify that users can drive cars continuously for
hours without any problem.
# 3) Usability Testing
Usability testing is testing an application from the user’s perspective to check the look and feel
and user-friendliness.
For example, there is a mobile app for stock trading, and a tester is performing usability testing.
Testers can check the scenario like if the mobile app is easy to operate with one hand or not,
scroll bar should be vertical, background color of the app should be black and price of and stock
is displayed in red or green color.
The main idea of usability testing of this kind of app is that as soon as the user opens the app,
the user should get a glance at the market.
64
8.SCREENSHOTS
FIG.8.1
FIG.8.2
65
FIG.8.3
FIG.8.4
FIG.8.5
66
FIG.8.6
FIG.8.7
67
FIG.8.8
FIG.8.9
FIG.8.10
68
FIG.8.11
FIG.8.12
FIG.8.13
69
FIG.8.14
FIG.8.15
FIG.8.16
70
FIG.8.17
FIG.8.18
FIG.8.19
71
FIG.8.20
FIG.8.21
FIG.8.22
72
9. CONCLUSIONS
The proposed solution aims to design children safety system that tracks the school buses and
provides relevant information to the parents via a mobile application and authorities via a web
portal. The attendance information of students is done using QR Scan and the data is collected
which is viewed by the school authorities. Based on the attendance, guardians are informed
about their children through alerts about the status of the bus.
Other important features have been added to the system which allows route
optimization by providing the conductors with the fastest and a more secured path. In addition,
delay prediction is also implemented in the system using different classification models which
makes scheduling the buses more convenient. Comparison was done on four models and it was
found that Random Forest worked the best with the system giving error of 11.6%. Moreover,
the system provides with utmost details to guardians about anomalies, and the arrival and
departure of the children.
Thus, the system is user friendly to use for the bus staff as well as parents. The
number of additional security features added gives it an edge over previous such systems. It also
facilitates interaction between school and guardians in a more efficient way resulting in greater
security.
73
10. REFERENCES
[1]G. Jemilda, R. Balakrishnan, B. Johnson, G. Linga Sangeeth ”Mobile Application for College
Bus Tracking” March 2015 .
[2] Snehal P. Umratkar, Prof. Ram Kumar SecureChild - Children Tracking Android
Application March 2015
[3] Bhor, Mayur & Shinde, Dinesh & Mane, Pranoti. (2017). Children Safety and School Bus
Tracking Solution. International Journal of Electrical, Electronics and Computer Systems
(IJEECS). 5. 19-22.
[4] Amit Bhoyar, Jagdish Pimple”GPS based real time vehicle tracking system for kids safety
using RFID and GSM” 2018
[5] Shah, Shraddha & Singh, Bharti. (2016). RFID based school bus tracking and security
system. 1481-1485. 10.1109/ICCSP.2016.7754404.
[6] Lim, T.S. & Sim, S.C. & Mansor, M.M... (2009). RFID based attendance system. 778 - 782.
10.1109/ISIEA.2009.5356360.
[7] Fadzir, Tun & Mansor, Hasmah & Gunawan, Teddy & Janin, Zuriati. (2018). Development
of School Bus Security System Based on RFID and GSM Technonologies for Klang Valley
Area. 1-5. 10.1109/IC SIMA.2018.8688783.
[8]S.Dukare, Sumit & Patil, Dattatray & Rane, Kantilal. (2015). Vehicle Tracking, Monitoring
and Alerting System: A Review. International Journal of Computer Applications. 119. 39-44.
10.5120/21107-3835.
[9]Ruturaj Shelake, Reshma Chavan, Raju Rai, Prof.Mangesh Manake ”Intelligent Transport
System for Real Time School Bus Tracking For Safety and Security of Child Using GPS” April
2018
[10]S.Sangeetha, S.Krishnapriya, Ms. S Janani”SCHOOL BUS TRACKING AND SECURITY
SYSTEM” March 2018
74
[11]M. R. Desai, Mr.Prajwal Kumar Takkalaki, Mr.Manjunath Bhapri, Mr.Amalkiran
Marshanalli, Mr.Gourish Malage ”STUDENTS TRACKING SYSTEM FOR SCHOOL BUS”
June 2017
[12]Eken, Sleyman & Sayar, Ahmet. (2014). A Smart Bus Tracking System Based on Location-
Aware Services and QR Codes. INISTA 2014 - IEEE International Symposium on Innovations
in Intelligent Systems and Applications, Proceedings. 10.1109/INISTA.2014.6873634.
[13]P.Ambedkar, P.Suresh Babu”Smart School Bus for Children Transportation Safety
Enhancement with IOT” July 2017
[14]Supriya Sinha, Pooja Sahu, Monika Zade, Roshni Jambhulkar, Prof. Shrikant V. Sonekar
”Real Time College Bus Tracking Application for Android Smartphone” Feb 2017
[15]R C, Jisha & Mathews, Mathews & Kini, Sidharth & Kumar, Vineeth & Harisankar, U &
Shilpa, M. (2018). An Android Application for School Bus Tracking and Student Monitoring
System. 1-4. 10.1109/ICCIC.2018.8782320.
[16]Abhilash R, Mahima R, Monisha S, Nagashri R”Smart Tracking System for School Buses”
April 2017
[17]I. Korkmaz, A. Camci, C. Cengiz, D. Dirik, E. Cekci and F. M. Akbaba, ”A Smart School
Bus Tracking System,” 2019 International Symposium on Networks, Computers and
Communications (ISNCC), Istanbul, Turkey, 2019, pp. 1-6, doi:
10.1109/ISNCC.2019.8909188.

More Related Content

PDF
A Comparative Study on School Bus Safety and Security
PDF
IRJET- Advance School Bus Tracking and the Children Safety System
PDF
A Review on Safety Management System in School Bus
PDF
IRJET- IoT Enabled Children Safety System
PDF
Students Tracking System for School Bus
PDF
IRJET- Vehicle Attendance and Monitoring System
PDF
IRJET- College Bus Tracking and Notification System
PPTX
School Bus Alerting System for parents .pptx
A Comparative Study on School Bus Safety and Security
IRJET- Advance School Bus Tracking and the Children Safety System
A Review on Safety Management System in School Bus
IRJET- IoT Enabled Children Safety System
Students Tracking System for School Bus
IRJET- Vehicle Attendance and Monitoring System
IRJET- College Bus Tracking and Notification System
School Bus Alerting System for parents .pptx

Similar to QR SCAN BASED INTELLIGENT SYSTEM FOR SCHOOL BUS TRACKING.pdf (20)

PDF
IRJET- IoT based School Bus Tracking System
PDF
RFID-Based System for School Children Transportation Safety Enhancement with ...
PPTX
Ppt.pptx about smart Bus tracking using ocr
PDF
IRJET- Monitoring Bus Management System using GPS
PDF
IRJET-An Experimental Study on Concrete by Partial Replacement of Cement with...
PDF
Smart Tracking System
PDF
Smart government transportation with cloud security
DOC
SCHOOL BUS ROUTING MANAGEMENT SYSTEM [FINAL]
PDF
IJSRED-V2I1P37
PDF
IRJET- Closed Loop Students Monitoring and Tracking System using Raspberr...
PPT
Engg-1 Secured school bus management for child safety
PPTX
Poster presentation on Smart School Bus project.
PDF
IRJET- Smart Tracking System for School Buses for Ensuring Child Security...
PDF
IJSRED-V2I3P31
PPTX
COLLEGE BUS MANAGEMENT SYSTEM agdyugeQF JHBFCEWJ ebc.pptx
PPTX
Smart School Bus
PDF
A novel method for Smart school bus tracking system using Machine learning an...
PPTX
Presentation1.pptx about auto bus tracking
PDF
A Review on Smart Bus Ticketing System using QR-Code
PDF
IRJET - Design of Student Security System using RFID Mechanism
IRJET- IoT based School Bus Tracking System
RFID-Based System for School Children Transportation Safety Enhancement with ...
Ppt.pptx about smart Bus tracking using ocr
IRJET- Monitoring Bus Management System using GPS
IRJET-An Experimental Study on Concrete by Partial Replacement of Cement with...
Smart Tracking System
Smart government transportation with cloud security
SCHOOL BUS ROUTING MANAGEMENT SYSTEM [FINAL]
IJSRED-V2I1P37
IRJET- Closed Loop Students Monitoring and Tracking System using Raspberr...
Engg-1 Secured school bus management for child safety
Poster presentation on Smart School Bus project.
IRJET- Smart Tracking System for School Buses for Ensuring Child Security...
IJSRED-V2I3P31
COLLEGE BUS MANAGEMENT SYSTEM agdyugeQF JHBFCEWJ ebc.pptx
Smart School Bus
A novel method for Smart school bus tracking system using Machine learning an...
Presentation1.pptx about auto bus tracking
A Review on Smart Bus Ticketing System using QR-Code
IRJET - Design of Student Security System using RFID Mechanism
Ad

Recently uploaded (20)

PDF
Zenith AI: Advanced Artificial Intelligence
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PPTX
OMC Textile Division Presentation 2021.pptx
PPTX
cloud_computing_Infrastucture_as_cloud_p
PDF
Getting Started with Data Integration: FME Form 101
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
Zenith AI: Advanced Artificial Intelligence
NewMind AI Weekly Chronicles - August'25-Week II
Programs and apps: productivity, graphics, security and other tools
SOPHOS-XG Firewall Administrator PPT.pptx
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
OMC Textile Division Presentation 2021.pptx
cloud_computing_Infrastucture_as_cloud_p
Getting Started with Data Integration: FME Form 101
Encapsulation_ Review paper, used for researhc scholars
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Univ-Connecticut-ChatGPT-Presentaion.pdf
Unlocking AI with Model Context Protocol (MCP)
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Chapter 5: Probability Theory and Statistics
Assigned Numbers - 2025 - Bluetooth® Document
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Building Integrated photovoltaic BIPV_UPV.pdf
Enhancing emotion recognition model for a student engagement use case through...
A comparative analysis of optical character recognition models for extracting...
MIND Revenue Release Quarter 2 2025 Press Release
Ad

QR SCAN BASED INTELLIGENT SYSTEM FOR SCHOOL BUS TRACKING.pdf

  • 1. A MAJOR PROJECT REPORT On “QR SCAN BASED INTELLIGENT SYSTEM FOR SCHOOL BUS TRACKING” Submitted to SRI INDU COLLEGE OF ENGINEERING AND TECHNOLOGY In partial fulfillment of the requirements for the award of degree of BACHELOR OF TECHNOLOGY In COMPUTER SCIENCE AND ENGINEERING Submitted by PRANITHA DEVIREDDY [20D41A05G7] P.SAI VARSHITHA [20D41A05F2] P.VENU [20D41A05F4] P.AKSHAY [20D41A05F1] Under the esteemed guidance of Mr. SNVASRK PRASAD (Assistant Professor) DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING SRI INDU COLLEGE OF ENGINEERING AND TECHNOLOGY (An Autonomous Institution under UGC, Accredited by NBA, Affiliated to JNTUH) Sheriguda (V), Ibrahimpatnam (M), Rangareddy Dist – 501 510 (2023-2024)
  • 2. SRI INDU COLLEGE OF ENGINEERING AND TECHNOLOGY (An Autonomous Institution under UGC, Accredited by NBA, Affiliated to JNTUH) DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CERTIFICATE Certified that the Major project entitled “QR SCAN BASED INTELLIGENT SYSTEM FOR SCHOOL BUS TRACKING” is a bonafide work carried out by PRANITHA DEVIREDDY[20D41A05G7], P.VARSHITHA [20D41A05F2], P.VENU [20D41A05F4], P.AKSHAY [20D41A05F1] in partial fulfillment for the award of degree of Bachelor of Technology in Computer Science andEngineering of SICET, Hyderabad for the academic year 2023-2024.The project has been approved as it satisfies academic requirements in respect of the work prescribed for IV Year, II-Semester of B. Tech course. INTERNAL GUIDE HEAD OF THE DEPARTMENT (Mr. SNVASRK PRASAD) (Prof .Ch.G.V.N.PRASAD) EXTERNAL EXAMINER
  • 3. ACKNOWLEDGEMENT The satisfaction that accompanies the successful completion of the task would be put incomplete without the mention of the people who made it possible, whose constant guidance and encouragement crown all the efforts with success. We are thankful to Principal Dr. G. SURESH for giving us the permission to carry out this project. We are highly indebted to Prof.Ch.G.V.N.Prasad, Head of the Department of Computer Science And Engineering, for providing necessary infrastructure and labs and also valuable guidance at every stage of this project. We are grateful to our internal project guide Mr.SNVASRK PRASAD, Asst Prof. for his constant motivation and guidance given by him during the execution of this project work. We would like to thank the Teaching & Non-Teaching staff of Department of ComputerScience and engineering for sharing their knowledge with us, last but not least we express our sincere thanks to everyone who helped directly or indirectly for the completion of this project. PRANITHA DEVIREDDY [20D41A05G7] P.SAI VARSHITHA [20D41A05F2] P.VENU [20D41A05F4] P.AKSHAY [20D41A05F1]
  • 4. QR SCAN BASED INTELLIGENT SYSTEM FOR SCHOOL BUS TRACKING ABSTRACT In the present day, it is not uncommon for parents and guardians to worry about the well- being and safety of their child or children. With the advent of numerous technologies, schools that can afford, implement extensive and costly measures to ensure the security of their students. However, such technologies remain inaccessible to the not so wealthy. This paper proposes an efficient and reliable school bus tracking cum safety solution in the form of an android application coupled with a website. The system incorporates location tracking, a simple but fool-proof authentication and notification mechanism, and anomaly detection techniques for raising alerts in case of unusual activity. Such a system allows for the parents to be aware of their child in unprecedented as well as known circumstances. The school authorities are also able to monitor the status of their buses via a website. As additional features to improve the travel, this paper implements route optimization and traffic-based delay prediction.
  • 5. i TABLE OF CONTENTS S.No. Chapters Page No. i. List of Figures............................................................................................iii ii. List of Screenshots ..................................................................................... iv 1. INTRODUCTION 1.1 INTRODUCTION OF PROJECT……………………………………………01-02 1.2 LITERATURE SURVEY……………………………………………………..03-04 1.3 MODULES……………………………………………………………………...05 2. SYSTEM ANALYSIS 2.1 EXISTING SYSTEM & ITS DISADVANTAGES…………………………...06-07 2.2 PROPOSED SYSTEM & ITS ADVANTAGES……………………………...07-08 2.3 SYSTEM REQUIREMENTS…………………………………………………..09 3. SYSTEM STUDY 3.1 FEASIBILITY STUDY………………………………………………………..10-12 4. SYSTEM DESIGN 4.1 SYSTEM ARCHITECTURE…………………………………………………....13 4.2 DATA FLOW DIAGRAM……………………………………………………....14 4.3 UML DIAGRAMS…………………………………………………………….15-24 4.3.1 USECASE DIAGRAM………………………………………………….16-17 4.3.2 CLASS DIAGRAM……………………………………………………….18 4.3.3 SEQUENCE DIAGRAM…………………………………………….....19-20 4.3.4 ACTIVITY DIAGRAM…………………………………………………21-22 4.3.5 DEPLOYMENT DIAGRAM……………………………………………..23 4.3.6 DATA DICTIONARY…………………………………………………..24-28
  • 6. ii 5.TECHNOLOGIES USED 5.1 WHAT IS PYTHON ? …………………………………………………………29 5.1.1 ADVANTAGES & DISADVANTAGES OF PYTHON……………...29-30 5.1.2 HISTORY……………………………………………………………......31 5.2 WHAT IS MACHINE LEARNING ? …………………………………………32 5.2.1 CATEGORIES OF ML………………………………………………......33 5.2.2 NEED FOR ML………………………………………………………….33 5.2.3 CHALLENGES IN ML……………………………………………….....34 5.2.4 APPLICATIONS……………………………………………………...…34 5.2.5 HOW TO START LEARNING ML?.....................................................35-37 5.2.6 ADVANTAGES & DISADVANTAGES OF ML…………………….38-39 5.3 PYTHON DEVELOPMENT STEPS………………………………………..39-41 5.4 MODULES USED IN PYTHON……………………………………………41-43 5.5 INSTALL PYTHON STEP BY STEP IN WINDOWS & MAC……………43-48 6. IMPLEMENTATION 6.1 SOFTWARE ENVIRONMENT……………………………………………..49 6.1.1 PYTHON……………………………………………………………..49-51 6.1.2 SAMPLE CODE…………………………………………………….52-56 7. SYSTEM TESTING 7.1 INTRODUCTION TO TESTING………………………………………….57-63 8. SCREENSHOTS…………………………………………………………..64-71 9. CONCLUSION…………………………………………………….72 10. REFERENCES……………………………………………………………73-74
  • 7. iii LIST OF FIGURES Fig No Name Page No 4.1 System Architecture 13 4.2 Data Flow Diagram 14 4.3.1 Use case diagram 16-17 4.3.2 Class diagram 18 4.3.3 Sequence diagram 19-20 4.3.4 Activity diagram 21-22 4.3.5 Deployment diagram 23 4.3.6 Data dictionary 24-28
  • 8. iv LIST OF SCREENSHOTS FIG NO SCREENSHOT PAGE NO 8.1 Home Page 64 8.2 Home Page about School 64 8.3 Admin Page 65 8.4 Login Page 65 8.5 Login Page 65 8.6 Contact Page 66 8.7 Admin Login Successful Page 66 8.8 Register Page 67 8.9 Details of Child 67 8.10 Bus Delay Update 67 8.11 Feedback Analysis Page 68 8.12 Sentiment Analysis Page 68 8.13 Conductor Login Successful Page 68 8.14 QR Code Scan Page 69 8.15 Details of Child 69 8.16 Parent Login Successful Page 69 8.17 Children Profile Page 70 8.18 Passwords 70 8.19 Details of Children 70 8.20 GPS Tracking 71 8.21 Notifications Page 71 8.22 Feedback Page 71
  • 9. 1 1.INTRODUCTION 1.1 INTRODUCTION TO PROJECT In today’s world, ensuring safety and security is a major concern and top priority. There have been a lot of reports of mishaps with children during travel. Child safety is always the main concern for parents as well as the school authorities, especially when they are away from their child. They are always eager to ensure that all necessary precautions are being taken. For example, parents are always concerned about their child coming late from school. The presence of conductors and caretakers on buses is being employed to ensure someone keeps a watch over children and their safe boarding and leaving the bus. However, not all schools have enough personnel and often parents at work need live updates of their child’s whereabouts. Another common problem faced by the people in India is relying on the ever-busy streets for daily commutes. Traffic especially affects heavy vehicles like buses which are prone to delay. For schools facilitating buses as a mode of transport, they need to know how early the buses should depart to pick up the students for school. In case of delay, the entire school schedule gets disrupted. Observations from a survey with the local school authorities and the parents of school- going children revealed that there is a lack of such a system. However, there was general agreement towards the existence of such a system being of good use. It is of particular value to those who travel from far to get to the school and also to those who travel through congested routes. A study of the existing literature on the topic reveals the existence of numerous tracking technologies, which keep track of the student's activity, the location of the route of the bus. Some of these also implement additional security measures. However, these suffer from the requirement of hardware components and complicated use, while some are one dimensional and have loopholes. Therefore, a solution is needed which can: • Provide reliable information about the whereabouts of a child from the point of pick-up to drop-off. • The application should be as automated as possible, reducing the work of bus staff • The proposed solution shall also give additional information such as estimated arrival time
  • 10. 2 • The application should be intelligent and be able to issue alerts in case of a deviation from the norm. • The application should be easy to use and should not involve any complicated or expensive hardware. The paper proposes an android based solution that uses QR code scanning to authenticate each child and log their entry or exit from the bus. The solution uses this logged information, along with location and route information using google APIs, to monitor the live status of the bus and the children. The system communicates via REST APIs with a Django backend server and dispatches notifications to parents. The authors have also integrated features to alert the conductor and school authorities in case of any mistakes in boarding, leaving or route. The application is reliable, easy to use and inexpensive. To address the problem of traffic-induced delays, this study also presents work on an additional feature in the system to predict the bus delays due to road anomalies to suggest to the school authorities what time the school buses should leave in the morning to pick up the children. This paper is distributed in seven sections. Section II of this paper discusses the related literature behind previous solutions of student safety in buses, as well as routing and travel algorithms. Section III introduces the proposed methodology, which is split into two parts: the first part dealing with the actual mobile application for parents and bus staff, while the second explains our approach for predicting time delays. In Section IV the results obtained through this work are summarized. Section V goes over certain limitations and challenges in this study. The paper concludes with Section VI and VII which detail the conclusion and future scope, respectively.
  • 11. 3 1.2 LITERATURE SURVEY 1.2.1 TITLE: “Mobile Application for College Bus Tracking” ABSTRACT: This paper proposes an Android mobile phone application that gives information about buses, bus numbers as well as bus routes both online and offline. Reason for Android platform Android requires an open source development which is probably the most feasible and a present user friendly approach. This paper also deals with Location Based Services, which are used to track the current location of the bus as well as give an estimate remaining time for the tracked bus to reach its destination using the client –server technology. Also It display the required maps with the help of GPS. 1.2.2 TITLE: Child - Children Tracking Android Application March 2015 ABSTRACT: Android operating system is at the top in market because of its features like portability, platform independence, and low memory consumption. As android operating System is used in mobile phones, tablets and laptops it has covered more than 80% of the market. Now everyone is using android phone. As android is an open source operating system many developers are developing various applications every day, Millions of applications are available for use free of cost. These applications are helpful for Ticket booking, banking services, Online shopping, Tracking our family members etc. The Secure Child Application is designed for School and Parent to track the children while they are travelling through School van. The days are Gone when one of the two parents will sit at home to take care of the children and one earns. Now time has come for both the parents to work; in such scenario the security of children is very important. 1.2.3 TITLE: Children Safety and School Bus Tracking Solution. International Journal of Electrical, Electronics and Computer Systems (IJEECS) ABSTRACT: Despite the strict majors taken for children safety by the authorities the crimes over children are increasing on significant amount. To restrict these crimes it is important to enhance security for children. Mishaps and missing of children are causing parent to worry about their children. School authorities may be penalized heavily for these mishaps, So school bus monitoring is an effective major to restrict these mishaps. This paper proposes an embedded system which focues on children safety, tracking of school bus and exact location of school bus with the help of longitude and altitude positioning of GPS and sending information through SMS.
  • 12. 4 1.2.4 TITLE: Smart School Bus for Children Transportation Safety Enhancement with IOT ABSTRACT: School is the second best place for kids to inculcate education and ethical values next to home. Providing safety for the students throughout transportation to and from the school plays a vital role. The school will scale back the range of accidents during the transportation. This project helps both parents and therefore the school administration to manage and monitor numerous factors like number of students aboard, details of each student, pickup and drop timings, location, attendance system etc. parents can monitor the situation of the school bus together with the pickup and drop timings of the student through an android application. In our project, a GPS unit and a fingerprint sensing element that is connected to the Node MCU over Wi-Fi through an Arduino Uno. The geographic coordinates of the school bus within which the SKG13 GPS is located updates the location within the database unit. The fingerprint scanner detects the identification of the student once the student boards the bus. 1.2.5 TITLE: RFID based school bus tracking and security system. ABSTRACT: In present time due to increase in number of kidnapping and road accident cases, parents always worry about their children. This paper recommends a SMS based solution which assists parents to track their children location in real time.To track the location GPS module is used and to identify the identity of the child a RFID card is used which is in built in the system. Whenever a child boards a bus, the RFID tag located in his identity card will be detected by the reader present in the bus and the system will identify the child and will send a text message to the parents consisting the current location and time. In this way the parents will be able to keep record of their kid's whereabouts. The paper also proposes security system such as drunk and drive prevention system and speed control mechanism.
  • 13. 5 1.3 MODULES Authentication Module: The Authentication module is responsible for implementing the QR code scanning mechanism to verify the identity of students and school staff boarding the buses. This module ensures a secure and fool-proof authentication process, reducing the risk of unauthorized access and enhancing overall safety. Location Tracking Module: The Location Tracking module utilizes GPS technology to continuously monitor and track the real-time location of school buses. This information is crucial for parents, school authorities, and the system itself to ensure that buses are on the correct route, provide accurate arrival times, and enhance the overall visibility of the bus fleet. Anomaly Detection Module: The Anomaly Detection module employs advanced techniques to identify unusual activities or emergencies during bus journeys. This module plays a crucial role in raising alerts in real-time, allowing for prompt responses to potential safety concerns. By monitoring deviations from normal patterns, the system enhances overall security measures. User Interface Module (Android Application and Website): The User Interface module provides an intuitive and user-friendly interface for both parents and school authorities. It includes an Android application for parents to track their child's bus and receive notifications, as well as a website for school staff to monitor the overall status of the buses. This module ensures accessibility and ease of use for all stakeholders. Optimization and Prediction Module: The Optimization and Prediction module focuses on enhancing the efficiency of the school bus transportation system. It includes features such as route optimization to minimize travel time and fuel consumption, and traffic-based delay prediction to anticipate and address potential delays. This module contributes to cost savings and ensures a more reliable and punctual transportation service.
  • 14. 6 2. SYSTEM ANALYSIS 2.1 EXISTING SYSTEM The existing system for school bus tracking often relies on expensive and extensive technologies, making it inaccessible for schools with budget constraints. Parents and guardians are understandably concerned about the safety of their children during school bus transportation. While some schools can afford advanced security measures, others lack access to such resources. This project aims to address this disparity by proposing an efficient and affordable school bus tracking cum safety solution. The system consists of an Android application paired with a website, incorporating location tracking, a QR-based authentication mechanism, and notification features. Additionally, anomaly detection techniques are employed to raise alerts in case of unusual activities, ensuring an extra layer of security. The proposed system not only keeps parents informed in both known and unforeseen circumstances but also allows school authorities to monitor bus status through a dedicated website. To enhance the overall travel experience, the system implements route optimization and traffic-based delay prediction as additional features. This comprehensive approach seeks to make school bus tracking and safety measures accessible to a broader range of educational institutions, promoting the well-being of students without imposing a financial burden. DISADVANTAGES OF EXISTING SYSTEM: • Cost Constraints: The existing school bus tracking systems often come with high implementation and maintenance costs, making them unaffordable for schools with limited budgets. This financial barrier restricts the accessibility of advanced safety measures, leaving many educational institutions with conventional and less secure methods of student transportation. • Limited Authentication Methods: Many existing systems rely on conventional authentication methods, such as manual attendance or basic RFID cards. These methods can be prone to errors or unauthorized usage, potentially compromising the safety of students during bus journeys. Lack of advanced authentication measures can be a limitation in ensuring fool-proof security. • Inadequate Anomaly Detection: Some current systems may lack sophisticated anomaly detection mechanisms, making them less capable of identifying and responding to unusual activities or emergencies effectively.
  • 15. 7 • Scalability Issues: As the number of students and buses increases, scalability becomes a significant concern for some existing systems. Scalability issues can lead to performance degradation, delays in data processing, and decreased overall system efficiency, hindering the system's ability to handle a growing student population. • Limited Accessibility for Parents: Existing systems may not provide real-time and user- friendly interfaces for parents to monitor their child's bus journey. Limited accessibility to accurate and timely information about the bus location, expected arrival times, and potential delays can create anxiety and inconvenience for parents, impacting their ability to stay informed about their child's safety. 2.2 PROPOSED SYSTEM The proposed system aims to overcome the limitations of the existing school bus tracking systems by introducing a comprehensive and cost-effective solution. Our system incorporates advanced features to enhance the overall security and efficiency of student transportation. Through the integration of QR code scanning for authentication, we address the limitations of traditional methods, ensuring a more fool-proof and secure verification process. To improve anomaly detection, the proposed system implements sophisticated techniques that can swiftly identify and respond to unusual activities or emergencies, thereby enhancing the overall safety measures. The use of GPS-based location tracking provides real- time and accurate information about the school buses, enabling parents to monitor their child's journey conveniently through a user-friendly Android application and a dedicated website. This ensures that parents are well-informed about their child's whereabouts, fostering a sense of security. Moreover, the system focuses on scalability to accommodate the growing needs of educational institutions, ensuring optimal performance even as the student population and the number of buses increase. By incorporating route optimization and traffic-based delay prediction, our system not only prioritizes safety but also enhances the efficiency of the school bus transportation system, providing a more streamlined and reliable service for both parents and school authorities. The proposed system thus presents a holistic approach to school bus tracking, addressing the limitations of the existing systems and promoting a safer and more accessible environment for students.
  • 16. 8 ADVANTAGES OF PROPOSED SYSTEM: • Enhanced Security Measures: The proposed system leverages QR code scanning for authentication, offering a more robust and secure verification process compared to traditional methods. This advanced authentication mechanism reduces the risk of unauthorized access and ensures that only authorized individuals, such as students and school staff, are allowed on the school buses. • Real-Time Tracking and Monitoring: With the integration of GPS-based location tracking, the system provides real-time and accurate information about the school buses. Parents can easily monitor their child's journey through a user-friendly Android application and a dedicated website. This real-time tracking enhances parental awareness and contributes to the overall safety and security of students during transportation. • Sophisticated Anomaly Detection: The proposed system incorporates advanced anomaly detection techniques, enabling swift identification and response to unusual activities or emergencies. This feature enhances the overall safety measures, ensuring that any potential issues are addressed promptly. The system's ability to detect anomalies contributes to a safer environment for students during their bus commute. • Scalability and Efficiency: Addressing scalability concerns, the system is designed to handle an increasing number of students and buses without compromising performance. This scalability ensures optimal system efficiency, making it suitable for educational institutions of varying sizes. The system's ability to scale contributes to its long-term viability and effectiveness in accommodating the evolving needs of schools. • Route Optimization and Delay Prediction: The inclusion of route optimization and traffic-based delay prediction features improves the overall efficiency of the school bus transportation system. By optimizing routes, the system minimizes travel time and fuel consumption, leading to cost savings for the school. Additionally, predicting and addressing traffic-based delays ensures a more reliable and punctual transportation service, contributing to a positive experience for both students and parents.
  • 17. 9 2.3 SYSTEM REQUIREMENTS HARDWARE REQUIREMENTS: Processor i5 Processor 5th Gen RAM 8 GB Hard Disk 1 TB SOFTWARE REQUIREMENTS: Operating System Windows 10 / 11 Programming Language Python 3.10 Domain Image Processing & Cloud Computing Integrated Development Environment Visual Studio Code Front End Technologies HTML5, CSS, JavaScript Back End Technologies or Framework Django Database (RDBMS) MySQL Database Software WAMP or XAMPP Server Web Server or Deployment Server Django Application Development Server Design / Modelling Rational Rose
  • 18. 10 3. SYSTEM STUDY 3.1 FEASIBILITY STUDY 1. TECHNICAL FEASIBILITY 2. OPERATIONAL FEASIBILITY 3. ECONOMIC FEASIBILITY A feasibility study assesses the operational, technical and economic merits of the proposed project. The feasibility study is intended to be a preliminary review of the facts to see if it is worthy of proceeding to the analysis phase. From the systems analyst perspective, the feasibility analysis is the primary tool for recommending whether to proceed to the next phase or to discontinue the project. The feasibility study is a management-oriented activity. The objective of a feasibility study is to find out if an information system project can be done and to suggest possible alternative solutions. Projects are initiated for two broad reasons: 1. Problems that lend themselves to systems solutions 2. Opportunities for improving through: (a) Upgrading systems (b) Altering systems (c) Installing new systems A feasibility study should provide management with enough information to decide: • Whether the project can be done • Whether the final product will benefit its intended users and organization • What are the alternatives among which a solution will be chosen TECHNICAL FEASIBILITY A large part of determining resources has to do with assessing technical feasibility. It considers the technical requirements of the proposed project. The technical requirements are then compared to the technical capability of the organization. The systems project is considered technically feasible if the internal technical capability is sufficient to support the project requirements. The analyst must find out whether current technical resources can be upgraded or added to in a manner that fulfils the request under consideration.
  • 19. 11 This is where the expertise of system analysts is beneficial, since using their own experience and their contact with vendors they will be able to answer the question of technical feasibility. The essential questions that help in testing the operational feasibility of a system include the following: • Is the project feasible within the limits of current technology? • Does the technology exist at all? • Is it available within given resource constraints? • Is it a practical proposition? • Manpower- programmers, testers & debuggers • Software and hardware • Are the current technical resources sufficient for the new system? • Can they be upgraded to provide to provide the level of technology necessary for the new system? • Do we possess the necessary technical expertise, and is the schedule reasonable? • Can the technology be easily applied to current problems? • Does the technology have the capacity to handle the solution? • Do we currently possess the necessary technology? OPERATIONAL FEASIBILITY Operational feasibility is dependent on human resources available for the project and involves projecting whether the system will be used if it is developed and implemented. Operational feasibility is a measure of how well a proposed system solves the problems, and takes advantage of the opportunities identified during scope definition and how it satisfies the requirements identified in the requirements analysis phase of system development. The essential questions that help in testing the operational feasibility of a system include the following: • Does current mode of operation provide adequate throughput and response time? • Does current mode provide end users and managers with timely, pertinent, accurate and useful formatted information? • Does current mode of operation provide cost-effective information services to the business? • Could there be a reduction in cost and or an increase in benefits? • Manpower problem • Manager resistance • Organizational conflicts and policies
  • 20. 12 • Social acceptability • Government regulations • Does management support the project? • Legal aspects • How do the end-users feel about their role in the new system? ECONOMIC FEASIBILITY Economic analysis could also be referred to as cost/benefit analysis. It is the most frequently used method for evaluating the effectiveness of a new system. In economic analysis the procedure is to determine the benefits and savings that are expected from a candidate system and compare them with costs. If benefits outweigh costs, then the decision is made to design and implement the system. An entrepreneur must accurately weigh the cost versus benefits before taking an action. Possible questions raised in economic analysis are: • Is the system cost effective? • Do benefits outweigh costs? • The cost of doing full system study • The cost of business employee time • Estimated cost of hardware • Estimated cost of software/software development The concerned business must be able to see the value of the investment it is pondering before committing to an entire system study. If short-term costs are not overshadowed by long-term gains or produce no immediate reduction in operating costs, then the system is not economically feasible, and the project should not proceed any further. The exact costs are not required to determine economic feasibility. It is only required to determine if it is feasible that the project costs will fall within the target budget or return on investment. A rough estimate of the project schedule is required to determine if it would be feasible to complete the systems project within a required timeframe. The required timeframe would need to be set by the organization.
  • 21. 13 4. SYSTEM DESIGN 4.1 SYSTEM ARCHITECTURE
  • 22. 14 4.2 DATA FLOW DIAGRAM: 1. The DFD is also called as bubble chart. It is a simple graphical formalism that can be used to represent a system in terms of input data to the system, various processing carried out on this data, and the output data is generated by this system. 2. The data flow diagram (DFD) is one of the most important modeling tools. It is used to model the system components. These components are the system process, the data used by the process, an external entity that interacts with the system and the information flows in the system. 3. DFD shows how the information moves through the system and how it is modified by a series of transformations. It is a graphical technique that depicts information flow and the transformations that are applied as data moves from input to output. 4. DFD is also known as bubble chart. A DFD may be used to represent a system at any level of abstraction. DFD may be partitioned into levels that represent increasing information flow and functional detail.
  • 23. 15 4.3 UML DIAGRAMS UML stands for Unified Modeling Language. UML is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created by, the Object Management Group. The goal is for UML to become a common language for creating models of object oriented computer software. In its current form UML is comprised of two major components: a Meta-model and a notation. In the future, some form of method or process may also be added to; or associated with, UML. The Unified Modeling Language is a standard language for specifying, Visualization, Constructing and documenting the artifacts of software system, as well as for business modeling and other non-software systems. The UML represents a collection of best engineering practices that have proven successful in the modeling of large and complex systems. The UML is a very important part of developing objects oriented software and the software development process. The UML uses mostly graphical notations to express the design of software projects. GOALS: The Primary goals in the design of the UML are as follows: 1. Provide users a ready-to-use, expressive visual modeling Language so that they can develop and exchange meaningful models. 2. Provide extendibility and specialization mechanisms to extend the core concepts. 3. Be independent of particular programming languages and development process. 4. Provide a formal basis for understanding the modeling language. 5. Encourage the growth of OO tools market. 6. Support higher level development concepts such as collaborations, frameworks, patterns and components. 7. Integrate best practices.
  • 24. 16 4.3.1 USE CASE DIAGRAM: A use case diagram in the Unified Modeling Language (UML) is a type of behavioral diagram defined by and created from a Use-case analysis. Its purpose is to present a graphical overview of the functionality provided by a system in terms of actors, their goals (represented as use cases), and any dependencies between those use cases. The main purpose of a use case diagram is to show what system functions are performed for which actor. Roles of the actors in the system can be depicted. FIG.4.3.1.1
  • 26. 18 4.3.2 CLASS DIAGRAM: In software engineering, a class diagram in the Unified Modeling Language (UML) is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, operations (or methods), and the relationships among the classes. It explains which class contains information. FIG.4.3.2.1
  • 27. 19 4.3.3 SEQUENCE DIAGRAM: A sequence diagram in Unified Modeling Language (UML) is a kind of interaction diagram that shows how processes operate with one another and in what order. It is a construct of a Message Sequence Chart. Sequence diagrams are sometimes called event diagrams, event scenarios, and timing diagrams. FIG.4.3.3.1
  • 29. 21 4.3.4 ACTIVITY DIAGRAM: Activity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, iteration and concurrency. In the Unified Modeling Language, activity diagrams can be used to describe the business and operational step-by-step workflows of components in a system. An activity diagram shows the overall flow of control. FIG.4.3.4.1
  • 31. 23 4.3.5 DEPLOYMENT DIAGRAM: Deployment Diagram is a type of diagram that specifies the physical hardware on which the software system will execute. It also determines how the software is deployed on the underlying hardware. It maps software pieces of a system to the device that are going to execute it.The deployment diagram maps the software architecture created in design to the physical system architecture that executes it. In distributed systems, it models the distribution of the software across the physical nodes. Deployment Diagram Symbol and notations Deployment Diagram Notations FIG.4.3.5.1
  • 32. 24 4.3.6 DATA DICTIONARY: auth_group Table comments: auth_group Column Type Null Default id int(11) No name varchar(150) No auth_group_permissions Table comments: auth_group_permissions Column Type Null Default id bigint(20) No group_id int(11) No permission_id int(11) No Indexes auth_permission Table comments: auth_permission Column Type Null Default id int(11) No name varchar(255) No content_type_id int(11) No codename varchar(100) No
  • 33. 25 Indexes Key name Type Unique Packed Column Cardina lity Colla- tion Null PRIMARY BTREE Yes No id 40 A No auth_permission_conten t_type_id_codename_0 1ab375a_uniq BTREE Yes No content_type_id A No codename 40 A No auth_permission_conten t_type_id_2f476e4b BTREE No No content_type_id A No auth_user Table comments: auth_user Column Type Null Default id int(11) No password varchar(128) No last_login datetime(6) Yes NULL is_superuser tinyint(1) No username varchar(150) No first_name varchar(150) No last_name varchar(150) No email varchar(254) No is_staff tinyint(1) No is_active tinyint(1) No date_joined datetime(6) No
  • 34. 26 Indexes Keyname Type Unique Packed Column Cardinality Collation Null PRIMARY BTREE Yes No id 0 A No username BTREE Yes No username 0 A No auth_user_groups Table comments: auth_user_groups Column Type Null Default id bigint(20) No user_id int(11) No group_id int(11) No Indexes Key name Type Unique Packed Column Cardinal ity Collation Null PRIMARY BTREE Yes No id 0 A No auth_user_groups_user _id_group_id_94350c 0c_uniq BTREE Yes No user_id A No group_id 0 A No auth_user_groups_user _id_6a12ed8b BTREE No No user_id A No auth_user_groups_gro up_id_97559544 BTREE No No group_id A No
  • 35. 27 bus_delay_details Table comments: bus_delay_details Column Type Null Default id bigint(20) No delay_status longtext No Indexes Keyname Type Unique Packed Column Cardinality Collation Null PRIMARY BTREE Yes No id 1 A No childrens_data Column Type Null Default c_id int(11) No children_rollnum varchar(50) Yes NULL children_name varchar(50) No children_mothername varchar(50) No children_fathername varchar(50) No children_contact varchar(50) Yes NULL children_email varchar(254) No children_password varchar(50) Yes NULL children_address longtext No children_class varchar(50) No children_image varchar(100) Yes NULL children_qrcode varchar(100) Yes NULL children_status1 varchar(50) No children_status2 varchar(50) No
  • 36. 28 Indexes Keyname Type Unique Packed Column Cardinality Collation Null PRIMARY BTREE Yes No c_id 3 A No conductorapp_qrmodels Table comments: conductorapp_qrmodels Column Type Null Default id bigint(20) No qrcode varchar(100) Yes NULL Indexes Keyname Type Unique Packed Column Cardinality Collation Null PRIMARY BTREE Yes No id 8 A No user_feedback Table comments: user_feedback Column Type Null Default feedback_id int(11) No rating varchar(200) Yes NULL text varchar(200) Yes NULL sentiment varchar(700) Yes NULL userfeedback_id int(11) Yes NULL
  • 37. 29 5. TECHNOLOGIES 5.1 WHAT IS PYTHON? Below are some facts about Python. Python is currently the most widely used multi-purpose, high-level programming language. Python allows programming in Object-Oriented and Procedural paradigms. Python Programs generally are smaller than other programming languages like Java. Programmers have to type relatively less and indentation requirement of the language, makes them readable all the time. Python language is being used by almost all tech-giant companies like – Google, Amazon, Facebook, Instagram, Dropbox, Uber… etc. The biggest strength of Python is huge collection of standard library which can be used forthe following – • Machine Learning • GUI Applications (like Kivy, Tkinter, PyQt etc.) • Web frameworks like Django (used by YouTube, Instagram, Dropbox) • Image processing (like Opencv, Pillow) • Web scraping (like Scrapy, BeautifulSoup, Selenium) • Test frameworks • Multimedia 5.1.1 ADVANTAGES & DISADVANTAGES OF PYTHON 1. Extensive Libraries Python downloads with an extensive library and it contain code for various purposes like regular expressions, documentation-generation, unit-testing, web browsers, threading databases, CGI, email, image manipulation, and more. So, we don’t have to write the complete code for that manually. 2. IOT Opportunities Since Python forms the basis of new platforms like Raspberry Pi, it finds the future bright for the Internet of Things. This is a way to connect the language with the real world.
  • 38. 30 3. Simple and Easy When working with Java, you may have to create a class to print ‘Hello World’. But in Python, just a print statement will do. It is also quite easy to learn, understand, and code.This is why when people pick up Python, they have a hard time adjusting to other more verbose languages like Java. 4. Readable Because it is not such a verbose language, reading Python is much like reading English. This is the reason why it is so easy to learn, understand, and code. It also does not need curlybraces to define blocks, and indentation is mandatory. This further aids the readability ofthe code. 5. Object-Oriented This language supports both the procedural and object-oriented programming paradigms. While functions help us with code reusability, classes and objects let us modelthe real world. A class allows the encapsulation of data and functions into one. 6. Free and Open-Source Like we said earlier, Python is freely available. But not only can you download Pythonforfree, but you can also download its source code, make changes to it, and even distributeit. It downloads with an extensive collection of libraries to help you with your tasks. 7. Portable When you code your project in a language like C++, you may need to make some changesto it if you want to run it on another platform. But it isn’t the same with Python. Here, youneed to code only once, and you can run it anywhere. This is called Write Once Run Anywhere (WORA). However, you need to be careful enough not to include any system dependent features. 8. Interpreted Lastly, we will say that it is an interpreted language. Since statements are executed one by one, debugging is easier than in compiled languages.
  • 39. 31 Disadvantages of Python So far, we’ve seen why Python is a great choice for your project. But if you choose it, you should beaware of its consequences as well. Let’s now see the downsides of choosing Python over another language. 1. Speed Limitations We have seen that Python code is executed line by line. But since Python is interpreted, it often results in slow execution. This, however, isn’t a problem unless speed is a focal point for the project. In other words, unless high speed is a requirement, the benefits offered by Python are enough to distract us from its speed limitations. 2. Weak in Mobile Computing and Browsers While it serves as an excellent server-side language, Python is much rarely seen on the client-side. Besides that, it is rarely ever used to implement smartphone-based applications. One such application is called Carbonnelle. The reason it is not so famous despite the existence of Bryton is that it isn’t that secure. 3. Design Restrictions As you know, Python is dynamically-typed. This means that you don’t need to declare the type of variable while writing the code. It uses duck-typing. But wait, what’s that? Well, it just means that if it looks like a duck, it must be a duck. While this is easy on the programmers during coding, it can raise run-time errors. 4. Underdeveloped Database Access Layers Compared to more widely used technologies like JDBC (Java DataBase Connectivity) and ODBC (Open DataBase Connectivity), Python’s database access layers are a bit underdeveloped. Consequently, it is less often applied in huge enterprises. 5. Simple No, we’re not kidding. Python’s simplicity can indeed be a problem. Take my example. I don’t do Java, I’m more of a Python person. This was all about the Advantages and Disadvantages of Python Programming Language.
  • 40. 32 5.1.2 HISTORY OF PYTHON What do the alphabet and the programming language Python have in common? Right, both start with ABC. If we are talking about ABC in the Python context, it's clear that the programming language ABC is meant. ABC is a general-purpose programming language and programming environment, which had been developed in the Netherlands, Amsterdam, at the CWI (Centrum Wiskunde &Informatica). The greatest achievement of ABC was to influence the design of Python. Python was conceptualized in the late 1980s. Guido van Rossum worked that time in a project at the CWI, called Amoeba, a distributed operating system. In an interview with Bill Venners1 , Guido van Rossum said: "In the early 1980s, I worked as an implementer on a team building a language called ABC at Centrum Wiskunde en Informatica (CWI). I don't know how well people know ABC's influence on Python. I try to mention ABC's influence because I'm indebted to everything I learned during that project and to the people who worked on it. Later on in the same Interview, Guido van Rossum continued: "I remembered all my experience and some of my frustration with ABC. I decided to try to design a simple scripting language that possessed some of ABC's better properties, but without its problems. So I started typing. I created a simple virtual machine, a simple parser, and a simple runtime. I made my own version of the various ABCparts that I liked. 5.2 WHAT IS MACHINE LEARNING? Before we take a look at the details of various machine learning methods, let's start by looking at what machine learning is, and what it isn't. Machine learning is often categorized as a subfield of artificial intelligence, but I find that categorization can often be misleading at first brush. The study of machine learning certainly arose from research in this context, but in the data science application of machine learning methods, it's more helpful to think of machine learning as a means of building models of data. Fundamentally, machine learning involves building mathematical models to help understand data. "Learning" enters the fray when we give these models tunable parameters that can be adapted to observed data; in this way the program can be considered to be "learning" from the data. Once these models have been fit to previously seen data, they can be used to predict and understand aspects of newly observed data.
  • 41. 33 I'll leave to the reader the more philosophical digression regarding the extent to which this type of mathematical,model-based "learning" is similar to the "learning" exhibited by the human brain. Understanding the problem setting in machine learning is essential to using these tools effectively, and so we will start with some broad categorizations of the types of approacheswe'll discuss here. 5.2.1 Categories of Machine Leaning At the most fundamental level, machine learning can be categorized into two main types: supervised learning and unsupervised learning. Supervised learning involves somehow modeling the relationship between measured features of data and some label associated with the data; once this model is determined, it can be used to apply labels. Unsupervised learning involves modeling the features of a dataset without reference to any label, and is often described as "letting the dataset speak for itself." These models include tasks such as clustering and dimensionality reduction. Clustering algorithms identify distinct groups of data, while dimensionality reduction algorithms search for more succinct representations of the data. We will see examples of both types of unsupervised learning in the following section. 5.2.2 Need for Machine Learning Human beings, at this moment, are the most intelligent and advanced species on earth because they can think, evaluate and solve complex problems. On the other side, AI is still in its initial stage and haven’t surpassed human intelligence in many aspects. Then the question is that what is the need to make machine learn? The most suitable reason for doing this is, “to make decisions, based on data, with efficiency and scale”. Lately, organizations are investing heavily in newer technologies like Artificial Intelligence, Machine Learning and Deep Learning to get the key information from data to perform several real-world tasks and solve problems. The fact is that we can’t do without human intelligence, but other aspect is thatwe all need to solve real-world problems with efficiency at a huge scale. That is why the need for machine learning arises.
  • 42. 34 5.2.3 Challenges in Machines Learning While Machine Learning is rapidly evolving, making significant strides with cybersecurity and autonomous cars, this segment of AI as whole still has a long way to go. The reason behind is that ML has not been able to overcome number of challenges. The challenges that ML is facing currently are − Quality of data − having good-quality data for ML algorithms is one of the biggest challenges. Use of low-quality data leads to the problems related to data preprocessing and feature extraction. Time-Consuming task − another challenge faced by ML models is the consumption of time especially for data acquisition, feature extraction and retrieval. Lack of specialist persons − As ML technology is still in its infancy stage, availability of expert resources is a tough job. No clear objective for formulating business problems − Having no clear objective and well -defined goal for business problems is another key challenge for ML because this technology is not that mature yet. Issue of over fitting & under fitting − If the model is over fitting or under fitting, it cannot berepresented well for the problem. Curse of dimensionality − another challenge ML model faces is too many features of data points. This can be a real hindrance. Difficulty in deployment − Complexity of the ML model makes it quite difficult to be deployed in real life. 5.2.4 Applications of Machine Learning: Machine Learning is the most rapidly growing technology and according to researchers we are in the golden year of AI and ML. It is used to solve many real-world complex problems which cannot be solved with traditional approach. Following are some real-world applications of ML − • Emotion analysis • Sentiment analysis • Error detection and prevention
  • 43. 35 • Weather forecasting and prediction • Stock market analysis and forecasting • Speech synthesis • Speech recognition • Customer segmentation • Object recognition • Fraud detection • Fraud prevention • Recommendation of products to customer in online shopping. 5.2.5 How to Start Learning Machine Learning? Arthur Samuel coined the term “Machine Learning” in 1959 and defined it as a “Field of study that gives computers the capability to learn without being explicitly programmed”. And that was the beginning of Machine Learning! In modern times, Machine Learning is one Of the most popular (if not the most!) career choices. According to Indeed, Machine Learning Engineer Is the Best Job of 2019 with a 344% growth and an average base salary of $146,085 per year. But there is still a lot of doubt about what exactly Machine Learning is and how to start learning it? So this article deals with the Basics of Machine Learning and also the path you can follow to eventually become a full-fledged Machine Learning Engineer. Now let’s get started!!! How to start learning ML? This is a rough roadmap you can follow on your way to becoming an insanely talented Machine Learning Engineer. Of course, you can always modify the steps according to your needs to reach your desired end-goal! Step 1 – Understand the Prerequisites In the case, you are a genius, you could start ML directly but normally, there are some prerequisites that you need to know which include Linear Algebra, Multivariate Calculus, Statistics, and Python. And if you don’t know these, never fear!
  • 44. 36 (a) Learn Linear Algebra and Multivariate Calculus Both Linear Algebra and Multivariate Calculus are important in Machine Learning are more focused on application heavy machine learning, then you will not be that heavily focused on math’s as there are many common libraries available. But if you want to focus onR&D in Machine Learning, then mastery of Linear Algebra and Multivariate Calculus is very important as you will have to implement many ML algorithms from scratch. (b) Learn Statistics Data plays a huge role in Machine Learning. In fact, around 80% of your time as an ML expert will be spent collecting and cleaning data. And statistics is a field that handles the collection, analysis, and presentation of data. So it is no surprise that you need to learn it!!! Some of the key concepts in statistics that are important are Statistical Significance, Probability Distributions, Hypothesis Testing, Regression, etc. Also, Bayesian Thinking is also a very important part of ML which deals with various concepts like Conditional Probability, Priors, and Posteriors, Maximum Likelihood, etc. (c)Learn Python Some people prefer to skip Linear Algebra, Multivariate Calculus and Statistics and learn them as they go along with trial and error. But the one thing that you absolutely cannot skip is Python! While there are other languages you can use for Machine Learning like R, Scala, etc. Python is currently the most popular language for ML. In fact, there are many Python libraries that are specifically useful for Artificial Intelligence and Machine Learning such as Keras, TensorFlow, Scikit-learn, etc. So if you want to learn ML, it’s best if you learn Python! You can do that using various online resources and courses such as Fork Python available Free on GeeksforGeeks. Step 2 – Learn Various ML Concepts Now that you are done with the prerequisites, you can move on to actually learning ML (Which is the fun part!!!) It’s best to start with the basics and then move on to more complicated stuff. Some of the basic concepts in ML are:
  • 45. 37 (a) Terminologies of Machine Learning • Model – A model is a specific representation learned from data by applying some machine learning algorithm. A model is also called a hypothesis. • Feature – A feature is an individual measurable property of the data. A set of numeric features can be conveniently described by a feature vector. • Target (Label) – A target variable or label is the value to be predicted by our model. For the fruit example discussed in the feature section, the label with each set of input would be the name of the fruit like apple, orange, banana, etc. • Training – The idea is to give a set of inputs(features) and it’s expected outputs(labels), so after training, we will have a model (hypothesis) that will then map new data to one of the categories trained on. • Prediction – Once our model is ready, it can be fed a set of inputs to which it will provide a predicted output(label). (b) Types of Machine Learning • Supervised Learning – This involves learning from a training dataset with labeled data using classification and regression models. This learning process continues until the required level of performance is achieved. • Unsupervised Learning – This involves using unlabelled data and then finding the underlying structure in the data in order to learn more and more about the data itself using factor and cluster analysis models. • Semi-supervised Learning – This involves using unlabelled data like Unsupervised Learning with a small amount of labeled data. Using labeled data vastly increases the learning accuracy and is also more cost-effective than Supervised Learning. • Reinforcement Learning – This involves learning optimal actions through trial and error. So the next action is decided by learning behaviors that are based on the current state and that will maximize the reward in the future.
  • 46. 38 5.2.6 ADVANTAGES & DISADVANTAGES OF ML Advantages of Machine learning: 1. Easily identifies trends and patterns - Machine Learning can review large volumes of data and discover specific trends and patterns that would not be apparent to humans. For instance, for an e-commerce website like Amazon, it serves to understand the browsing behaviors and purchase histories of its users to help cater to the right products, deals, and reminders relevant to them. It uses the results to reveal relevant advertisements to them. 2. No human intervention needed (automation) With ML, you don’t need to babysit your project every step of the way. Since it means giving machines the ability to learn, it lets them make predictions and also improve the algorithms on their own. A common example of this is anti-virus software’s. They learn to filter new threatsas they are recognized. ML is also good at recognizing spam. 3. Continuous Improvement As ML algorithms gain experience, they keep improving in accuracy and efficiency. This lets them make better decisions. Say you need to make a weather forecast model. As the amount of data you have keeps growing, your algorithms learn to make more accurate predictions faster. 4. Handling multi-dimensional and multi-variety data Machine Learning algorithms are good at handling data that are multi-dimensional and multivariate, and they can do this in dynamic or uncertain environments. 5. Wide Applications You could be an e-trailer or a healthcare provider and make ML work for you. Where it does apply, it holds the capability to help deliver a much more personal experience to customers while also targeting the right customers.
  • 47. 39 Disadvantages of Machine Learning: 1. Data Acquisition Machine Learning requires massive data sets to train on, and these should be inclusive/unbiased, and of good quality. There can also be times where they must wait for new data to be generated. 2. Time and Resources ML needs enough time to let the algorithms learn and develop enough to fulfill their purpose with a considerable amount of accuracy and relevancy. It also needs massive resources to function. This can mean additional requirements of computer power for you. 3. Interpretation of Results Another major challenge is the ability to accurately interpret results generated by the algorithms. You must also carefully choose the algorithms for your purpose. 4. High error-susceptibility Machine Learning is autonomous but highly susceptible to errors. Suppose you train an algorithm with data sets small enough to not be inclusive. You end up with biased predictions coming from a biased training set. This leads to irrelevant advertisements being displayed to customers. In the case of ML, such blunders can set off a chain of errors that can go undetected for long periods of time. And when they do get noticed, it takes quite some time to recognize the source of the issue, and even longer to correct it. 5.3 PYTHON DEVELOPMENT STEPS Guido Van Rossum published the first version of Python code (version 0.9.0) at alt.sources in February 1991. This release included already exception handling, functions, and the core data types of list, dict, str and others. It was also object oriented and had a module system. Python version 1.0 was released in January 1994. The major new features included in this release were the functional programming tools lambda, map, filter and reduce, which Guido Van Rossum never liked. Six and a half years later in October 2000.
  • 48. 40 This release included list comprehensions, a full garbage collector and it was supporting Unicode Python flourished for another 8 years in the versions 2.x before the nextmajorrelease as Python 3.0 (also known as "Python 3000" and "Py3K") was released. Python3 is not backwards compatible with Python 2.x. The emphasis in Python 3 had been on the removal of duplicate programming constructs and modules, thus fulfilling or coming close to fulfilling the 13th law of the Zen of Python: "There should be one -- and preferably only one -- obvious way to do it. Some changes in Python 7.3: • Print is now a function • Views and iterators instead of lists • The rules for ordering comparisons have been simplified. E.g. a heterogeneous list cannot be sorted, because all the elements of a list must be comparable to each other. • There is only one integer type left, i.e. int. long is int as well. • The division of two integers returns a float instead of an integer. "//" can be used to have the "old" behaviour. • Text Vs. Data Instead Of Unicode Vs. 8-bit Purpose: We demonstrated that our approach enables successful segmentation of intra-retinal layers—even with low-quality images containing speckle noise, low contrast, and different intensity ranges throughout—with the assistance of the ANIS feature. Python Python is an interpreted high-level programming language for general-purpose programming. Created by Guido van Rossum and first released in 1991, Python has a design philosophy that emphasizes code readability, notably using significant whitespace. Python features a dynamic type system and automatic memory management. It supports multiple programming paradigms, including object-oriented, imperative, functional and procedural, and has a large and comprehensive standard library. • Python is Interpreted − Python is processed at runtime by the interpreter. You do not need to compile your program before executing it. This is similar to PERL and PHP. • Python is Interactive − you can actually sit at a Python prompt and interact with the interpreter directly to write your programs.
  • 49. 41 • Python also acknowledges that speed of development is important. Readable and terse code is part of this, and so is access to powerful constructs that avoid tedious repetition of code. Maintainability also ties into this may be an all but useless metric, but it does say something about how much code you have to scan, read and/or understand to troubleshoot problems or tweak behaviors. This speed of development, the ease with which a programmer of other languages can pick up basic Python skills and the huge standard library is key to another area where Python excels. All its tools have been quick to implement, saved a lot of time, and several of them have later been patched and updated by people with no Python background - without breaking. 5.4 MODULES USED IN PYTHON Tensor flow Tensor Flow is a free and open-source software library for dataflow and differentiable programming across a range of tasks. It is a symbolic math library, and is also used for machine learning applications such as neural networks. It is used for both research and production at Google. Tensor Flow was developed by the Google Brain team for internal Google use. It was releasedunder the Apache 2.0 open-source license on November 9, 2015. Numpy Numpy is a general-purpose array-processing package. It provides a high-performance multidimensional array object, and tools for working with these arrays. It is the fundamental package for scientific computing with Python. It contains various features including these important ones: • A powerful N-dimensional array object • Sophisticated (broadcasting) functions • Tools for integrating C/C++ and Fortran code • Useful linear algebra, Fourier transform, and random number capabilities • Besides its obvious scientific uses, Numpy can also be used as an efficient multidimensional container of generic data. Arbitrary data-types can be defined using Numpy which allows Numpy to seamlessly and speedily integrate with a wide varieties.
  • 50. 42 Pandas Pandas is an open-source Python Library providing high-performance data manipulation and analysis tool using its powerful data structures. Python was majorly used for data munging and preparation. It had very little contribution towards data analysis. Pandas solved this problem. Using Pandas, we can accomplish five typical steps in the processing and analysis of data, regardless of the origin of data load, prepare, manipulate, model, and analyze. Python with Pandas is used in a wide range of fields including academic and commercial domains including finance, economics, Statistics, analytics, etc. Matplotlib Matplotlib is a Python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. Matplotlib can be used in Python scripts, the Python and IPython shells, the Jupyter Notebook, web application servers, and four graphical user interface toolkits. Matplotlib tries to make easy things easy and hard things possible. You can generate plots, histograms, power spectra, bar charts, error charts, scatter plots, etc., with just a few lines of code. For examples, see the sample plots and thumbnail gallery. For simple plotting the pyplot module provides a MATLAB-like interface, particularly when combined with IPython. For the power user, you have full control of line styles, font properties, axes properties, etc. via an object oriented interface or via a set of functions familiar to MATLAB users. Scikit – learn Scikit-learn provides a range of supervised and unsupervised learning algorithms via a consistent interface in Python. It is licensed under a permissive simplified BSD license and is distributed under many Linux distributions, encouraging academic and commercial use. Python Python is an interpreted high-level programming language for general-purpose programming. Created by Guido van Rossum and first released in 1991, Python has a design philosophy that emphasizes code readability, notably using significant whitespace.
  • 51. 43 Python features a dynamic type system and automatic memory management. It supports multiple programming paradigms, including object-oriented, imperative, functional and procedural, and has a large and comprehensive standard library. • Python is Interpreted − Python is processed at runtime by the interpreter. You do not need to compile your program before executing it. This is similar to PERL and PHP. • Python is Interactive − you can actually sit at a Python prompt and interact with the interpreter directly to write your programs. Python also acknowledges that speed of development is important. Readable and terse code is part of this, and so is access to powerful constructs that avoid tedious repetition of code. Maintainability also ties into this may be an all but useless metric, but it does say something about how much code you have to scan, read and/or understand to troubleshoot problems or tweak behaviors. This speed of development, the ease with which a programmer of other languages can pick up basic Python skills and the huge standard library is key to another area where Python excels. All its tools have been quick to implement, saved a lot of time, and several of them have later been patched and updated by people with no Python background - without breaking. 5.5 INSTALL PYTHON STEP-BY-STEP IN WINDOWS AND MAC Python a versatile programming language doesn’t come pre-installed on your computer devices. Python was first released in the year 1991 and until today it is a very popular high-level programming language. Its style philosophy emphasizes code readability with its notable use of great whitespace. The object-oriented approach and language construct provided by Python enables programmers to write both clear and logical code for projects. This software does not come pre-packaged with Windows. How to Install Python on Windows and Mac: There have been several updates in the Python version over the years. The question is how to install Python? It might be confusing for the beginner who is willing to start learningPython but this tutorial will solve your query. The latest or the newest version of Python isversion 3.7.4 or in other words, it is Python 3.
  • 52. 44 Note: The python version 3.7.4 cannot be used on Windows XP or earlier devices. Before you start with the installation process of Python. First, you need to know about your System Requirements. Based on your system type i.e. operating system and based processor, you must download the python version. My system type is a Windows 64-bit operating system. So the steps below are to install python version 3.7.4 on Windows 7 device or to install Python 3. Download the Python Cheatsheet here. The steps on how to install Python on Windows 10, 8 and 7 are divided into 4 parts to help understand better. Download the Correct version into the system Step 1: Go to the official site to download and install python using Google Chrome or any other web browser. OR Click on the following link: https://www.python.org Now, check for the latest and the correct version for your operating system.
  • 53. 45 Step 2: Click on the Download Tab. Step 3: You can either select the Download Python for windows 3.7.4 button in Yellow Color or you can scroll further down and click on download with respective to their version. Here, we are downloading the most recent python version for windows 3.7.4 Step 4: Scroll down the page until you find the Files option. Step 5: Here you see a different version of python along with the operating system. • To download Windows 32-bit python, you can select any one from the three options: Windows x86 embeddable zip file, Windows x86 executable installer or Windows x86 web based installer.
  • 54. 46 •To download Windows 64-bit python, you can select any one from the three options: Windows x86-64 embeddable zip file, Windows x86-64 executable installer or Windows x8664 web-based installer. Here we will install Windows x86-64 web-based installer. Here your first part regarding which version of python is to be downloaded is completed. Now we move ahead with the second part in installing python i.e. Installation Note: To know the changes or updates that are made in the version you can click on the Release Note Option. Installation of Python Step 1: Go to Download and Open the downloaded python version to carry out the installation process. Step 2: Before you click on Install Now, Make sure to put a tick on Add Python 3.7 to PATH.
  • 55. 47 Step 3: Click on Install NOW After the installation is successful. Click on Close. With these above three steps on python installation, you have successfully and correctly installed Python. Now is the time to verify the installation. Note: The installation process might take a couple of minutes. Verify the Python Installation Step 1: Click on Start Step 2: In the Windows Run Command, type “cmd”.
  • 56. 48 Step 3: Open the Command prompt option. Step 4: Let us test whether the python is correctly installed. Type python –V and press Enter. Step 5: You will get the answer as 3.7.4 Note: If you have any of the earlier versions of Python already installed. You must first uninstall the earlier version and then install the new one. Check how the Python IDLE works Step 1: Click on Start Step 2: In the Windows Run command, type “python idle”. Step 3: Click on IDLE (Python 3.7 64-bit) and launch the program Step 4: To go ahead with working in IDLE you must first save the file. Click on File > ClickOn Save Step 5: Name the file and save as type should be Python files. Click on SAVE. Here I have named the files as Hey World. Step 6: Now for e.g. enter print
  • 57. 49 6. IMPLEMENTATION 6.1 SOFTWARE ENVIRONMENT 6.1.1 PYTHON Python is a general-purpose interpreted, interactive, object-oriented, and high-level programming language. An interpreted language, Python has a design philosophy that emphasizes code readability (notably using whitespace indentation to delimit code blocks rather than curly brackets or keywords), and a syntax that allows programmers to express concepts in fewer lines of code than might be used in languages such as C++or Java. It provides constructs that enable clear programming on both small and large scales. Python interpreters are available for many operating systems. C, Python, the reference implementation of Python, is open source software and has a community-based development model, as do nearly all of its variant implementations. C, Python is managed by the non-profit Python Software Foundation. Python features a dynamic type system and automatic memory management. Interactive Mode Programming. What is Python programming language? Python is a high-level, general-purpose, interpreted programming language. 1) High-level Python is a high-level programming language that makes it easy to learn. Python doesn’t require you to understand the details of the computer in order to develop programs efficiently. 2) General-purpose Python is a general-purpose language. It means that you can use Python in various domains including: • Web applications • Big data applications • Testing • Automation • Data science, machine learning, and AI
  • 58. 50 3) Interpreted Python is an interpreted language. To develop a Python program, you write Python code into a file called source code. To execute the source code, you need to convert it to the machine language that the computer can understand. And the Python interpreter turns the source code, line by line, once at a time, into the machine code when the Python program executes. Compiled languages like Java and C# use a compiler that compiles the whole source code before the program executes. Why Python? Python increases your productivity. Python allows you to solve complex problems in less time and fewer lines of code. It’s quick to make a prototype in Python. Python becomes a solution in many areas across industries, from web applications to data science and machine learning. Python is quite easy to learn in comparison with other programming languages. Python syntax is clear and beautiful. Python has a large ecosystem that includes lots of libraries and frameworks. Python is cross-platform. Python programs can run on Windows, Linux, and macOS. Python has a huge community. Whenever you get stuck, you can get help from an active community. Python developers are in high demand. History of Python • Python was created by Guido Van Rossum. • The design began in the late 1980s and was first released in February 1991.
  • 59. 51 Why the name Python? No. It wasn't named after a dangerous snake. Rossum was fan of a comedy series from late 70s. The name "Python" was adopted from the same series "Monty Python's Flying Circus". Python Version History Implementation started - December 1989 Internal releases – 1990
  • 60. 52 6.1.2 SAMPLE CODE from tkinter import * import tkinter from tkinter import filedialog import matplotlib.pyplot as plt from tkinter.filedialog import askopenfilename import numpy as np import cv2 from tkinter import ttk import os import tensorflow as tf import os import sys from keras.models import model_from_json import pickle from keras.applications.inception_v3 import InceptionV3 main = tkinter.Tk() main.title("Deep Learning based Object Detection and Recognition Framework for the Visually-Impaired") main.geometry("1200x1200") global filename global ssd global inception_model class_labels = ['fifty', 'fivehundred', 'hundred', 'ten', 'thousand', 'twenty'] net = cv2.dnn.readNetFromCaffe("model/SSD300.txt","model/SSD300.caffemodel") CLASSES = ["background", "aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow", "diningtable", "dog", "horse", "motorbike", "person", "pottedplant", "sheep", "sofa", "train", "tvmonitor"] COLORS = np.random.uniform(0, 255, size=(len(CLASSES), 3)) def loadInception():
  • 61. 53 global inception_model with open('model/model.json', "r") as json_file: loaded_model_json = json_file.read() inception_model = model_from_json(loaded_model_json) json_file.close() inception_model.load_weights("model/model_weights.h5") inception_model._make_predict_function() pathlabel.config(text="SSD-Inception Model loaded") def detectCurrency(filename): global inception_model image = cv2.imread(filename) img = cv2.resize(image, (32,32)) im2arr = np.array(img) im2arr = im2arr.reshape(1,32,32,3) img = np.asarray(im2arr) img= img.astype('float32') img = img/255 preds = inception_model.predict(img) predict = np.argmax(preds)output = "" if np.amax(preds) > 0.98: output = "Currency Note Recognized as: "+class_labels[predict] return output def ssdDetection(): global filename global ssd row = 50 text.delete('1.0', END) filename = filedialog.askopenfilename(initialdir="testImages") output = detectCurrency(filename) text.insert(END,str(filename)+" loadedn") pathlabel.config(text=str(filename)+" loaded") image_np = cv2.imread(filename) image_np =
  • 62. 54 cv2.resize(image_np,(800,500)) (h, w) = image_np.shape[:2] ssd = tf.Graph() with ssd.as_default(): od_graphDef = tf.GraphDef() with tf.gfile.GFile('model/frozen_inference_graph.pb', 'rb') as file: serializedGraph = file.read() od_graphDef.ParseFromString(serializedGraph) tf.import_graph_def(od_graphDef, name='') with ssd.as_default(): with tf.Session(graph=ssd) as sess: blob = cv2.dnn.blobFromImage(cv2.resize(image_np, (300, 300)),0.007843, (300, 300)) net.setInput(blob) detections = net.forward() for i in np.arange(0, detections.shape[2]) confidence = detections[0, 0, i, 2] if confidence > 0.2: idx = int(detections[0, 0, i, 1] box = detections[0, 0, i, 3:7] * np.array([w, h, w, h]),(startX, startY, endX, endY) = box.astype("int") print(confidence * 100 if (confidence * 100) > 70: label = "{}: {:.2f}%".format(CLASSES[idx],confidence * 100) cv2.putText(image_np, label, (10, row), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (255, 0, 0), 2, cv2.LINE_AA) row = row + 30 text.insert(END,"Detected & Recognized Objects: "+CLASSES[idx]+"n") if (confidence * 100) > 50: cv2.rectangle(image_np, (startX, startY), (endX, endY),COLORS[idx],
  • 63. 55 if len(output) > 0: text.insert(END,output+"n") text.update_idletasks() cv2.putText(image_np, output, (10, 450), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (255, 0, 0), 2, cv2.LINE_AA) cv2.imshow('SSD Object Detection Output', image_np) cv2.waitKey(0) def graph(): f = open('model/history.pckl', 'rb') data = pickle.load(f) f.close() accuracy = data['accuracy'] loss = data['loss'] plt.figure(figsize=(10,6)) plt.grid(True) plt.xlabel('Epoch') plt.ylabel('Accuracy/Loss') plt.plot(loss, 'ro-', color = 'red') plt.plot(accuracy, 'ro- ', color = 'green') plt.legend(['Loss', 'Accuracy'], loc='upper left') plt.title('SSD-Inception V3 Accuracy & Loss Graph') plt.show() font = ('times', 14, 'bold') title = Label(main, text='Deep Learning based Object Detection and Recognition Framework for the Visually-Impaired') title.config(bg='DarkGoldenrod1', fg='black') title.config(font=font) title.config(height=3, width=120) title.place(x=5,y=5) font1 = ('times', 13, 'bold') inceptionButton = Button(main, text="Generate SSD-Inception Model", command=loadInception) inceptionButton.place(x=50,y=100) inceptionButton.config(font=font1)
  • 64. 56 ssdButton = Button(main, text="Run SSD300 Object Detection & Classification", command=ssdDetection) ssdButton.place(x=50,y=150) ssdButton.config(font=font1) graphButton = Button(main, text="Inception Accuracy & Loss Graph", command=graph) graphButton.place(x=480,y=150) graphButton.config(font=font1) pathlabel = Label(main) pathlabel.config(bg='brown', fg='white') pathlabel.config(font=font1) pathlabel.place(x=480,y=100) font1 = ('times', 12, 'bold') text=Text(main,height=18,width=150) scroll=Scrollbar(text) text.configure(yscrollcommand=scroll.set) text.place(x=10,y=200) text.config(font=font1) main.config(bg='LightSteelBlue1') main.mainloop()
  • 65. 57 7.SYSTEM TESTING 7.1 INTRODUCTION TO TESTNG The purpose of testing is to discover errors. Testing is the process of trying to discover every conceivable fault or weakness in a work product. It provides a way to check the functionality of components, sub-assemblies, assemblies and/or a finished product It is the process of exercising software with the intent of ensuring that the Software system meets its requirementsand user expectations and does not fail in an unacceptable manner. There are various types of test. Each test type addresses a specific testing requirement. Types of Software Testing: Different Testing Types with Details We, as testers, are aware of the various types of Software Testing like Functional Testing, Non- Functional Testing, Automation Testing, Agile Testing, and their sub-types, etc. Each type of testing has its own features, advantages, and disadvantages as well. However, in this tutorial, we have covered mostly each and every type of software testing which we usually use in our day-to-day testing life. Different Types of Software Testing
  • 66. 58 (A) Functional Testing: There are four main types of functional testing. # 1) Unit Testing Unit testing is a type of software testing which is done on an individual unit or component to test its corrections. Typically, Unit testing is done by the developer at the application development phase. Each unit in unit testing can be viewed as a method, function, procedure, or object. Developers often use test automation tools such as NUnit, Xunit, JUnit for the test execution. Unit testing is important because we can find more defects at the unit test level. For example, there is a simple calculator application. The developer can write the unit test to check if the user can enter two numbers and get the correct sum for addition functionality. a) White Box Testing White box testing is a test technique in which the internal structure or code of an application is visible and accessible to the tester. In this technique, it is easy to find loopholes in the design of an application or fault in business logic. Statement coverage and decision coverage/branch coverage are examples of white box test techniques. b) Gorilla Testing Gorilla testing is a test technique in which the tester and/or developer test the module of the application thoroughly in all aspects. Gorilla testing is done to check how robust your application is. For example, the tester is testing the pet insurance company’s website, which provides the service of buying an insurance policy, tag for the pet, Lifetime membership. The tester can focus on any one module, let’s say, the insurance policy module, and test it thoroughly with positive and negative test scenarios. # 2) Integration Testing Integration testing is a type of software testing where two or more modules of an application are logically grouped together and tested as a whole. The focus of this type of testing is to find the defect on interface, communication, and data flow among modules. Top-down or Bottom- up approach is used while integrating modules into the whole system. This type of testing is done on integrating modules of a system or between systems. For example, a user is buying a flight ticket from any airline website. Users can see flight details and payment information while buying a ticket, but flight details and payment processing are two different systems. Integration testing should be done while integrating of airline website and payment processing system.
  • 67. 59 a) Gray box testing As the name suggests, gray box testing is a combination of white-box testing and black-box testing. Testers have partial knowledge of the internal structure or code of an application. # 3) System Testing System testing is types of testing where tester evaluates the whole system against the specified requirements. a) End to End Testing It involves testing a complete application environment in a situation that mimics real-world use, such as interacting with a database, using network communications, or interacting with other hardware, applications, or systems if appropriate. For example, a tester is testing a pet insurance website. End to End testing involves testing of buying an insurance policy, LPM, tag, adding another pet, updating credit card information on users’ accounts, updating user address information, receiving order confirmation emails and policy documents. b) Black Box Testing Blackbox testing is a software testing technique in which testing is performed without knowing the internal structure, design, or code of a system under test. Testers should focus only on the input and output of test objects. Detailed information about the advantages, disadvantages, and types of Black Box testing can be found here. c) Smoke Testing Smoke testing is performed to verify that basic and critical functionality of the system under test is working fine at a very high level. Whenever a new build is provided by the development team, then the Software Testing team validates the build and ensures that no major issue exists. The testing team will ensure that the build is stable, and a detailed level of testing will be carried out further. For example, tester is testing pet insurance website. Buying an insurance policy, adding another pet, providing quotes are all basic and critical functionality of the application. Smoke testing for this website verifies that all these functionalities are working fine before doing any in-depth testing. d) Sanity Testing Sanity testing is performed on a system to verify that newly added functionality or bug fixes are working fine. Sanity testing is done on stable build. It is a subset of the regression test.
  • 68. 60 For example, a tester is testing a pet insurance website. There is a change in the discount for buying a policy for second pet. Then sanity testing is only performed on buying insurance policy module. e) Happy path Testing The objective of Happy Path Testing is to test an application successfully on a positive flow. It does not look for negative or error conditions. The focus is only on valid and positive inputs through which the application generates the expected output. f) Monkey Testing Monkey Testing is carried out by a tester, assuming that if the monkey uses the application, then how random input and values will be entered by the Monkey without any knowledge or understanding of the application. The objective of Monkey Testing is to check if an application or system gets crashed by providing random input values/data. # 4) Acceptance Testing Acceptance testing is a type of testing where client/business/customer test the software with real time business scenarios. The client accepts the software only when all the features and functionalities work as expected. This is the last phase of testing, after which the software goes into production. This is also called User Acceptance Testing (UAT). a) Alpha Testing Alpha testing is a type of acceptance testing performed by the team in an organization to find as many defects as possible before releasing software to customers. For example, the pet insurance website is under UAT. UAT team will run real-time scenarios like buying an insurance policy, buying annual membership, changing the address, ownership transfer of the pet in a same way the user uses the real website. The team can use test credit card information to process payment-related scenarios. b) Beta Testing Beta Testing is a type of software testing which is carried out by the clients/customers. It is performed in the Real Environment before releasing the product to the market for the actual end-users. Beta Testing is carried out to ensure that there are no major failures in the software or product, and it satisfies the business requirements from an end-user perspective. Beta Testing is successful when the customer accepts the software. Usually, this testing is typically done by the end-users.
  • 69. 61 Usually, the Beta version of the software or product released is limited to a certain number of users in a specific area. So, the end-user uses the software and shares the feedback with the company. The company then takes necessary action before releasing the software worldwide. c) Operational acceptance testing (OAT) Operational acceptance testing of the system is performed by operations or system administration staff in the production environment. The purpose of operational acceptance testing is to make sure that the system administrators can keep the system working properly for the users in a real-time environment. The focus of the OAT is on the following points: • Testing of backup and restore. • Installing, uninstalling, upgrading software. • The recovery process in case of natural disaster. • User management. • Maintenance of the software. (B) Non-Functional Testing There are four main types of functional testing. # 1) Security Testing It is a type of testing performed by a special team. Any hacking method can penetrate the system. Security Testing is done to check how the software, application, or website is secure from internal and/or external threats. This testing includes how much software is secure from malicious programs, viruses and how secure & strong the authorization and authentication processes are. It also checks how software behaves for any hacker’s attack & malicious programs and how software is maintained for data security after such a hacker attack. a) Penetration Testing Penetration Testing or Pen testing is the type of security testing performed as an authorized cyber-attack on the system to find out the weak points of the system in terms of security. Pen testing is performed by outside contractors, generally known as ethical hackers. That is why it is also known as ethical hacking. Contractors perform different operations like SQL injection, URL manipulation, Privilege Elevation, session expiry, and provide reports to the organization. Notes: Do not perform the Pen testing on your laptop/computer. Always take written permission to do pen tests.
  • 70. 62 # 2) Performance Testing Performance testing is testing of an application’s stability and response time by applying load. The word stability means the ability of the application to withstand in the presence of load. Response time is how quickly an application is available to users. Performance testing is done with the help of tools. Loader.IO, JMeter, LoadRunner, etc. are good tools available in the market. a) Load testing Load testing is testing of an application’s stability and response time by applying load, which is equal to or less than the designed number of users for an application. For example, your application handles 100 users at a time with a response time of 3 seconds, then load testing can be done by applying a load of the maximum of 100 or less than 100 users. The goal is to verify that the application is responding within 3 seconds for all the users. b) Stress Testing Stress testing is testing an application’s stability and response time by applying load, which is more than the designed number of users for an application. For example, your application handles 1000 users at a time with a response time of 4 seconds, then stress testing can be done by applying a load of more than 1000 users. Test the application with 1100, 1200, 1300 users and notice the response time. The goal is to verify the stability of an application under stress. c) Scalability Testing Scalability testing is testing an application’s stability and response time by applying load, which is more than the designed number of users for an application. For example, your application handles 1000 users at a time with a response time of 2 seconds, then scalability testing can be done by applying a load of more than 1000 users and gradually increasing the number of users to find out where exactly my application is crashing. Let’s say my application is giving response time as follows: • 1000 users -2 sec • 1400 users -2 sec • 4000 users -3 sec • 5000 users -45 sec • 5150 users- crash – This is the point that needs to identify in scalability testing
  • 71. 63 d) Volume testing (flood testing) Volume testing is testing an application’s stability and response time by transferring a large volume of data to the database. Basically, it tests the capacity of the database to handle the data. e) Endurance Testing (Soak Testing) Endurance testing is testing an application’s stability and response time by applying load continuously for a longer period to verify that the application is working fine. For example, car companies soak testing to verify that users can drive cars continuously for hours without any problem. # 3) Usability Testing Usability testing is testing an application from the user’s perspective to check the look and feel and user-friendliness. For example, there is a mobile app for stock trading, and a tester is performing usability testing. Testers can check the scenario like if the mobile app is easy to operate with one hand or not, scroll bar should be vertical, background color of the app should be black and price of and stock is displayed in red or green color. The main idea of usability testing of this kind of app is that as soon as the user opens the app, the user should get a glance at the market.
  • 80. 72 9. CONCLUSIONS The proposed solution aims to design children safety system that tracks the school buses and provides relevant information to the parents via a mobile application and authorities via a web portal. The attendance information of students is done using QR Scan and the data is collected which is viewed by the school authorities. Based on the attendance, guardians are informed about their children through alerts about the status of the bus. Other important features have been added to the system which allows route optimization by providing the conductors with the fastest and a more secured path. In addition, delay prediction is also implemented in the system using different classification models which makes scheduling the buses more convenient. Comparison was done on four models and it was found that Random Forest worked the best with the system giving error of 11.6%. Moreover, the system provides with utmost details to guardians about anomalies, and the arrival and departure of the children. Thus, the system is user friendly to use for the bus staff as well as parents. The number of additional security features added gives it an edge over previous such systems. It also facilitates interaction between school and guardians in a more efficient way resulting in greater security.
  • 81. 73 10. REFERENCES [1]G. Jemilda, R. Balakrishnan, B. Johnson, G. Linga Sangeeth ”Mobile Application for College Bus Tracking” March 2015 . [2] Snehal P. Umratkar, Prof. Ram Kumar SecureChild - Children Tracking Android Application March 2015 [3] Bhor, Mayur & Shinde, Dinesh & Mane, Pranoti. (2017). Children Safety and School Bus Tracking Solution. International Journal of Electrical, Electronics and Computer Systems (IJEECS). 5. 19-22. [4] Amit Bhoyar, Jagdish Pimple”GPS based real time vehicle tracking system for kids safety using RFID and GSM” 2018 [5] Shah, Shraddha & Singh, Bharti. (2016). RFID based school bus tracking and security system. 1481-1485. 10.1109/ICCSP.2016.7754404. [6] Lim, T.S. & Sim, S.C. & Mansor, M.M... (2009). RFID based attendance system. 778 - 782. 10.1109/ISIEA.2009.5356360. [7] Fadzir, Tun & Mansor, Hasmah & Gunawan, Teddy & Janin, Zuriati. (2018). Development of School Bus Security System Based on RFID and GSM Technonologies for Klang Valley Area. 1-5. 10.1109/IC SIMA.2018.8688783. [8]S.Dukare, Sumit & Patil, Dattatray & Rane, Kantilal. (2015). Vehicle Tracking, Monitoring and Alerting System: A Review. International Journal of Computer Applications. 119. 39-44. 10.5120/21107-3835. [9]Ruturaj Shelake, Reshma Chavan, Raju Rai, Prof.Mangesh Manake ”Intelligent Transport System for Real Time School Bus Tracking For Safety and Security of Child Using GPS” April 2018 [10]S.Sangeetha, S.Krishnapriya, Ms. S Janani”SCHOOL BUS TRACKING AND SECURITY SYSTEM” March 2018
  • 82. 74 [11]M. R. Desai, Mr.Prajwal Kumar Takkalaki, Mr.Manjunath Bhapri, Mr.Amalkiran Marshanalli, Mr.Gourish Malage ”STUDENTS TRACKING SYSTEM FOR SCHOOL BUS” June 2017 [12]Eken, Sleyman & Sayar, Ahmet. (2014). A Smart Bus Tracking System Based on Location- Aware Services and QR Codes. INISTA 2014 - IEEE International Symposium on Innovations in Intelligent Systems and Applications, Proceedings. 10.1109/INISTA.2014.6873634. [13]P.Ambedkar, P.Suresh Babu”Smart School Bus for Children Transportation Safety Enhancement with IOT” July 2017 [14]Supriya Sinha, Pooja Sahu, Monika Zade, Roshni Jambhulkar, Prof. Shrikant V. Sonekar ”Real Time College Bus Tracking Application for Android Smartphone” Feb 2017 [15]R C, Jisha & Mathews, Mathews & Kini, Sidharth & Kumar, Vineeth & Harisankar, U & Shilpa, M. (2018). An Android Application for School Bus Tracking and Student Monitoring System. 1-4. 10.1109/ICCIC.2018.8782320. [16]Abhilash R, Mahima R, Monisha S, Nagashri R”Smart Tracking System for School Buses” April 2017 [17]I. Korkmaz, A. Camci, C. Cengiz, D. Dirik, E. Cekci and F. M. Akbaba, ”A Smart School Bus Tracking System,” 2019 International Symposium on Networks, Computers and Communications (ISNCC), Istanbul, Turkey, 2019, pp. 1-6, doi: 10.1109/ISNCC.2019.8909188.