Latest
Latest
Latest
for
By
Beenish Shakeel SP20-BCS-017
Noor-ul-Ain SP20-BCS-080
Supervisor
Mr. Muhammad Rashid Mukhtar
Table of Contents
Revision History............................................................................................................................iii
Application Evaluation History...................................................................................................iv
1. Introduction..............................................................................................................................1
1.1 Modules........................................................................................................................................1
2. Design Methodology and Software Process Model...............................................................2
3. System Overview......................................................................................................................2
3.1 Architectural Design.....................................................................................................................3
4. Design Models...........................................................................................................................4
4.1 Activity Diagram:.........................................................................................................................4
4.2 Data Flow Diagram:...................................................................................................................28
4.3 State Transition Diagram:...........................................................................................................33
5. Data Design.............................................................................................................................35
5.1 Data Dictionary...........................................................................................................................35
6. Human Interface Design........................................................................................................36
6.1 Screen Images.............................................................................................................................36
6.2 Screen Objects and Actions........................................................................................................39
7. Implementation......................................................................................................................40
7.1 Algorithm....................................................................................................................................40
7.2 External APIs/SDKs...................................................................................................................41
7.3 User Interface.............................................................................................................................42
7.4 Deployment................................................................................................................................45
8. Testing and Evaluation..........................................................................................................45
8.1 Unit Testing................................................................................................................................45
8.2 Functional Testing......................................................................................................................52
8.3 Business Rules Testing...............................................................................................................56
8.4 Integration Testing......................................................................................................................58
9. Plagiarism Report..................................................................................................................60
Software Design Description for See Through My Eyes Page iii
Revision History
Name Date Reason for changes Version
Version 1.0 12/05/2023 First Version 1.0
Software Design Description for See Through My Eyes Page iv
Supervised by
Mr. Muhammad Rashid Mukhtar
Signature______________
Software Design Description for See Through My Eyes Page 1
1. Introduction
The “See through My Eyes” is a smartphone application for blind and visually impaired persons.
Firstly, the blind will start the application by shaking his/her phone. Then, the app asks the blind for
the type of help he/she wants whether it is volunteer based or GPS based. If the help required is of
some GPS based, then the application provides some predefined assistance. If the help is volunteer
based, then the app asks the user for the confirmation to initiate the request for volunteer.
On volunteer’s end, the app will show notification when a request comes. The volunteer will be able
to accept or decline the request. The volunteer will be able to capture static shots during live camera
feed if he/she needs to focus on something in particular. The life of the shots taken will be up-to the
duration of the call to maintain good privacy standards. After the call, both the blind and the
volunteer will review the other party’s performance. This will help to improve the subsequent
volunteer searches.
1.1Modules
The software process model being used in the development of this project is an Incremental Model.
This model allows us to develop the system in increments. A basic model containing the basic
functionalities will be developed first. Then other features can be added in multiple iterations. The
benefit of this process model is that we have a working model of the system very quickly and it is
easier to test in a single iteration.
3. System Overview
The “See through My Eyes” application is designed to provide assistance to blind and visually
impaired persons using their smartphones. The application offers two types of help: volunteer-based
or GPS-based. The user can access the application by shaking their phone, and they will be
prompted to select the type of assistance they require.
If GPS-based assistance is selected, the app will provide predefined assistance. In contrast, if
volunteer-based assistance is required, the user will be prompted to confirm their request, and a
notification will be sent to available volunteers. The volunteer can accept or decline the request and
Software Design Description for See Through My Eyes Page 3
will have access to a live camera feed to assist the blind person. If necessary, the volunteer can take
static shots during the call to focus on particular items.
To maintain privacy standards, the shots taken during the call will have a limited life span and
expire when the call ends. After the call, both the blind user and the volunteer will have the
opportunity to review each other's performance, which will help to improve subsequent volunteer
searches.
Overall, the “See through My Eyes” application offers an innovative and practical solution to help
blind and visually impaired persons navigate their environment with the assistance of volunteers.
The application follows a modular design and consists of 8 major modules which are illustrated in
the diagram below. Users Management module is responsible for creating, modifying and deleting
users accounts. It also allows for sending invites to potential users. All the subsequent modules of
the app are dependent on this module to provide the user’s identity.
The Software as a Service module is responsible for enabling the app to become active on the event
of shake once the user is logged in. It also registers the shake event the first time app is started, if
the OS allows it. This, then, enables the app to keep running in the background for it to be able to
detect shakes whenever they happen while draining as less battery as possible. Now, with the app
open and running, The Voice Based Control module takes the user’s audio input, converts it in to
meaningful commands that can be executed by the app. It also allows the user to select the language
of choice. The commands can be of calling a volunteer, getting location based guidance or of some
predefined system related function too.
When a command to call a volunteer is processed, the Volunteer Search module looks up a
volunteer depending upon the criteria specified which is also extracted from the command itself.
The criteria can be nearest location, rating or to find volunteers that are already in the contact list of
the user. If and when a volunteer is found, Video Calling module helps in establishing a 1-1 good
quality video call. This module also provides functionalities during the video call such as taking
temporary static images, remotely zooming in and out, switching the camera and also turning off the
camera at all.
Apart from the above, the GPS based help management module can help users with the location
based guidance by directing to locations with audio instructions and also by saving the locations to
be used again later. Review System is responsible for managing all sorts of feedbacks, be it blind to
volunteer, volunteer to blind or any user to the app. The Voice Based Operations module is
responsible for acting upon the user’s demand of the basic functionalities of the system such as
asking for the time, date or setting an alarm, etc.
Software Design Description for See Through My Eyes Page 4
4. Design Models
4.1 Activity Diagram:
Software Design Description for See Through My Eyes Page 5
System will provide blind the facility to SMS the person from his contact list just speak the name of
person and speak SMS system will launch the call to that person
System will provide blind the facility to set the alarm by providing date and time for which he
wants to set the alarm.
This diagram explains major functionalities of “see through my eyes” App. This diagram illustrates
external entities and system interfaces. This app helps blind person in a way that they can make
video call to Volunteers and specialist person these Volunteer guide blind person in every possible
way so they can perform their daily task easily. Furthermore, blind also avail voice-based GPS
guidance using see through my eyes. Admin will manage Volunteer and Blinds accounts.
This diagram gives a more detailed view of the data flow and connections between the modules. It
is one level deeper view than the context diagram. Now it also explains the database interconnection
and details the communication happening between the modules by enlisting the possible actions
These diagrams now explain the flow among each module individually.
Diagram 1:
This state diagram explains blind sign-up flow.
Diagram 2:
This state diagram explains User profiling and their rights as Admin and Volunteer
Diagram 3:
This state diagram explains one to one call generation between Volunteer and Blind
Figure 34: State diagram for Authentication for Volunteer Blind Video call
Software Design Description for See Through My Eyes Page 35
Diagram 4:
This state diagram explains services provided to blind by our app like GPS and other voice base
operations
5. Data Design
For the permanent storage of Volunteer, Blind and Admin record firebase database is being used.
Firebase offers a real-time database that allows developers to build applications that update data in
real-time. Also, it allows efficient querying and structuring of data.
Software Design Description for See Through My Eyes Page 36
Figure 38: Blind Main screen Figure 39: Video call Screen
Software Design Description for See Through My Eyes Page 39
Figure 40: Volunteer search Screen Figure 41: GPS Voice Guidance Screen
Software Design Description for See Through My Eyes Page 40
Figure 36: It is the sign-up screen of our app where user will enter all credentials and when click
sign up system will match all the entered fields and if they are valid system will register the user
into the system.
Figure 37: It is the sign in screen of our app. User have to provide email and password. If the email
is registered and password is correct user will sign in and he can avail the functionalities of app
Figure 38: It is the Blind side main screen of our app which will appear when blind shake the
phone system will generate voice commands and blind will response back in audio commands
system will process blind audio and provide him demanded service.
Figure 39: It is the video call main screen. This screen will appear when 1-1 secure call is
generated between volunteer and blind. Volunteers can guide blind people and help her to do daily
life tasks easily.
Figure 40: It is the Volunteer search screen. when blind ask for video call the system will search for
nearest possible volunteer then this screen will be pop up in the app.
Figure 41: It is the GPS voice-based guidance screen. When Blind ask for GPS voice-based
guidance system will fetch blind location ask him/her for destination and start guiding blind using
voice commands
Software Design Description for See Through My Eyes Page 41
7. Implementation
1.1 Algorithm
Following are the major algorithms used in implementing the functionality of the system developed
so far.
Algorithm 1 findNearestVolunteer
Input: locblind: a tuple containing latitude and longitude of the blind, locs volunteers: an array with latitudes
and longitudes and user IDs of all the volunteers with same language and city i.e. (user_id, latitude,
longitude)
Output: Volunteer Id if a volunteer is found, null otherwise
1: Initialize distances variable with an empty Hashmap
2: nearest_volunteer ← null
3: minimum_distance ← inifinity
4: latblind ← locblind[0]
5: longblind ← locblind[1]
6: foreach volunteer in locsvolunteers:
7: latvol ← volunteer[1]
8: longvol ← volunteer[2]
9: distance ← acos(sin(lat vol) * sin(latblind) + cos(latvol) * cos(latblind) * cos(longblind – longvol)) *
6371
10: if (distance < minimum_distance) then
11: minimum_distance ← distance
12: nearest_volunteer ← volunteer[0]
13: end if
14: end foreach
15: return nearest_volunteer, distance
3: if (! exclude.contains(volunteer) ) then
4: Append volunteer in considerable_volunteers
5: end if
6: end foreach
7: selected_volunteer = Pick a random volunteer from considerable_volunteers
8: return selected_volunteer
Algorithm 2 evaluateUserRating
Input:
cumulative_rating: a numeric value that indicates the mean rating of a user
no_of_ratings: Number of people who have given a rating
current_rating: Rating from current user
Output: New cumulative rating
1: total_ratings = cumulative_rating * no_of_ratings
2: return (total_ratings + current_rating) / (no_of_ratings + 1)
The table below show the external APIs used by the system. It also describes the rationale behind
using the API, its description, and the function in which it is used:
Figure 44: Blind Main screen Figure 45: Video call Screen
Software Design Description for See Through My Eyes Page 45
Figure 46: Volunteer search Screen Figure 47: GPS Voice Guidance Screen
Software Design Description for See Through My Eyes Page 46
1.4 Deployment
We are making react native mobile app in which Server will be deployed over AWS and the data
will be store/host on Firebase. App will not be hosted either on play store or on any other platform
1 Check that the initial Event: App starts The app appears in Pass
start registers a the background
background service apps
1 Check that the shake Event: Shake The app comes to Pass
opens the app when the the foreground
phone is unlocked
2 Check that the shake Event: Shake on The phone prompts Pass
asks for the phone’s lock the user to enter
password when opening password to get to
the app when the phone the app
is locked
Software Design Description for See Through My Eyes Page 47
Table 6: App Allow the volunteer to rate the blind test case
No. Test case/Test script Attribute and value Expected result Result
Unit Testing 7: Test that the system can successfully listen to and transcribe a given audio input
accurately.
Testing Objective: Listen to all blind audio commands.
Unit Testing 8: Test that the system can correctly identify and switch to the user's preferred
language.
Testing Objective: Able to help blind in his/her native language.
Unit Testing 9: Test that the user can successfully create an account with valid inputs.
Testing Objective: Volunteer Able to make his/her account.
1 User enter all his fields All credentials Sign up successful Pass
and press sign up required for sign up
2 User miss some fields Some credentials are Please enter all Pass
filled fields.
Unit Testing 10: Test that the user can log in to their account after creating it
Testing Objective: Allow user to log in to correct account and avail the app features
Table 10: Allow user to log in to correct account and avail the app features
No. Test case/Test script Attribute and value Expected result Result
1 User enter all his fields All credentials Sign in successful Pass
and press sign in required for sign in
2 User miss some fields Some credentials are Please enter all Pass
filled fields.
3 User enter wrong Wrong password Password does not Pass
password match reenter
password
Unit Testing 11: Test that the user can update his account.
Testing Objective: Allow user to update his account successfully.
1 User enter all his fields All credentials Update profile Pass
and press update profile required for update successful
profile
2 User miss some fields Some credentials are Please enter all Pass
filled fields.
3 User enter unmatched Password and Password does not Pass
password and confirm confirm password match with
password confirm password
re enter
Software Design Description for See Through My Eyes Page 50
Unit Testing 12: Test that the user can delete his account.
Testing Objective: Allow user to delete his account successfully.
1 User enter delete profile Just click the button Confirmation Pass
button message asking to
delete profile or
not
2 User click YES on Click yes button Profile Deleted Pass
confirm deletion pop up successfully
3 User Click No button on Click no Button Profile remain un Pass
confirmation popup deleted
Unit Testing 13: Test that the user can share app.
Testing Objective: Allow user to share the app with friends and family.
Table 13: Allow user to share the app with friends and family.
No. Test case/Test script Attribute and value Expected result Result
1 User click share app Select the app App link is shared Pass
icon through which he with whom user
wants to share wants
1 Admin click delete user Just click the button Confirmation Pass
button message asking to
delete user or not
2 Admin click YES on Click yes button User Deleted Pass
confirm deletion pop up successfully
3 Admin Click No button Click no Button User remain un Pass
on confirmation popup deleted
Software Design Description for See Through My Eyes Page 51
Unit Testing 15: Verify if the system currently achieve user current location.
Testing Objective: Allow system to get user current location.
1 Blind selected to get Get the user current System will able to Pass
GPS voice guidance location get user current
location
Unit Testing 16: Verify if the system can share the location with Volunteer during video call.
Testing Objective: Allow Volunteer to get Blind location.
1 Blind started the video Blind current System will be able Pass
call and wanted to share location to share blind
location with Volunteer current location
with Volunteer
Unit Testing 17: Test that the system can provide correct GPS Voice base Guidance.
Testing Objective: Allow Blind to avail GPS voice-based guidance.
1 Blind started the GPS Blind current System will be able Pass
voice base guidance location and guide Blind person
destination to his destination
using Voice
commands
Unit Testing 18: Test that the Blind fetched the notes correctly from the database.
Testing Objective: Allow Blind to get notes from the database.
1 Blind get the notes from Blind tell which note System will be able Pass
Software Design Description for See Through My Eyes Page 52
Unit Testing 19: Test that the system is playing the note for blind person.
Testing Objective: Allow Blind to listen to those notes.
1 Notes that blind wants is Notes fetched from System will be able Pass
playing the database play the notes for
blind
Unit Testing 20: Test that the system generate the call to person blind wants.
Testing Objective: Allow Blind to natively call anyone from his contact.
1 Blind will able to call Person Contact from System will be able Pass
anyone from his contact contact list call the person
list
Unit Testing 21: Test that the system generate the SMS to person blind wants.
Testing Objective: Allow Blind to natively SMS anyone from his contact.
1 Blind will able to SMS Person Contact from System will be able Pass
anyone from his contact contact list SMS the person
list
Unit Testing 22: Test that the system can set an alarm for blind person
Testing Objective: Allow Blind to set alarm.
1 Blind will able to set Date and time System will be able Pass
alarm to set an alarm for
Software Design Description for See Through My Eyes Page 53
1. Find a nearest Search Type: Nearest (2, 33.47, 65.05) (2, 33.47, 65.05) Pass
volunteer Volunteers: [(1,
33.57, 65.15), (2,
33.47, 65.05), (3,
33.67, 65.25)]
Blind: (33.43, 65.07)
2. Find a nearest Search Type: Nearest Null Null Pass
volunteer when Volunteers: [(1,
no one is 33.57, 65.15), (2,
available or no 33.47, 65.05), (3,
one accepts 33.67, 65.25)]
Exclude: [1, 2, 3]
Blind: (33.43, 65.07)
3 Find a good Search Type: (4, 4.8) (4, 4.8) Pass
rated volunteer Rating
volunteers_ratings:
[(1, 4.5), (2, 5), (3,
3.8), (4, 4.8)]
exclude: [2]
4 Add the Search Type: Exclude: [2, 1] Exclude: [2, 1] Pass
volunteer in Rating
exclude array if volunteers_ratings:
he / she rejects [(1, 4.5), (2, 5), (3,
the request
3.8), (4, 4.8)]
exclude: [2]
5 Check that a contacts: [1, 65, 71, 1 1 Pass
volunteer is 98, 357]
picked from exclude: [71]
the contact list
6 Add the contacts: [1, 65, 71, Exclude: [71, 1] Exclude: [71, 1] Pass
volunteer in 98, 357]
exclude array if exclude: [71]
he / she rejects
the request
Software Design Description for See Through My Eyes Page 54
1. Establish a Room type: Private Video call is setup Video call is setup Pass
video call Max participants: 2
Max quality allowed:
HD
2. Establish a Room type: Private Message: System at Message: System at Pass
video call when Max participants: 2 full capacity. Please full capacity. Please
capacity is Max quality allowed: try again later try again later
reached HD
3. Close the room Participants: None Room closed Room closed Pass
once both
participants
leave
4. Close the room Participants: Room closed Room closed Pass
if the blind Volunteer
leaves
Table 3 : Functional test case To ensure that the volunteer can make the best out of limited accessibility
No. Test case/Test Attribute and value Expected result Actual result Result
script
Table 4: Functional test case To ensure that the volunteer can make the best out of limited accessibility
No. Test case/Test Attribute and value Expected result Actual result Result
script
Table 5: To ensure that the Blind will be able to run app and get help from the app in his own language.
No. Test case/Test Attribute and value Expected result Actual result Result
script
Functional Testing 6: System will assign and run the app in the language that Blind select
Objective: To ensure that Blind can avail the whole app using voice commands in his language.
Table 6: Functional test case To ensure that Blind can avail the whole app using voice commands in his language.
No. Test case/Test Attribute and value Expected result Actual result Result
script
1. Blind speak the Language: Urdu System assign the System has assign Pass
language he language Urdu to the language Urdu
Software Design Description for See Through My Eyes Page 56
Table 7: Functional test case To ensure that User can avail the app.
No. Test case/Test Attribute and value Expected result Actual result Result
script
1. Volunteer Credentials: All fields System make an System has made Pass
wants to sign required account for an account for
up and make Volunteer Volunteer
his account
2. Volunteer Credentials: missing Message: Enter Message: Enter Pass
missed required fields missing fields. missing fields.
credentials in
the signup
process
3. Volunteers Credentials: Message: Enter Message: Enter Pass
enter Unmatched password matched password matched password
unmatched and confirm and confirm and confirm
password with password password password
confirm
password
4 Volunteer Credentials: Message: Email is Message: Email is Pass
wants to sign in Password and not registered not registered
Incorrect email
5 Volunteer Credentials: Incorrect Message: Incorrect Message: Incorrect Pass
wants to sign in Password and email password password
6 Volunteer want Credentials: correct Message: signed in Message: signed in Pass
to sign in Password and email
Table 8: Functional test case To ensure that Blind can avail GPS voice guidance
No. Test case/Test Attribute and value Expected result Actual result Result
script
Table 9: Functional test case To ensure that Blind can avail offline services
No. Test case/Test Attribute and value Expected result Actual result Result
script
Business Rule Testing 1: The nearest volunteer search should not take more than 60 seconds and
should not find a volunteer with more than 2 KMs of distance.
within 60 seconds
Find volunteer T F
Volunteer search F T F T
process within 60
secs
Volunteer within 2 F F T T
KM
Actions
Find volunteer F F F T
Business Rule Testing 2: Notes uploading and fetching should not take more than 10 seconds.
System is trying to upload notes for 10 seconds
Business Rule Testing 3: System listen get the audio process it and provide feedback instruction to
blind within 30 to 40 seconds.
System is trying to process user audio
Table 5 : Business rule to test system audio processing
Conditions Rule 1 Rule 2
System is trying to process T F
user audio for 15 seconds
Audio processed T F
Software Design Description for See Through My Eyes Page 59
1. Share location Location: Blind’s Volunteer will get the Volunteer Pass
latitude and location of the blind will get the
longitude location of
the blind
9. Plagiarism Report