Fyp Thesis

Download as pdf or txt
Download as pdf or txt
You are on page 1of 51

1|P ag e

VOICE BASED EMAIL APPLICATION FOR BLINDS

By
Faiza Latif
Marium Ishaq

Supervised By
Madam Rubina

Institute Of Information Technology


Quaid e Azam University
Islamabad

2|P ag e
Acknowledgment

All the praises, thanks and acknowledgments are for the creator Allah Almighty,
the most Beneficent, the most Merciful, who gave me strength and enabled me to
undertake and execute this task. Countless salutations upon the Holy Prophet
Hazrat Muhammad (S.A.W), source of knowledge for enlightening the world with
the essence of faith in Allah and guiding the humanity towards the true path of life.

Every project big or small is successful largely due to the effort of a number of
wonderful people who have always given their valuable advice or lent a helping
hand. We sincerely appreciate the inspiration; support and guidance of all those
people who have been instrumental in making this project a success.

Our parents receive our deepest gratitude and love for their dedication and the
many years of support during our undergraduate studies, that provided the
foundation for this work.

Finally, again thanks to God who has made our life more bountiful. May Your
name be exalted, honored, and glorified. Finally yet importantly, we would like to
thank everybody who was important to the successful completion of project.

Faiza Latif & Marium Ishaq


2016-2020

3|P ag e
Abstract
In today’s world, communication has become very easy due to integration of
communication technologies with internet. However the visually challenged people
find it very difficult to utilize this technology because of the fact that using it
requires visual perception.

Even though much advancement has been implemented to help them use
computers efficiently, no user who is visually challenged can use this technology
as efficiently as a normal user since they require some practice for using the
available technologies.

This project aims at developing an Email Application that will help even a naïve,
visually impaired person to use the services for communication without previous
training. The Application does not require the use of keyboard and mouse like
devices. Instead it will work only on voice based operations and speech. This
Application can also be used by any normal person, for instance, by someone who
is unable to read.

4|P ag e
Contents
Title Page ……………………………………………………………………2
Acknowledgement …………………………………………………………..3
Abstract ……………………………………………………………………...4
Table Of Contents …………………………………………………………5-6
List Of Figures ………………………………………………………………7
Chapters
I. Introduction To The Problem ……………………………………….8-12
1.1 Problem Definition ………………………………………………8
1.2 Introduction ………………………………………………………8
1.3 Purpose …………………………………………………………...8
1.4 Objective …………………………………………………………9
1.5 Existing System And Problems ………………………………….10
1.6 Proposed Solution ……………………………………………11-12
II. System Analysis And Requirement ………………………………..13-19
2.1 System Analysis …………………………………………………13
2.1.1 Relevance of Platform ………………………………….13
2.1.2 Relevance of Programming Language ………………….13
2.2 Requirement Analysis ……………………………………………14
2.2.1 Scope And Boundary …………………………………...14
2.2.2 User Objective ………………………………………….14
2.2.3 Input And Output ……………………………………….15
2.3 Software Requirement ……………………………………………15
2.4 Hardware requirement ……………………………………………15
2.5 Functional Requirement ………………………………………….16
2.5.1 Login/Signup ……………………………………………16
2.5.2 Dashboard ……………………………………………….16
2.5.3 Compose Mail …………………………………………...17
2.5.4 Inbox …………………………………………………….17
2.5.5 Sent Mails ……………………………………………….17
2.5.6 Trash Mails………………………………………………17
2.5.7 Settings …………………………………………………..18
2.5.8 Logout …………………………………………………...18
2.6 Non-Functional Requirement ………………………………….18-19
III. System Design …………………………………………………………20-27
3.1 General Design Architecture ……………………………………...20
3.2 UML Diagrams ……………………………………………………21
3.2.1 Use Case Diagram …………………………………….....22
3.2.2 Class Diagram ……………………………………………24

5|P ag e
3.2.3 Sequence Diagram ……………………………………25-26
3.2.4 Activity Diagram ………………………………………...27
IV. Tools And Techniques ………………………………………………..28-30
4.1 Software Approach ………………………………………………..28
4.2 About DART ……………………………………………………....28
4.3 SMTP Method ……………………………………………………..29
4.4 Flutter UI …………………………………………………………..29
4.5 Cloud Firestore …………………………………………………….30
V. System Implementation ………………………………………………31-37
5.1 Introduction ……………………………………………………….31
5.2 Language ………………………………………………………….31
5.3 Platform & IDE Selection ………………………………………...32
5.4 Database …………………………………………………………..32
5.5 Application real-time Interfaces ……………………………….33-37
VI. System Testing ……………………………………………………….38-47
6.1 Introduction ……………………………………………………….38
6.1.1 Software Testing Hierarchy ……………………………..39
6.2 Unit Testing ……………………………………………………….39
6.2.1 Unit Testing Tasks ……………………………………….40
6.3 Integration Testing ………………………………………………...41
6.3.1 Methods ………………………………………………….41
6.4 System Testing …………………………………………………….41
6.4.1 Black Box Testing ………………………………………..42
6.4.2 White Box Testing ……………………………………….43
6.5 Acceptance Testing ………………………………………………..44
6.5.1 Tasks ………………………………………………….44-45
6.6 Test Cases ………………………………………………………46-47
VII. Conclusion And Future Scope ……………………………………….48-49
7.1 Conclusion …………………………………………………………48
7.2 Future Scope ……………………………………………………48-49
References …………………………………………………………………50

6|P ag e
LIST OF FIGURES

Fig I ……………………………………………………………………. ….20


Fig II ………………………………………………………………………..22
Fig III ……………………………………………………………………….23
Fig IV ……………………………………………………………………….25
Fig V………………………………………………………………………...26
Fig VI ……………………………………………………………………….32
Fig VII …………………………………………………………………........33
Fig VIII ……………………………………………………………………..34
Fig IX ……………………………………………………………………….35
Fig X ………………………………………………………………………..38
Fig XI ……………………………………………………………………….42
Fig XII ………………………………………………………………………43
Fig XIII ………………………………………………………………….......44

7|P ag e
CHAPTER 1
INTRODUCTION TO THE PROBLEM

1.1 PROBLEM DEFINITION


The key opinion kept into consideration while developing the proposed system was
accessibility. Such applications will be used efficiently by anyone whether he is
able or disable.

Unlike existing systems which focuses more on Graphical User Interface (GUI)
friendliness of normal user, our system covers expectations of both normal as well
as visually impaired group.

1.2 INTRODUCTION
The most common mail services that are available today are of no use to visually
impaired people. This is because these systems do not provide any audio feedback.
As they cannot visualize what is present on the screen, it becomes very difficult for
them to perform required operations.

Mobile phones have become an integral part of our everyday life, causing higher
demands for content that can be used on them. Smart phones offer customer
enhanced methods to interact with their phones but the most natural way of
interaction remains speech. Market for smart mobile phones provides a number of
applications with speech recognition implementation.

This Application will not let the user to make the use of keyboard or anything like
that, instead will work on text to speech and vice versa to facilitate sending,
reading, forwarding and replying to emails using an android smart phone. The App
will be developed on Flutter UI platform. The main goal of this project application
is to allow user mostly visually challenged people to input spoken information and
send voice message as desired text message.

8|P ag e
1.3 PURPOSE
The main aim of our application is to help visually impaired people to enjoy the
benefits of email and should be self-sufficient in sending and receiving them
independently. There is a working module of the application which is working on
instructions given specifically in English.

The basic function of the application is to provide user with a simple way to
perform email operations on his phone without compromising his security. The
application is totally voice-based allowing blind person to send and receive emails
on the go. It converts the user spoken voice into text and performs the action
accordingly.

It will consist of voice confirmation i.e., confirming if the user has actually spoken
the recognized text or not, which minimizes the errors involved.

1.4 OBJECTIVE
This project aims at developing an Email Application that will help even a naïve,
visually impaired person, to use the services for communication without previous
training. The Application does not require the use of keyboard or mouse material
as it will be an Android Application. It will work only on mobile touch screen and
speech conversion to text. This Application can also be used by any normal person,
for instance, by someone who is unable to read.

For the future scope it can also design the Voice Based Email Application
(BLIMAIL) working with other languages.

This application proposes an android application, designed specifically for visually


impaired people. This application provides a voice-based mailing service where
they could read, compose and send mail on their own, without any guidance. Here,

9|P ag e
the users have to use certain keywords which will perform certain actions for e.g.
Read, Send, Compose Mail, Trash Mail etc. The BLIMAIL App can be used by a
blind person to access mails easily and efficiently. Thus reliance of visually
impaired on other people for their activities related to mail can be reduced.

1.5 EXISTING SYSTEM AND PROBLEMS


Outdoor communication has been a harder task for a blind and visually impaired
people in the complex urban world. Advances in technology are causing the blinds
to fall behind, even putting their lives at risk. There are almost 314 million visually
impaired people in the world and almost 45 million are blinds.

There are a total number of 5.2 billion email accounts created until 2018. This
makes emails the most used form of communication. This most commonly used
form of communication cannot be used by visually challenged people.

There are email systems developed for visually challenged people in the past.
Some of these systems need help of mouse clicks and some need keyboards for
processing. These systems do not work fully on voice based but need other
material too. It is very difficult for a blind person to find mouse or clicking it or
using some buttons of keyboard.

It created problems for blinds to use such system, Websites. It is very difficult for a
blind to open a website to use email system. They need someone who can open
email for them and then they can use it. It makes them to be dependent on others.

Technology is growing very fast and with the day by day people are becoming
busy. There should be applications for blinds so that they can also enjoy their lives
being not dependent on others.

10 | P a g e
1.6 PROPOSED SOLUTION
The existing email systems don’t provide any means of feedback or Talkback
service. So, they cannot be used by visually challenged people. The voice based
systems that have been developed till now are desktop applications. As visually
challenged people do not prefer to have laptops and desktops, the use of such
developed system are very limited.

The key opinion kept into consideration while developing the proposed system was
accessibility . Such applications will be used efficiently by anyone whether he is
able or disable. Unlike existing systems which focuses more on GUI friendliness of
normal user, our system covers expectations of both normal as well as visually
impaired group.

The system consists of following components :

I. BLIMAIL Android App


The basic function of the BLIMAIL application is to provide user with a
simple way to perform email operations on his phone without compromising
his security. The application is totally voice-based allowing blind person to
send and receive emails on the go. It converts the user spoken voice into text
and performs the action accordingly. It consists of voice confirmation i.e.,
confirming if the user has actually spoken the recognized text or not, which
minimizes the errors involved.

II. Flutter UI
Flutter is Google’s portable UI toolkit for crafting beautiful, natively
compiled applications for mobile, web, and desktop from a single codebase.
Flutter is an open source SDK for creating high-performance, high-fidelity
mobile apps for iOS and Android.

11 | P a g e
III. SMTP Method
The Simple Mail Transfer Protocol (SMTP) is a communication
protocol for electronic mail transmission. SMTP is a connection-oriented, text-
based protocol in which a mail sender communicates with a mail receiver by
issuing command strings and supplying necessary data over a reliable ordered data
stream channel, typically a Transmission Control Protocol (TCP) connection.
An SMTP session consists of commands originated by an SMTP client (the
initiating agent, sender, or transmitter) and corresponding responses from the
SMTP server (the listening agent, or receiver) so that the session is opened, and
session parameters are exchanged. A session may include zero or more SMTP
transactions.

IV. Cloud Firestore


Cloud Firestore is a flexible, scalable database for mobile, web, and server
development from Firebase and Google Cloud Platform. Like Firebase
Realtime Database, it keeps your data in sync across client apps through real
time listeners and offers offline support for mobile and web so you can build
responsive apps that work regardless of network latency or Internet
connectivity. Cloud Firestore also offers seamless integration with other
Firebase and Google Cloud Platform products, including Cloud Function.

12 | P a g e
CHAPTER 2
SYSTEM ANALYSIS AND REQUIREMENTS

2.1 SYSTEM ANALYSIS


The analysis of the system is made with respect to relevance of platform and
programming languages.

2.1.1 Relevance of Platform


The application can work with the android version 3.5 on all android Mobiles.

2.1.2 Relevance of Programming Language


Dart is a client-optimized programming language for apps on multiple
platforms. It is developed by Google and is used to build mobile, desktop, server,
and web applications.

Dart is an object-oriented, class-based, garbage-collected language with C-


style syntax.[10] Dart can compile to either native code or JavaScript. It
supports interfaces, mixins, abstract classes, reified generics, and type inference.

Dart is an open source, structured Web programming language developed by


Google and announced to the public in 2011. Google intended this Web
programming language to replace JavaScript, as it addresses several key problems
with the JavaScript language.

The Dart language is class-based and object oriented language with C-style syntax.
Google engineers describe Dart as "easy to write development tools for, well-

13 | P a g e
suited to modern app development and capable of high-performance
implementations.

2.2 REQUIREMENT ANALYSIS


Requirement analysis explains the scope and boundary of the project, user
objectives, inputs and outputs of the project.

2.2.1 Scope And Boundary


The proposed system will meet the needs of the user by providing following
features.
a. The visually impaired person can efficiently access the mail services.
b. This system will focus more on the user friendliness of all types of people
including normal, visually impaired as well as illiterate people.
c. The App will be highly efficient and easily understandable because it will
make use of voice only.
d. The user can read the mail, compose the mail and record the mail and
send the mail.

2.2.2 User Objective


It will be an Email Application that will help even a naïve, visually impaired
person, to use the services for communication without previous training. The user
objective is to access the mail services efficiently by just speaking.

14 | P a g e
2.2.3 Input and Output
To login to the account, the user needs to provide the specified username and
password. Once the user authentication is done, he will be directed to the home
page or dashboard. If he is a new user, then he needs to sign up to the mail account
by providing his details and registering to it.

When the user wants to compose the message to be sent, he needs to record the
message using a microphone and then the mail will be sent. The user can view the
mail sent by him in the ‘sent mail’ module. The user can read all the mails he has
received in the ‘inbox’ module.

2.3 SOFTWARE REQUIREMENT

• Operating System : Windows XP/7.


• Coding Language : Dart
• Tool Kit : Flutter UI
• IDE : SMTP Method
• Front End : Flutter UI & Dart
• Back End : Cloud Firestore

2.4 HARDWARE REQUIREMENT

• System : 64-bit operating system


• RAM : 12 GB
• Mobile : Android
• Hard Disk : 500 GB

15 | P a g e
2.5 FUNCTIONAL REQUIREMENT
A Functional requirement (FR) is a description of the service that the software
must offer. It describes a software system or its component. A function is nothing
but inputs to the software system, its behavior, and outputs.

Our App has following modules which are functional requirements for our app:
• Login/ Signup
• Dashboard
• Compose Mail
• Inbox
• Sent Mails
• Trash Mails
• Settings
• Logout

2.5.1 Login / Signup


This is the very first page and will ask user to enter login credentials. It will
prompt user with voice command to enter username. The existing user can login to
the account by providing the specified username and password. If the user is new
to the application, then he needs to sign up to the mail account by providing his
details and registering to it.

2.5.2 Dashboard
After successful login, user will be redirected to Home page and this is the
main page from where user can perform all the activities like, compose a new mail,
check inbox, listen sent mails etc.

16 | P a g e
2.5.3 Compose Mail
This module is used to compose a new mail. User can compose a mail by his
voice. Voice converters will convert the speech into text. The user can then send
the mail by saying send. User will give Voice Data about the Recipient, and CC,
BCC, the Subject and then the body.

2.5.4 Inbox
This page will store all of the mails received by user. All the received Mails will
be listed sorted in order of date. User can listen to the received mails by voice
commands.

2.5.5 Sent Mails


This folder will store all of the mails sent from the user. All the sent Mails will
be listed sorted in order of date. User can listen the mails he has sent. By voice
commands he can listen to the recent mail he has sent.

2.5.6 Trash Mails


This module will have all the mails user has deleted from the inbox or sent
mails. He can also check the trash mails by listening to them by giving voice
commands.

17 | P a g e
2.5.7 Settings
This module contains the General settings, Notifications Settings, if user
wants to change the password or mail, he can go to settings and change it all with
just one voice command. There are more modules in settings i-e, inbox default and
Add account.

2.5.8 Logout
This module is used to logout or sign out from the dashboard. After logging
out from the dashboard, he will be redirected to login/ signup page.

2.6 NON-FUNCTIONAL REQUIREMENTS


A Non-Functional Requirement (NFR) defines the quality attribute of a
software system. They judge the software system based on Responsiveness,
Usability, Security, Portability.

Our app has covered following non-functional requirements:

➢ Performance Requirements
Application requires working system with the specified software and
hardware requirements. App should be capable enough to handle 20 million
users with affecting its performance.

➢ Reliability

18 | P a g e
Application can be used via any Android Mobile from any location and at
any time.

➢ Maintainability
Maintenance is easy and economical.

➢ Portability
This App can be run on any Android Device.

➢ Security Requirements
Application requires user to login with his mail credentials. Users must
change the initially assigned login password immediately after the first
successful login. Moreover, the initial should never be reused.

➢ Usability
It ensures good user experience and ease of operating the Application. It is
user friendly and simple application.

19 | P a g e
CHAPTER 3
SYSTEM DESIGN

The system design is the process of defining the architecture, components,


modules, interfaces and data for a system to satisfy requirements. Systems design
could be seen as the application of systems theory to product development. The
design is broadly classified into two levels according to software engineering.
They are high level design and low-level design. They are explained as follows.

3.1 General Design Architecture


The general design architecture of the system depicts the interaction of the
subsystems in the system as shown in figure

20 | P a g e
(Fig I)

3.2 UML Diagrams


The Unified Modelling Language (UML) is a general “purpose modelling
language in the field of software engineering, which is designed to provide a
standard way to visualize the design of a system”.

21 | P a g e
We have developed our App scenarios on following diagrams:

➢ Use Case Diagrams

➢ Class Diagram

➢ Sequence Diagram

➢ Activity Diagram

3.2.1 Use Case Diagram


A use case diagram at its simplest is a representation of a user's interaction with the
system and depicting the specifications of a use case. A use case diagram can portray
the different types of users of a system and various ways that they interact with the
system.

22 | P a g e
(Fig II)

23 | P a g e
3.2.2 Class Diagram
A class diagram is a type of diagram and part of a unified modeling language (UML)
that defines and provides the overview and structure of a system in terms of classes,
attributes and methods, and the relationships between different classes.

(Fig III)

24 | P a g e
3.2.3 Sequence Diagram
A sequence diagram is a kind of interaction diagram that shows how process
operate with one another and in what order. It is a construct of a Message
Sequence Chart. A sequence diagram shows object interactions arranged in time
sequence.

Once the application is up and running, the user has two options – to sign up (for
new user) or to log in (for registered users). If the user wishes to sign up, they will
be directed to the Registration Page where they have to enter their name, password
and re-enter the password. On clicking the Registration button, the two passwords
are checked and if there is a mismatch, an error message is displayed. On the other
hand, if there is a match, the user’s Home Page will be displayed. If the user
wishes to log in to their account, they have to enter the name and the password and
on proper authentication, they are directed to the respective Home Page. In case of
mismatch, again, error message will be displayed. On clicking the Logout button,
the user is signed out of the account and the Welcome Page is displayed.

25 | P a g e
(Fig IV)

26 | P a g e
3.2.5 Activity Diagram
Activity diagrams are graphical representation of workflows of stepwise activities
and actions with support for choice, iteration and concurrency.

(Fig V)

27 | P a g e
CHAPTER 4
TOOLS AND TECHNIQUES

4.1 Software Approach


Software approach is the sequence of steps involved in the development process
along with the software used in each step.

4.2 About DART


Dart is a client-optimized programming language for apps on multiple
platforms. It is developed by Google and is used to build mobile, desktop, server,
and web applications.

Dart is an object-oriented, class-based, garbage-collected language with C-


style syntax. Dart can compile to either native code or JavaScript. It
supports interfaces, mixins, abstract classes, reified generics, and type inference.

Dart is an open source, structured Web programming language developed by


Google and announced to the public in 2011. Google intended this Web
programming language to replace JavaScript, as it addresses several key problems
with the JavaScript language.

The Dart language is class-based and object oriented language with C-style syntax.
Google engineers describe Dart as "easy to write development tools for, well-suited
to modern app development and capable of high-performance implementations.

Dart is an object-oriented language with C-style syntax which can optionally trans
compile into JavaScript. It supports a varied range of programming aids like
interfaces, classes, collections, generics, and optional typing.

28 | P a g e
4.3 SMTP Method
The Simple Mail Transfer Protocol (SMTP) is a communication
protocol for electronic mail transmission. SMTP is a connection-oriented, text-
based protocol in which a mail sender communicates with a mail receiver by
issuing command strings and supplying necessary data over a reliable ordered data
stream channel, typically a Transmission Control Protocol (TCP) connection.

An SMTP session consists of commands originated by an SMTP client (the


initiating agent, sender, or transmitter) and corresponding responses from the
SMTP server (the listening agent, or receiver) so that the session is opened, and
session parameters are exchanged. A session may include zero or more SMTP
transactions.

Most of the internet systems use SMTP as a method to transfer mail from one user
to another. SMTP is a push protocol and is used to send the mail whereas POP
(post office protocol) or IMAP (internet message access protocol) are used to
retrieve those mails at the receiver's side. SMTP is an application layer protocol.

4.4 Flutter UI
Flutter is Google’s portable UI toolkit for crafting beautiful, natively compiled
applications for mobile, web, and desktop from a single codebase. Flutter is an
open source SDK for creating high-performance, high-fidelity mobile apps for iOS
and Android.

It allows you to create a native mobile application with only one codebase. This
means that you can use one programming language and one codebase to create two
different apps (for iOS and Android).

29 | P a g e
4.5 Cloud Firestore
Cloud Firestore is a flexible, scalable database for mobile, web, and server
development from Firebase and Google Cloud Platform. Like Firebase Realtime
Database, it keeps your data in sync across client apps through real time listeners
and offers offline support for mobile and web so you can build responsive apps
that work regardless of network latency or Internet connectivity. Cloud Firestore
also offers seamless integration with other Firebase and Google Cloud Platform
products, including Cloud Function.

Cloud Firestore is a NoSQL document database that lets you easily store, sync, and
query data for your mobile and web apps - at global scale. Structure your data
easily with collections and documents. Build hierarchies to store related data and
easily retrieve the data you need using expressive queries. All queries scale with
the size of your result set (note: not your data set), so your app is ready to scale
from day one.

Cloud Firestore ships with mobile and web SDKs and a comprehensive set of
security rules so you can access your database without needing to stand up your
own server. Using Cloud Functions, our serverless compute product, you can
execute hosted backend code that responds to data changes in your database.

With Cloud Firestore, you can automatically synchronize your app data between
devices. We’ll notify you of data changes occur as they so you can easily build
collaborative experiences and real time apps. Your users can access and make
changes to their data at any time, even when they're offline. Offline mode is
available on iOS, Android and Web!

30 | P a g e
CHAPTER 5
SYSTEM IMPLEMENTATION

5.1 Introduction
This chapter describes the project ( Voice Based Email Application For Blinds )
implementation and its Interfaces.

5.2 Language
The project is implemented in Dart language. Dart is a client-
optimized programming language for apps on multiple platforms. It is developed
by Google and is used to build mobile, desktop, server, and web applications.

Dart is an object-oriented, class-based, garbage-collected language with C-


style syntax. Dart can compile to either native code or JavaScript. It
supports interfaces, mixins, abstract classes, reified generics, and type inference.

Dart is an open source, structured Web programming language developed by


Google and announced to the public in 2011. Google intended this Web
programming language to replace JavaScript, as it addresses several key problems
with the JavaScript language.

The Dart language is class-based and object oriented language with C-style syntax.
Google engineers describe Dart as "easy to write development tools for, well-
suited to modern app development and capable of high-performance
implementations.

Dart is an object-oriented language with C-style syntax which can optionally trans
compile into JavaScript. It supports a varied range of programming aids like
interfaces, classes, collections, generics, and optional typing.

31 | P a g e
5.3 Platform And IDE Selection
The project is coded and implemented on Flutter UI and Flutter SDK. The frontend
is done using Dart and backend using Cloud Firestore. Flutter is Google’s portable
UI toolkit for crafting beautiful, natively compiled applications for mobile, web,
and desktop from a single codebase. Flutter is an open source SDK for creating
high-performance, high-fidelity mobile apps for iOS and Android.

It allows you to create a native mobile application with only one codebase. This
means that you can use one programming language and one codebase to create two
different apps (for iOS and Android).

5.4 Database
Cloud Firestore is a flexible, scalable database for mobile, web, and server
development from Firebase and Google Cloud Platform. Like Firebase Realtime
Database, it keeps your data in sync across client apps through real time listeners
and offers offline support for mobile and web so you can build responsive apps
that work regardless of network latency or Internet connectivity. Cloud Firestore
also offers seamless integration with other Firebase and Google Cloud Platform
products, including Cloud Function.

Cloud Firestore is a NoSQL document database that lets you easily store, sync, and
query data for your mobile and web apps - at global scale. Structure your data
easily with collections and documents. Build hierarchies to store related data and
easily retrieve the data you need using expressive queries. All queries scale with
the size of your result set (note: not your data set), so your app is ready to scale
from day one.

Cloud Firestore ships with mobile and web SDKs and a comprehensive set of
security rules so you can access your database without needing to stand up your
own server. Using Cloud Functions, our serverless compute product, you can
execute hosted backend code that responds to data changes in your database.

32 | P a g e
5.5 Application Realtime Interfaces

( Fig VI )- Welcome Screen

33 | P a g e
(Fig VII) - Login

34 | P a g e
(Fig VIII) - SignUp

35 | P a g e
(Fig IX) - Dashboard

The user is directed to this page once login is done successfully. From this page
now the user can perform operations that the user wishes to perform. The options
available are:

36 | P a g e
• Inbox
• Compose
• Sent
• Trash
• Settings
• Logout

37 | P a g e
CHAPTER 6
SYSTEM TESTING

Testing is an important stage in the System development life cycle. Careful


planning is needed to get the most out of testing and to control testing cost. Test
planning is concerned with setting out standard for the testing process rather than
describing the product test. System testing is an important element of software
quantity assurance and ultimate review of specifications.

6.1 Introduction
Software testing is a process used to identify the correctness, completeness and
quality of the developed computer software. Testing a process is questioning a
product in order to evaluate it, where the questions are things the tester tries to do
with the product, and the product answers with its behaviour in reaction to probing
of the tester.

The testing phase is performed after the coding to detect all the errors and provide
quality assurance and ensure reliability of the software. Testing is vital to the
success of the system. During testing, the software to be tested is evaluated to
determine if the system is performing as expected. Clearly, the success of testing in
revealing errors depends critically on the test cases. The different testing strategies
employed in this project are explained in this chapter.

These are the steps taken to fully test new software in preparation for marketing it:
➢ Unit testing performed on each module or block of code during
development. Unit Testing is normally done by the programmer who writes
the code.
➢ Integration testing done before, during and after integration of a new module
into the main software package. This involves testing of each individual
code module. One piece of software can contain several modules which are

38 | P a g e
often created by several different programmers. It is crucial to test each
module's effect on the entire program model.
➢ System testing done by a professional testing agent on the completed
software product before it is introduced to the market.
➢ Acceptance testing - beta testing of the product done by the actual end users.

6.1.1 Software Testing Hierarchy

(Fig X)

6.2 Unit Testing


In computer programming, unit testing is software verification and validation
method in which a programmer tests if individual units of source code are fit for

39 | P a g e
use. A unit is smallest testable part of an application. It is also called as module
testing.

The goal of unit testing is to isolate each part of the program first and then testing
the sum of its parts, integration testing becomes much easier. In our project, we
apply this by testing the various modules of the application and also each feature
individually. The purpose is to validate that each unit of the software performs as
designed.

Unit testing increases confidence in changing/ maintaining code. If good unit tests
are written and if they are run every time any code is changed, we will be able
to promptly catch any defects introduced due to the change. Also, if codes are
already made less interdependent to make unit testing possible, the unintended
impact of changes to any code is less. Codes are more reusable. In order to make
unit testing possible, codes need to be modular.

This means that codes are easier to reuse. Unit testing increases confidence in
changing/ maintaining code. If good unit tests are written and if they are run every
time any code is changed, we will be able to promptly catch any defects introduced
due to the change. Also, if codes are already made less interdependent to make unit
testing possible, the unintended impact of changes to any code is less. Codes are
more reusable. In order to make unit testing possible, codes need to be modular.
This means that codes are easier to reuse.

6.2.1 Unit Testing Tasks


• Unit Test Plan
➢ Prepare
➢ Review
➢ Rework
➢ Baseline
• Unit Test Cases/Scripts
➢ Prepare

40 | P a g e
➢ Review
➢ Rework
➢ Baseline
• Unit Test
➢ Perform

6.3 Integration Testing


Integration testing is third phase in software testing in which individual software
modules are combined and tested as group. It occurs after unit testing and before
system testing. Integration testing takes as its input module that have been tested
groups them in larger aggregates, applies tests defined in an integration test plan to
those aggregate and delivers as its output the integrated system ready for the
system testing. The purpose of the integration testing is to verify functional,
performance and reliability requirement placed on major design items. All the
different modules of the project are combined and tested.

The purpose of this level of testing is to expose faults in the interaction between
integrated units. Test drivers and test stubs are used to assist in Integration Testing.

6.3.1 Methods
Any of Black Box Testing, White Box Testing and Gray Box Testing methods can
be used. Normally, the method depends on your definition of ‘unit’.

6.4 System Testing


SYSTEM TESTING is a level of testing that validates the complete and fully
integrated software product. The purpose of a system test is to evaluate the end-to-
end system specifications. Usually, the software is only one element of a larger
computer-based system. Ultimately, the software is interfaced with other
software/hardware systems. System Testing is actually a series of different tests
whose sole purpose is to exercise the full computer-based system.

41 | P a g e
Two Category of Software Testing are:
➢ Black Box Testing
➢ White Box Testing

6.4.1 Black Box Testing


BLACK BOX TESTING is defined as a testing technique in which functionality of
the Application Under Test (AUT) is tested without looking at the internal code
structure, implementation details and knowledge of internal paths of the software.
This type of testing is based entirely on software requirements and specifications.
In Black Box Testing we just focus on inputs and output of the software system
without bothering about internal knowledge of the software program.

Following steps are generic steps followed to carry out any type of Black Box
Testing.

➢ Initially, the requirements and specifications of the system are examined.


➢ Tester chooses valid inputs (positive test scenario) to check whether SUT
processes them correctly. Also, some invalid inputs (negative test scenario)
are chosen to verify that the SUT is able to detect them.
➢ Tester determines expected outputs for all those inputs.
➢ Software tester constructs test cases with the selected inputs.
➢ The test cases are executed.
➢ Software tester compares the actual outputs with the expected outputs.
➢ Defects if any are fixed and re-tested.

42 | P a g e
(Fig XI)

6.4.2 White Box Testing


WHITE BOX TESTING is testing of a software solution's internal structure,
design, and coding. In this type of testing, the code is visible to the tester. It
focuses primarily on verifying the flow of inputs and outputs through the
application, improving design and usability, strengthening security. White box
testing is also known as Clear Box testing, Open Box testing, Structural testing,
Transparent Box testing, Code-Based testing, and Glass Box testing. It is usually
performed by developers.

Code optimization by finding hidden errors. White box tests cases can be easily
automated. Testing is more thorough as all code paths are usually covered. Testing
can start early in SDLC even if GUI is not available.

The key principles that assist in executing white box tests successfully are:
• Statement Coverage – ensure every single line of code is tested.
• Branch Coverage – ensure every branch (e.g. true or false) is
tested.
• Path Coverage – ensure all possible paths are tested.

43 | P a g e
(Fig XII)

6.5 Acceptance Testing

ACCEPTANCE TESTING is a level of software testing where a system is tested


for acceptability. The purpose of this test is to evaluate the system’s compliance
with the business requirements and assess whether it is acceptable for delivery.

Formal testing with respect to user needs, requirements, and business processes
conducted to determine whether or not a system satisfies the acceptance
criteria and to enable the user, customers or other authorized entity to determine
whether or not to accept the system.

6.5.1 Tasks
• Acceptance Test Plan
➢ Prepare
➢ Review
➢ Rework
➢ Baseline

44 | P a g e
• Acceptance Test Cases/Checklist
➢ Prepare
➢ Review
➢ Rework
➢ Baseline
• Acceptance Test
➢ Perform

(Fig XIII)

45 | P a g e
5.6 Test Cases

Test Case Description Action Expected Actual Result


Result Result

Sign Up Click on Sign Display the Registration Same as Pass


Up button registration Page expected
page
Register Click on Check if Match: Home Same as Pass
Register password Page expected
entries Mismatch:
match Error
message
Login Click on Check if Valid: Home Same as Pass
Login button username Page Invalid: expected
and Error
password message
are valid
Log Out Click on Display the Welcome Same as Pass
Logout Welcome Page expected
button Page
Inbox Click on Show the list Mail<num>: Same as Pass
Inbox button of all the Read out the expected
received received mail
mails Return:
Display Home
Page
Compose Click on Show Record: Same as Pass
Compose different Record expected
button message for a

46 | P a g e
compose specific
options period of
time Listen:
Play the
recorded
message
Send: Send
the message
Sent Mail Click on Sent Show the Play: Play the Same as Pass
Mail button mails sent by sent message expected
the user Return:
Display Home
Page
Trash Click on Show the Moves the Same as Pass
Trash button trash box mails in trash expected
box

47 | P a g e
CHAPTER 7
CONCLUSION AND FUTURE SCOPE

7.1 Conclusion
This project proposes an android application, designed specifically for visually
impaired person. This application provides a voice based mailing service where
they could read and send mail on their own, without any guidance. Here, the users
have to use certain keywords which will perform certain actions for e.g. Read,
Send, Compose Mail, check trash mails, settings etc. The BLIMAIL system can be
used by a blind person to access mails easily and efficiently. Thus reliance of
visually impaired on other people for their activities related to mail can be reduced.

This Email App System can be used by any user of any age group with ease of
access. It has feature of speech to text as well as text to speech with speech reader
which makes designed system to be handled by visually impaired person as well as
blind person. It is totally voice based which makes it best for blind people
specially.

No such kind of any App has been developed using Flutter UI and Dart. We have
used these new technologies which will work best.

7.2 Future Scope


For people who can see, e-mailing is not a big deal, but for people who are not
blessed with gift of vision it postures a key concern because of its intersection with
many vocational responsibilities. This voice based email App has great application
as it is used by blind people as they can understand where they are. E.g. whenever
cursor moves to any icon on the website say Register it will sound like “Register
Button”. There are many screen readers available. But people had to remember
mouse clicks. Rather, this project will eliminate all kinds of devices used to read

48 | P a g e
and send emails. This system focuses more on user friendliness of all types of
persons including regular persons, visually compromised people as well as
illiterate.

In future, we can also make it more better and reliable using new technological
tools and using different languages.

49 | P a g e
Reference
1- International Journal of Research Studies in Computer Science and
Engineering (IJRSCSE) Volume 3, Issue 1, 2016, PP 25-30, Voice based e-
mail System for Blinds.
2- T.shabana, a.anam, a.rafiya3, k.aisha, “voice based email system for blinds”
http://www.ijarcce.com/upload/2015/january/ijarcce5c.pdf
3- Code project, “speech recognition”
http://www.codeproject.com/articles/5820/speechrecognition
4- Ummuhanysifa u., nizar banu p k, “voice based search engine and web page
reader”. In international journal of computational engineering research (ijcer).
5- Http://www.ijceronline.com/papers/special%20issue/a0105.pdf
6- Arjun aj, “voice based email for blinds”, slide share
http://www.slideshare.net/123arjun1 /voicebased-email-for-blinds
7- C. Kang, H. Jo and B. Kim, “A Machine-to-Machine based Intelligent
Walking Assistance System for Visually Impaired Person”, The Journal of
KICS, vol. 36, no. 3, (2011), pp. 195-304.
8- S. Kumar, M. A. Qadeer and A. Aupta, “Location Based Service using
Android”, Internet Multimedia Service Architecture and Applications, IEEE
International Conference, (2009)
9- G. Broll, S. Keck, P. Holleis and A. Butz, “Improving the Accessibility of
NFC/RFID-based Mobile Interaction through Learnability and Guidance”,
International Conference on Human-Computer Interaction with Mobile
devices and services, vol. 11, (2009).
10- Sonali Malap,Vaishali Shirke,Mrunali Chalke,Rohan Jain,Sonali
Pakhmode.(2016). Voice based Email System for Visually Impaired People
presented at IJSRD. .[Online].Available:
https://www.scribd.com/doc/299063840/Voice-Based-Email-System-for-
Visually-Impaired-People

50 | P a g e
51 | P a g e

You might also like