Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 104

Abstract

SRS FOR

AR MENU
Table of Contents
Chapter 1 introduction..............................................................................................................................3
1. Introduction.......................................................................................................................................4
1.1. Introduction of the project........................................................................................................4
1.2. Purpose:......................................................................................................................................5
1.3. Project motivation:....................................................................................................................5
1.4. Scope:..........................................................................................................................................5
Chapter 2 Existing System........................................................................................................................6
2. Existing System..................................................................................................................................7
2.1. Drawbacks in the existing system:............................................................................................7
2.2. Proposed System........................................................................................................................7
2.3. System modules..........................................................................................................................7
2.4. System Features.........................................................................................................................8
2.5. Constraints.................................................................................................................................8
2.6. Developing Environment...........................................................................................................8
2.6.1. Visual Studio..................................................................................................................8
2.6.2. Android Studio...............................................................................................................8
2.6.3. Operating System..........................................................................................................9
2.6.4. Unity developer..............................................................................................................9
2.6.5. CSV Files........................................................................................................................9
2.6.6. Hardware Specifications of the Developing Environment..........................................9
2.7. Licensing and Installation.........................................................................................................9
2.7.1. Licensing........................................................................................................................9
2.7.2. Installation.....................................................................................................................9
2.8. Stakeholders.............................................................................................................................10
Chapter 3 System Analysis.....................................................................................................................11
3. System Analysis................................................................................................................................12
3.1. Specific Requirements.............................................................................................................12
3.1.1. Functional Requirements............................................................................................12
3.1.2. Non-Functional Requirements....................................................................................13
3.2. Use Cases:.................................................................................................................................14
3.2.1. Use Case Diagram for AR MENU..............................................................................15
Chapter 4 System Design........................................................................................................................23
4. System Design...................................................................................................................................24
4.1. Sequence Diagram...................................................................................................................25
4.2. System Sequence Diagram......................................................................................................26
4.2.1. Login.............................................................................................................................26
4.2.2. Register.........................................................................................................................27
4.2.3. Delete Account.............................................................................................................27
4.2.4. Scan...............................................................................................................................28
4.2.5. Compared List.............................................................................................................28
4.2.6. Switch to 3D Mode.......................................................................................................29
4.2.7. 3D Model List...............................................................................................................29
4.2.8. Set Preference..............................................................................................................30
4.2.9. Remove Preference......................................................................................................30
4.3. Class Diagram..........................................................................................................................31
4.4. Domain Model..........................................................................................................................32
4.5. Activity Diagram......................................................................................................................33
4.5.1. Activity Diagram Main................................................................................................34
4.5.2. Activity Diagram A......................................................................................................35
4.5.3. Activity Diagram B......................................................................................................36
Chapter 5 Implementation......................................................................................................................37
5. Implementation................................................................................................................................38
5.1. Software Development Model:................................................................................................38
5.2. Pseudo Codes:..........................................................................................................................39
5.2.1. Pseudo code for Login.................................................................................................39
5.2.2. Pseudo code for register..............................................................................................40
5.2.3. Pseudo code for logout.................................................................................................40
5.2.4. Pseudo code for delete account...................................................................................41
5.2.5. Pseudo code for scan....................................................................................................41
5.2.6. Pseudo code for adding preference.............................................................................42
5.2.7. Pseudo code for removing preference........................................................................42
5.2.8. Pseudo code to view preference..................................................................................43
5.2.9. Pseudo code for switching to 3D model in AR mode.................................................43
5.2.10. Pseudo code to rotate 3D model..................................................................................44
5.2.11. Pseudo code for scene change.....................................................................................44
5.2.12. Pseudo code to view preference in AR mode.............................................................45
5.2.13. Pseudo code to view side panels..................................................................................45
5.2.14. Pseudo code to flash panels.........................................................................................46
5.2.15. Pseudo code to update user files.................................................................................46
5.2.16. Pseudo code to display name on menu panel.............................................................47
Chapter 6 Testing....................................................................................................................................48
6. Testing:.............................................................................................................................................49
6.1. Types of testing:.......................................................................................................................49
6.1.1. Black Box Testing:.......................................................................................................49
6.1.2. White Box Testing:......................................................................................................49
6.1.3. Unit Testing:................................................................................................................49
6.1.4. Integration Testing:.....................................................................................................50
6.2. Test Cases.................................................................................................................................50
6.2.1. Pass/Fail Criteria.........................................................................................................50
6.3. Ar. Menu Test Cases:..............................................................................................................51
6.3.1. Test Case # 1................................................................................................................51
6.3.2. Test Case # 2................................................................................................................52
6.3.3. Test Case # 3................................................................................................................53
6.3.4. Test Case # 4................................................................................................................54
6.3.5. Test Case # 5................................................................................................................55
6.3.6. Test Case #6.................................................................................................................56
6.3.7. Test Case # 7................................................................................................................57
6.3.8. Test Case # 8................................................................................................................58
6.3.9. Test Case # 9................................................................................................................59
6.3.10. Test Case # 10...............................................................................................................60
6.3.11. Test Case # 11...............................................................................................................61
6.3.12. Test Case # 12...............................................................................................................62
6.3.13. Test Case # 13...............................................................................................................63
6.3.14. Test Case # 14...............................................................................................................64
6.3.15. Test Case # 15...............................................................................................................65
6.3.16. Test Case # 16...............................................................................................................66
6.3.17. Test Case # 17...............................................................................................................67
6.3.18. Test Case # 18...............................................................................................................68
6.3.19. Test Case # 19...............................................................................................................69
6.3.20. Test Case # 20...............................................................................................................70
6.3.21. Test Case # 21...............................................................................................................71
6.3.22. Test Case # 22...............................................................................................................72
6.3.23. Test Case # 23...............................................................................................................73
6.3.24. Test Case # 24...............................................................................................................74
6.3.25. Test Case # 25...............................................................................................................75
6.3.26. Test Case # 26...............................................................................................................76
6.3.27. Test Case # 27...............................................................................................................77
6.3.28. Test Case # 28...............................................................................................................78
6.3.29. Test Case # 29...............................................................................................................79
6.3.30. Test Case # 30...............................................................................................................80
6.3.31. Test Case # 31...............................................................................................................81
6.3.32. Test Case # 32...............................................................................................................82
6.3.33. Test Case # 33...............................................................................................................83
6.3.34. Test Case # 34...............................................................................................................84
Chapter 7 Conclusion..............................................................................................................................85
7. Conclusion........................................................................................................................................86
7.1. Further Improvements............................................................................................................86
Appendix A User Manual.......................................................................................................................88
8.1. User Guide for AR MENU..............................................................................................................89
Appendix B References...........................................................................................................................99
9. References.......................................................................................................................................100
List of Figures

Figure 3.1: Use Case 01 ………………………………………………………………… 13

Figure 3.2: Use Case 02 ………………………………………………………………… 14

Figure 4.1: Sequence Diagram 01 ……………………………………………………… 23

Figure 4.2: System Sequence Diagram 01 ……………..……………………………… 24

Figure 4.3: System Sequence Diagram 02 ………………………………………..…… 25

Figure 4.4: System Sequence Diagram 03 …………………………………………….. 25

Figure 4.5: System Sequence Diagram 04 ………………………………………..…… 26

Figure 4.6: System Sequence Diagram 05 ………………………………………..…… 26

Figure 4.7: System Sequence Diagram 06 ………………………………………..…… 27

Figure 4.8: System Sequence Diagram 07 ………………………………………..…… 27

Figure 4.9: System Sequence Diagram 08 ………………………………………..…… 28

Figure 4.10: System Sequence Diagram 09 …………………………………..…..…… 28

Figure 4.11: Class Diagram………………………………………………………..…… 29

Figure 4.12: Domain Model …………….. ………………………………………..…… 30

Figure 4.13: Activity Diagram ... ………. ………………………………………..…… 32

Figure 4.14: Activity Diagram A.………..………………………………….……..…… 33

Figure 4.15: Activity Diagram B. ………. ………………………………………..…… 34


List of Tables

Table 3.1: Use Case 01 ………………………………………………………………… 15

Table 3.2: Use Case 02 ………………………………………………………………… 16

Table 3.3: Use Case 03 ………………………………………………………………… 17

Table 3.4: Use Case 04 ………………………………………………………………… 18

Table 3.5: Use Case 05 ………………………………………………………………… 19

Table 3.6: Use Case 06 ………………………………………………………………… 20

Table 6.1: Test Case 01 …………………………………………………………………49

Table 6.2: Test Case 02 …………………………………………………………………50

Table 6.3: Test Case 03 …………………………………………………………………51

Table 6.4: Test Case 04 …………………………………………………………………52

Table 6.5: Test Case 05 …………………………………………………………………53

Table 6.6: Test Case 06 …………………………………………………………………54

Table 6.7: Test Case 07 …………………………………………………………………55

Table 6.8: Test Case 08 …………………………………………………………………56

Table 6.9: Test Case 09 …………………………………………………………………57

Table 6.10: Test Case 10 ………………………………………………………………..58

Table 6.11: Test Case 11 ………………………………………………………………..59

Table 6.12: Test Case 12 ………………………………………………………………..60

Table 6.13: Test Case 13 ………………………………………………………………..61

Table 6.14: Test Case 14 ………………………………………………………………..62

Table 6.15: Test Case 15 ………………………………………………………………..63


Table 6.16: Test Case 16 …………………………………………………………………64

Table 6.17: Test Case 17 …………………………………………………………………65

Table 6.18: Test Case 18 …………………………………………………………………66

Table 6.19: Test Case 19 …………………………………………………………………67

Table 6.20: Test Case 20 …………………………………………………………………68

Table 6.21: Test Case 21 …………………………………………………………………69

Table 6.22: Test Case 22 …………………………………………………………………70

Table 6.23: Test Case 23 …………………………………………………………………71

Table 6.24: Test Case 24 …………………………………………………………………72

Table 6.25: Test Case 25 …………………………………………………………………73

Table 6.26: Test Case 26 …………………………………………………………………74

Table 6.27: Test Case 27 …………………………………………………………………75

Table 6.28: Test Case 28 …………………………………………………………………76

Table 6.29: Test Case 29 …………………………………………………………………77

Table 6.30: Test Case 30 …………………………………………………………………78

Table 6.31: Test Case 31 …………………………………………………………………79

Table 6.32: Test Case 32 …………………………………………………………………80

Table 6.33: Test Case 33 …………………………………………………………………81

Table 6.34: Test Case 34 …………………………………………………………………82


Chapter 1
Introduction
Chapter 1 Introduction

1. Introduction
This chapter includes the introduction which provides the overview of the Requirement
specification and scope of the system. This chapter also describes the purpose for developing this
system from the customer’s and end user’s perspectives.

1.1. Introduction of the project


AR and VR are the technologies that would be dominating in the near future. Making them a
source of information could be beneficial and addictive at the same time.

Here are some benefits mentioned to use this technology as an educational purpose:

1) Better Visualization: Augmented reality is and interesting technology that is


attracting every person specially youngsters. This technology is being mostly used in
games, apps and as Easter eggs. By using AR the application will display the food
items of its actual real time size. Unlike restaurant food images, real time items show
the actual size of the order thus removing any possible misunderstandings.

2) Fast Ingredient Searches: Food allergies and preferences are most times not
expressed freely. Customers just order a dish they find interesting and regret their
choice as soon as they taste a particular ingredient. When they set a particular
preference, the app will automatically search their choices and display them as soon
as they scan a particular menu item. This makes choice easier for the user.

3) Promotes New Experiences: if the potential risk of ordering something new is


eliminated then people will be more open to ordering new dishes and trying new
things. This promotes the food industry and open doors for better and newer
prospects. Augmented Reality attracts users in general and by using this technology,
more users can be motivated to try restaurants in general.

AR Menu 4
Chapter 1 Introduction

1.2. Purpose:
The application AR MENU is a visualizing application. Its main target are foodies and general
public. User can scan menu card with their mobile camera and the model for the relative dish
will be displayed on their screen. The model will be the exact size as of the dish in real life so
user don’t have to play a guessing game. User can also enter their preference of ingredients in the
dish. When a menu item is scanned, their preferred and not-preferred ingredients are displayed
on the screen.

1.3. Project motivation:


Food visualization in restaurants are done using images. Images can be manipulated using
camera angles and lighting. This created the problem for all people who frequent restaurants.
What is real? What is the serving size? Does this dish contain this specific thing and vise-versa?
All these questions motivates this application.

1.4. Scope:
This project has a wide scope. As the future is all about AR and VR technology. Asking a waiter
at a restaurant does not give a clear picture of what the order will turn out to be. The purpose is
to create an easy to use application that will show user the menu items as realistically as possible.
The app aims to make user experiences at new restaurants better and worthwhile. Making users
open to new ideas and experience

AR Menu 5
Chapter 2
Existing System
Chapter 2 Existing System

2. Existing System
This chapter describes flaws in the existing system and also defines how the proposed system
overcomes those flaws. Following are the existing systems

2.1. Drawbacks in the existing system:


There is no hard and fast system for the problem. Some restaurants provide highly
manipulated images and the rest user verbal communication. The main problem is that both
of these ways do not give a clear picture of the dish to the user. Not all restaurants have
highly paid employees and are students working part time. Meaning thee employees do not
know the ingredients and proper sizing terms themselves.

These ways are highly un-reliable.

2.2. Proposed System


The proposed system is a mobile application with augmented reality technology. The
application uses image target e.g. the menu card as reference. User can scan a menu item and
the relative model for that dish will be displayed on the users screen at runtime. Along with
the model, the ingredients that user prefer and rejects are displayed runtime as well. This
makes it easier for user to choose a dish that is according to their preference. The preference
list can be updated by the user.

The models displayed at runtime are exact size of the dishes in real life. The models would
be make as realistic as possible. User can switch between 3D model view and AR view.

2.3. System modules


This application has single module that is

1) 3D Models.
2) Image target (Menu card).
3) 2D User Interface.
4) Preference List.

AR Menu 7
Chapter 2 Existing System

5) Runtime menu scan.

2.4. System Features


The system features of AR MENU are given below:

 Models

All dishes are 3D models. These models are fetched on menu item scan.

 Android Support

The application is built on android platform. It can be installed on any platform from
lollipop onwards.

 Updating tracked target

The user constantly updates the tracked image. Making sure that user has not changed the
image while keeping the current image in place.

 Runtime ingredient search

The ingredients are displayed according to user preferences. As the dish changes the
ingredient panels are updated according to the currently active target menu item.

2.5. Constraints
As this is an Android game it should followed the constraints given by android system e.g.
minimum version Android 5.0 - 5.1.1 – Lollipop to maximum (currently Android 9.0 – Pie).

2.6. Developing Environment

This system is developed under following operating environment.

2.6.1. Visual Studio


This project is compiled using in Visual Studio (2017).

2.6.2. Android Studio

For the SDK’s and JDK’s for android platform.

AR Menu 8
Chapter 2 Existing System

2.6.3. Operating System

Windows 10.

2.6.4. Unity developer


Unity version 2018.3.01.f2

2.6.5. CSV Files


The user database used are CSV files (comma separated values).

2.6.6. Hardware Specifications of the Developing Environment

This system is developed using following hardware specifications

2.6.6.1. System 1

 Processor: Core i7

 Processor Speed: 2.50 GHz

 RAM: 12.00 GB

 Hard Disk: 1 TB

2.6.6.2. System 2

Android device.

2.7. Licensing and Installation


Conditions for licensing and installation are mentioned below.

2.7.1. Licensing

No licensing is required

2.7.2. Installation

This system requires the installation of Visual studio for coding, unity as an editor SDK

AR Menu 9
Chapter 2 Existing System

and JDK for android support.

For modeling it required Auto Desk Maya 2016 or Blender.

2.8. Stakeholders
 Requirement Engineer
 Designer
 Coder/Developer
 Tester
 Deplorer
 Maintenance team
 Project Manager
 Trainer
 Users
 Play Store

AR Menu 10
Chapter 3
System Analysis
Chapter 3 System Analysis

3. System Analysis

System analysis is a software engineering task that bridges up the gap between system level
requirement engineering and software design

3.1. Specific Requirements


In common usage, requirements are categorized as functional and non-functional requirements.

3.1.1. Functional Requirements


Functional requirements describe what the system should do. Functional requirements will
specify a behavior or function, for example: “Sign up” They are often referred to as "System
Requirements".

 Sign up.
 Sign In.
 Image Target detection.
 Model Placement.
 Switch from AR mode to 3D mode.
 Preference Management.
 Search and Display of preference.
 Interactive Menu.

3.1.1.1. Sign in/Sign up


User of the system is provided with two options Sign up and Sign In. For Sign up he has to
register. For Sign up he needs to enter a username and password. He can use this user name to
sign in. the application comes with a default user (username: default user, password: 1234).

3.1.1.2. Image target detection


The application should be able to detect image targets e.g. menu card items with device camera.

3.1.1.3. Model Placement

AR Menu 12
Chapter 3 System Analysis

The 3D models should be displayed over the menu item scanned. The app would display
respective models of menu items. It will detect the changes in image target and change the model
when a new image target is detected.

3.1.1.4. Switch from AR to 3D mode


The application would be able to shift from AR mode to 3D mode and decide the next scene at
runtime.

3.1.1.5. Preference Management


Preference is the list defined by the user of ingredient they prefer or reject in their dishes. User
can add and remove ingredients from their preference list. User preference will contain two
categories:

 Favorite.
 Least Favorite.

3.1.1.6. Search and Display of Preferences


The preference list is displayed in red (least favorite) and green (favorite) color panels in AR
mode. The list is generated at run time by reading the menu card first, checking the relative dish
ingredient and comparing them to the users list.

3.1.1.7. Interactive Menu


User menu should be easy to understand and they should be interactive.

3.1.2. Non-Functional Requirements


Non- functional requirements do not perform a specific function for the business requirement
but are needed to support the functionality. For example, performance, scalability, quality of
service, security and usability. These are often included within system requirements where
applicable.

3.1.2.1. User Friendly

This system is user friendly as all the interfaces are made very interactive and easy to use.

AR Menu 13
Chapter 3 System Analysis

3.1.2.2. Understanding the Content

This system is made in such a way that it is understandable by the user. It is easy to understand.

3.1.2.3. Usability

This system provides interactive interfaces to the user, so it is easy to use.

3.1.2.4. Responsive

This system is designed and developed in such a way that it is responsive. It takes minimum time
to respond to users actions.

3.1.2.5. Reliability

The system is developed in such a way that it is reliable.

3.2. Use Cases:

Use cases capture user requirement for a system by describing how a system will be used
and to what ends in a way that the end user can understand. Use cases are the method
favored by the component and object community to specify requirements and indeed to
drive the whole software development process. A use case is a specific way of using the
system by performing some part of the functionality. Each use case constitutes a complete
course of events initiated by an actor, and it specifies the interaction that takes place
between an actor and the system. It is a collection of possible sequences of interactions
between the system under discussion and its external actors related to a particular goal. The
use case is considered complete when the goal has been satisfied. A use case is usually
written in simple language and without technical jargon so that it can be understood by all
the participants in the analysis process. It is in this way that the use case helps to reduce
scope creep.

 Identify the actors of the system

 For each actor, identify the processes they initiate or participate in.

AR Menu 14
Chapter 3 System Analysis

Identifying the Actors:

People or process that plays the role as a system operator is known as actors.
Something that communicates with the system is an actor. They can be
primary (direct interaction with the system).So in the case of this applications
the actors are the one who play this game they can be normal people of any
age.

Identifying the Use Cases:

The use cases provide the description of how the system will be used by the
actors and how the user will interact with the system

3.2.1. Use Case Diagram for AR MENU


Use case diagram shows the interaction of the actors with the system. The use
cases are written in the oval shape.
3.2.1.1. Use Case# 01

AR Menu 15
Chapter 3 System Analysis

3.2.1.2. Use Case# 02

Figure 3.2: Use Case 02

3.2.2. Fully Dressed Use cases:

Figure 3.1: Use Case 01

AR Menu 16
Chapter 3 System Analysis

Use Case UC-1


ID:
Use Case Register
Name:
Scope Augmented Reality Menu
Level User Level
Primary Actors: User
Description: Users will access the system and register by creating unique Username
and setting a password Then they can create their accounts.
Preconditions: User is not registered yet
Post conditions: User has successfully registered
Stakeholders: Users. They want to register to access AR Menu

Main Success Scenario:


Actor’s Action and Intention System Responsibility
1. User enters record
(username, password)
2. User submits record
3. System checks if the given
credentials are valid and
unique.
4. System creates new account
Alternative 2a. User submits wrong 3a. System prompts an error
Scenario: information or has missed message
some information
Frequency of Low
occurrence:
3.2.2.1. Register:

Use Case UC-2


ID: Table 3.1: Use Case 01

AR Menu 17
Chapter 3 System Analysis

Use Case Login


Name:
Scope Augmented Reality Menu
Level User Level
Primary Actors: User
Description: Users will access the application by logging in using their unique
Username and password.
Preconditions: User already has a registered account
Post conditions: User has successfully logged in.
Stakeholders: Users. They want to login to access AR Menu

Main Success Scenario:


Actor’s Action and Intention System Responsibility
1. User enters record
(username, password)
2. User presses login
3. System checks if the given
credentials are valid
4. System logs-in the user to
his account
Alternative 2a. User submits wrong 4a. System prompts an error
Scenario: information or has missed message
some information
Frequency of High, Every time user has to access the application
occurrence:
3.2.2.2. Login

Use Case ID: UC-3

Use Case Name: Scan

Scope Augmented Reality Menu


Level User Level
Primary Actors: User
Description: User will scan the menu
Table cardCase
3.2: Use to view
02 3d models in augmented reality

AR Menu 18
Chapter 3 System Analysis

mode.
Preconditions: User has a valid account and successfully logged in.
Post conditions: System successfully overlays 3d models relative to scanned menu items
Stakeholders: Users. They want to scan to view the models in augmented mode.

Main Success Scenario:


Actor’s Action and Intention System Responsibility
1. User presses Scan
2. User scans menu card
3. System Opens AR Camera
4. System detects Menu card,
fetch and overlays 3d model
in real world
Alternative 1a. User’s device does not 3a. System displays error hello o
Scenario: support AR Camera message
2a. User scans invalid target 4a. System does not detect hi
hell invalid target

Frequency of High, Every time user has to scan the menu


occurrence:
3.2.2.3. Scan

Table 3.3: Use Case 03

AR Menu 19
Chapter 3 System Analysis

Use Case ID: UC-4


Use Case Name: Set Preference
Scope Augmented Reality Menu
Level User Level
Primary Actors: User
Description: User will set his favorite or least favorite ingredients to find them in
relative scanned menu items.
Preconditions: User has a valid account and successfully logged in.
Post conditions: User has successfully saved his favorite or least favorite ingredients.
Stakeholders: Users. They want to set their preference to view compared list while
they scan menu card

Main Success Scenario:


Actor’s Action and Intention System Responsibility
1. User enters ingredient
(favorite/least favorite)
2. User adds his preference
3. System matches the
ingredient from stored
ingredients
4. System stores user’s
preferences to his account
Alternative 2a. User adds already added 4a. System generates message
Scenario: ingredient (favorite/least
favorite)
Frequency of Medium
occurrence:
3.2.2.4. Set Preference

Table 3.4: Use Case 04

AR Menu 20
Chapter 3 System Analysis

Use Case ID: UC-5

Use Case Name: Switch to 3d model

Scope Augmented Reality Menu


Level User Level
Primary Actors: User
Description: User will be able to view 3d model of the relatively scanned menu item
Preconditions: User has scanned the menu card and the model is already displayed in
Augmented mode
Post conditions: User is able to view the scanned menu item in 3d mode.
Stakeholders: Users. They want to view menu item in a more closer way

Main Success Scenario:


Actor’s Action and Intention System Responsibility
1. User switches to 3d mode.
2. System tracks the
information of scanned
menu item, find the relative
model and displays the
relative model in 3d mode.

Alternative 1a. User tries to switch to 3d 2a. System prompts an error


Scenario: mode without scanning the message “Read menu item
menu item. first”.

Frequency of Medium
occurrence:
3.2.2.5. Switch to 3d model

Table 3.5: Use Case 05

AR Menu 21
Chapter 3 System Analysis

Use Case ID: UC-6

Use Case Name: View Compared List

Scope Augmented Reality Menu


Level User Level
Primary Actors: User
Description: User view compared list to view their added preference in scanned
menu item
Preconditions: AR Camera is active
Post conditions: User is able to view the Compared list
Stakeholders: Users. They want to view compared list of preference before they select
menu item to order

Main Success Scenario:


Actor’s Action and Intention System Responsibility
1. User scans the menu
card.
2. User views compared 3. System fetch ingredient list
list. of the tracked menu item.
4. System compares the
ingredients with user’s
preferences.
5. System creates a list and
displays it to the user.
Alternative 1a. User tries to view 2a. System prompts an error
Scenario: message “ Read menu item first”

Frequency of occurrence: Medium


3.2.2.6. View Compared List

Table 3.6: Use Case 06

AR Menu 22
Chapter 4
System Design
Chapter 4 System Design

4. System Design
In the design phase the architecture is established. This phase starts with the requirement
document delivered by the requirement phase and maps the requirements into architecture. The
architecture defines the components, their interfaces and behaviors. The deliverable design
document is the architecture. The design document describes a plan to implement the
requirements. This phase represents the ``how'' phase. Details on computer programming
languages and environments, machines, packages, application architecture, distributed
architecture layering, memory size, platform, global type definitions, interfaces, and many other
engineering details are established. The design may include the usage of existing components.
The design must implement all of the explicit requirements contained in the analysis model and it
must accommodate all of the implicit requirements desired by the user/customer. The design
must be readable, understandable and guide for those who generate code and for those who test.
It should provide a complete picture of the system.

AR Menu 24
Chapter 4 System Design

4.1. Sequence Diagram


User can login, register and select one of the menu options. The sequence of activities performed
are explained below. There are couple of alternate scenarios represented by “ALT” box. ALT is
short for alternative scenarios, in simple words, if else statements.

Figure 4.1: Sequence Diagram 01

AR Menu 25
Chapter 4 System Design

4.2. System Sequence Diagram


4.2.1. Login
User can login by filling out their username and password. The system will authenticate the
user’s details from its “userdetails.csv” file and if authenticated, it will move the user to the main
menu page.

Figure 4.2: System Sequence Diagram 01

AR Menu 26
Chapter 4 System Design

4.2.2. Register
User can register by choosing a username of their choice and setting a password. If there is
already an existing user with this name then the system will display an error message. If not then
the user will be guided back to the home page.

Figure 4.3: System Sequence Diagram 02

4.2.3. Delete Account


User request is followed by a confirmation message. If user confirms then the user data is
removed from the files and user is redirected to the login/Sign In page.

Figure 4.4: System Sequence Diagram 03

AR Menu 27
Chapter 4 System Design

4.2.4. Scan
The system open the AR camera for the users scan request. User can only scan the menu card
provided. The systems continuously scans for target image. It only stops when user changes the
scene.

Figure 4.5: System Sequence Diagram 04

4.2.5. Compared List


The system compares the dish currently reading and compares it with the users set preference. If
there is no menu item scanned it sets values to “nothing to show”. When user selects the view
option, the system displays it on the set panels.

Figure 4.6: System Sequence Diagram 05

AR Menu 28
Chapter 4 System Design

4.2.6. Switch to 3D Mode


The system tracks the currently displayed model and saves its instance. When the user selects to
change scene, system passes that instance in the change scene function.

Figure 4.7: System Sequence Diagram 06

4.2.7. 3D Model List


The user is guided to the 3D model list scene. User can select any one of the models in the list
and the system will change the scene to that specific selection.

Figure 4.8: System Sequence Diagram 07

AR Menu 29
Chapter 4 System Design

4.2.8. Set Preference


User filled out the preference they want. If user adds an ingredient that is already exists then they
an error message will be displayed.

Figure 4.9: System Sequence Diagram 08

4.2.9. Remove Preference


User fills out the input field. If they remove an ingredient that is not in the list then an error will
be displayed.

Figure 4.10: System Sequence Diagram 09

AR Menu 30
Chapter 4 System Design

4.3. Class Diagram


This diagram shows the classes, its members and functions. This application uses 14 classes.

Figure 4.11: Class Diagram

AR Menu 31
Chapter 4 System Design

4.4. Domain Model

Figure 4.12: Domain Model

AR Menu 32
Chapter 4 System Design

4.5. Activity Diagram


Activity diagrams are graphical representations of work flows of activities and actions with
support for choice, iteration and concurrency. In the unified modeling language, activity
diagrams are intended to model both computational and organizational processes. Activity
diagrams show the overall flow of control. Activity diagram is a multipurpose process flow
diagram that is used to model behavior of the system.
The AR menu activity diagram is divided in to three parts. The main activity diagram, activity A
and activity B. Each activity has a detailed flow. That is why it is divided in to three components
to avoid mixture.

AR Menu 33
Chapter 4 System Design

4.5.1. Activity Diagram Main

Figure 4.13: Activity Diagram

AR Menu 34
Chapter 4 System Design

4.5.2. Activity Diagram A

Figure 4.14: Activity Diagram A

AR Menu 35
Chapter 4 System Design

4.5.3. Activity Diagram B

Figure 4.15: Activity Diagram B

AR Menu 36
Chapter 5
Implementation
Chapter 5 Implementation

5. Implementation
5.1. Software Development Model:

The software development model used for this project is Iterative Software Development
Model. The basic idea behind this method is to develop a system through repeated cycles
allowing software developers to take advantage of what was learned during development of
earlier parts or versions of the system. Learning comes from both the development and use of
the system, where possible key steps in the process start with a simple implementation of a
subset of the software requirements and iteratively enhance the evolving versions until the
full system is implemented. At each iteration, design modifications are made and new
functional capabilities are added.
The iteration involves the redesign and implementation of iteration is to be simple,
straightforward, and modular, supporting redesign at that stage or as a task added to the
project control list. The level of design detail is not dictated by the iterative approach. In a
light-weight iterative project the code may represent the major source of documentation of
the system; however, in a critical iterative project a formal Software Design Document may
be used. The analysis of an iteration is based upon user feedback, and the program analysis
facilities available. It involves analysis of the structure, modularity, usability, reliability,
efficiency, & achievement of goals. The project control list is modified in light of the
analysis results.

AR Menu 38
Chapter 5 Implementation

Iterative Development Model

5.2. Pseudo Codes:


Begin
 On “Continue” button click
 Take users entered information (username, password).
 Open file stream of external csv file “userdetails.csv”.
 Store csv file data in string variables.
 Compare csv data and user data.
 If data matched
 Store current user data
 Call ChangeScene () function to move to main menu.
 Else if data does not match
 Show error message of incorrect username and password.
End

AR Menu 39
Chapter 5 Implementation

5.2.1. Pseudo code for Login

5.2.2. Pseudo code for register

Begin
 On “Sign up” button click
 Take users entered information (username, password, confirm password).
 Open file stream of external csv file “userdetails.csv”.
 Store csv file data in string variables.
 Compare csv data and user data.
 If username is repeated
 Show error message of repeated username.
 Else if not repeated
 Update userdetails.csv file with new user data.
 Call ChangeScene () function to move to Login page.
End

AR Menu 40
Chapter 5 Implementation

5.2.3. Pseudo code for logout


Begin
 On “Logout” button click
 Open stream for “current.csv” data file.
Begin
 Format the file
On “Delete and set button
Account” values click
to “null”.
 ChangeScene(“Sign In”)
Open stream for “userdetails.csv” data file.
End  Filewritealltext(user details, new details)
 Close stream
 ChangeScene(“Sign In”)
End

5.2.4. Pseudo code for delete account

5.2.5. Pseudo code for scan

AR Menu 41
Chapter 5 Implementation

Begin
 Get user input field.
 Open stream current.csv
 Call check existing ingredient function
 If existing ingredient==0
 Add ingredient to the list
 Else existing ingredient==1
 Display “already existing” message.
End

5.2.6. Pseudo code for adding preference

Begin
Begin
 Open AR camera
 Track
Get user input
image field.
using image Tracker.
 Detect
Open stream current.csv
status (Detect, Change, Extended Tracking)
 IfCall check
target existing ingredient function
detected
 Overly
If existing ingredient==1
model.
 Set
Remove ingredient
next scene value.from the list
 Start
Else ingredient
existing ingredient==0
list making.
 Else
Display “ingredient
target does not exist” message.
not detected.
End Set flash panel to error message.
 Set ingredient list to null.
End

5.2.7. Pseudo code for removing preference

AR Menu 42
Chapter 5 Implementation

Begin
 Open file stream current user details.
 Separate favorite and least favorite in to respective list.
 Display in panels.
 If view favorite button clicked
 Display favorite panel
 Else view least favorite panel
 Display least favorite panel.
End

5.2.8. Pseudo code to view preference

Begin
 Get tracked image name.
 Get text from tracked image model.
 If image not tracked
 ChangeScene (null).
 Else image tracked
 ChangeScene (model text).
End

5.2.9. Pseudo code for switching to 3D model in AR mode

AR Menu 43
Chapter 5 Implementation

5.2.10. Pseudo code to rotate 3D model


Begin
 Get input touch.
 Multiply user swipe x axis with rotation speed.
 Multiply user swipe y axis with rotation speed.
 Transform rotation of model along x axis.
 Transform rotation of model along y axis.
End

5.2.11. Pseudo code for scene change

Begin
 Get next scene string.
 Load next scene to next scene string
End

AR Menu 44
Chapter 5 Implementation

5.2.12. Pseudo code to view preference in AR mode

Begin
 Get tracked image name.
 Open text asset ingredients.
 Open file stream current user details.
 Compare user preference with tracked image ingredients.
 Separate favorite and least favorite in to respective list.
 Display in panels.
 If image tracked
 Display list
 Else image not tracked
 Display nothing to show.
End

AR Menu 45
Chapter 5 Implementation

5.2.13. Pseudo code to view side panels

Begin
 If panel is active
 setActive(false)
 else
 setActive(true)
End

5.2.14. Pseudo code to flash panels

AR Menu 46
Chapter 5 Implementation

Begin
 Panel.SetActive(false)
 Detect button click
 Panel.setActive(true).
 Wait 3 seconds
 Panel.setActive(false)
End

5.2.15. Pseudo code to update user files

Begin
 Open file stream to user file.
 Set new data in string variable.
 Start file write all text.
 Write new string in to file write.
 End stream
End

AR Menu 47
Chapter 5 Implementation

5.2.16. Pseudo code to display name on menu panel

Begin
 Open Stream for current user file
 Read the line
 Split it using delimiter ‘,’
 Read user name
 Display username on panel
 Close stream
End

AR Menu 48
Chapter 6
Testing

AR Menu 49
Chapter 6 Testing

6. Testing:
Software testing is a process, to evaluate the functionality of a software application with an intent
to find whether the developed software met the specified requirements or not and to identify the
defects to ensure that the product is defect free in order to produce the quality product. Software
testing is a process that should be done during the development process. In other words software
testing is a verification and validation process, Verification is the process to make sure the
product satisfies the conditions imposed at the start of the development phase. In other words, to
make sure the product behaves the way we want it to. Validation is the process to make sure the
product satisfies the specified requirements at the end of the development phase. In other words,
to make sure the product is built as per customer requirements.

6.1. Types of testing:


6.1.1. Black Box Testing:
Black box testing is a testing technique that ignores the internal mechanism of the system and
focuses on the output generated against any input and execution of the system. It is the type of
testing in which the internal structure/design/implementation of the item being tested is not
known to the tester.  It is also called functional testing.

6.1.2. White Box Testing:


Testing based on an analysis of the internal structure of the component or system. It is a testing
method in which the internal structure/design/implementation of the item being tested is known
to the tester.

6.1.3. Unit Testing:


Unit testing is a level of software testing where individual units/ components of a software are
tested. The purpose is to validate that each unit of the software performs as designed. It is often
done by the programmer to test that the unit he/she has implemented is producing expected
output against given input.

AR Menu 50
Chapter 6 Testing

6.1.4. Integration Testing:


Integration testing is a level of software testing where individual units are combined and tested
as a group. The purpose of this level of testing is to expose faults in the interaction between
integrated units. If software and hardware components have any relation. It may fall under both
white box testing and black box testing.

6.2. Test Cases


6.2.1. Pass/Fail Criteria
The main motive of testing is to find faults in the system/component so that they can be dealt
with in the future. Thus, it is necessary to define the pass/fail criteria of the system to know
which areas of the system require a developer’s attention. Here, in each of the test case, we
define the Expected result as well as the Actual Result. Now after testing each test case with a
variety of boundary inputs, we are in a state to compare the expected result to the actual result
received. If the actual result agrees with the expected test result, we term the test as pass and if
the actual test result and the expected result vary, the test is termed as fail. Whenever a test fails,
we know which input/sequence of inputs caused the test to fail and therefore can deal with it so
that the same type of input does not cause errors in the system at a later stage.

AR Menu 51
Chapter 6 Testing

6.3. Ar. Menu Test Cases:

Test Case ID: TC-01

Associated Use Case Signup/Register

Functionality to be Whether the user is successfully registered or not


Tested:
Actor: User

Pre-Conditions: User is not registered yet.

Post Conditions: User is successfully registered

Input Data Expected Result Actual Result

Valid signup information Successfully registered Successfully registered


[maham,111,111]
Test Case Status: Fail

6.3.1. Test Case # 1

Table 6.1: Test Case 01

AR Menu 52
Chapter 6 Testing

6.3.2. Test Case # 2

Test Case ID: TC-02

Associated Use Case Signup/Register

Functionality to be Whether the user is successfully registered or not


Tested:
Actor: User

Pre-Conditions: User is not registered yet.

Post Conditions: User is successfully registered

Input Data Expected Result Actual Result

Invalid signup Not registered because Not registered because


information password does not match password does not match
[maham,111,123]
Test Case Status: Fail

Table 6.2: Test Case 02

AR Menu 53
Chapter 6 Testing

6.3.3. Test Case # 3

Test Case ID: TC-03

Associated Use Case Signup/Register


Functionality to be Whether the user is successfully registered or not
Tested:
Actor: User

Pre-Conditions: Table
User6.3: Testregistered
is not Case 03 yet.

Post Conditions: User is successfully registered

Input Data Expected Result Actual Result

Invalid signup Not registered because user Not registered because user
information is already registered is already registered
[maham,111,111]
Test Case Status: Fail

AR Menu 54
Chapter 6 Testing

6.3.4. Test Case # 4


Test Case ID: TC-04

Associated Use Case Signup/Register

Functionality to be Whether the user is successfully registered or not


Tested:
Actor: User

Pre-Conditions: User is not registered yet.

Post Conditions: User is successfully registered

Input Data Expected Result Actual Result

Missing signup Not registered because Not registered because


information [maham] password is missing password is missing
Test Case Status: Fail

Table 6.4: Test Case 04

AR Menu 55
Chapter 6 Testing

Test Case ID: TC-05

Associated Use Case Signup/Register


Functionality to be Whether the user is successfully registered or not
Tested:
Actor: User

Pre-Conditions: User is not registered yet.


Post Conditions: User is successfully registered

Input Data Expected Result Actual Result

Empty signup Not registered because Not registered because


information username and password is username and password is
missing missing
Test Case Status: Fail

6.3.5. Test Case # 5

Table 6.5: Test Case 05

AR Menu 56
Chapter 6 Testing

6.3.6. Test Case #6

Test Case ID: TC-06

Associated Use Case Login/Sign in

Functionality to be Whether the user is successfully login or not


Tested:
Actor: User

Pre-Conditions: User is already registered

Post Conditions: User is successfully login

Input Data Expected Result Actual Result

Valid login information Successfully login Successfully login


[maham,111]
Test Case Status: Fail

Table 6.6: Test Case 06

AR Menu 57
Chapter 6 Testing

6.3.7. Test Case # 7


Test Case ID: TC-07

Associated Use Case Login/Sign in


Functionality to be Whether the user is successfully login or not
Tested:
Actor: User

Pre-Conditions: User is already registered.

Post Conditions: User is successfully login

Input Data Expected Result Actual Result

Empty login Not login because


Not login because username
information username and password is
and password is missing
missing
Test Case Status: Fail

Table 6.7: Test Case 07

AR Menu 58
Chapter 6 Testing

6.3.8. Test Case # 8


Test Case ID: TC-08

Associated Use Case Login/Sign in


Functionality to be Whether the user is successfully login or not
Tested:
Actor: User

Pre-Conditions: User is already registered.

Post Conditions: User is successfully login

Input Data Expected Result Actual Result

Invalid login Not login because password


Not login because password
information is not correct
is not correct
[maham,1234]
Test Case Status: Fail

Table 6.8: Test Case 08

AR Menu 59
Chapter 6 Testing

6.3.9. Test Case # 9

Test Case ID: TC-09

Associated Use Case Login/Sign in


Functionality to be Whether the user is successfully login or not
Tested:
Actor: User

Pre-Conditions: User is already registered.


Post Conditions: User is successfully login

Input Data Expected Result Actual Result

Invalid login Not login because user is


Not login because user is
information not registered
not registered
[saleha,1234]
Test Case Status: Fail

Table 6.9: Test Case 09

AR Menu 60
Chapter 6 Testing

6.3.10. Test Case # 10


Test Case ID: TC-10

Associated Use Case Login/Sign in

Functionality to be Whether the user is successfully login or not


Tested:
Actor: User

Pre-Conditions: User is already registered.

Post Conditions: User is successfully login

Input Data Expected Result Actual Result

Missing login Not login because user is Not login because user is
information [,1234] missing missing
Test Case Status: Fail

Table 6.10: Test Case 10

AR Menu 61
Chapter 6 Testing

6.3.11. Test Case # 11

Test Case ID: TC-11

Associated Use Case Menu Card Detection

Functionality to be Whether Menu card is successfully detected or not


Tested:
Actor: System

Pre-Conditions: AR camera is active

Post Conditions: Menu card is successfully detected

Input Data Expected Result Actual Result

Scan Valid target Menu card detected Menu card detected


image successfully successfully
Test Case Status: Fail

Table 6.11: Test Case 11

AR Menu 62
Chapter 6 Testing

6.3.12. Test Case # 12

Test Case ID: TC-12

Associated Use Case Menu Card Detection


Functionality to be Whether Menu card is successfully detected or not
Tested:
Actor: System

Pre-Conditions: AR camera is active


Post Conditions: Menu card is successfully detected

Input Data Expected Result Actual Result

Scan Invalid target Menu card not detected Menu card not detected
image because target image is not
valid
Test Case Status: Fail

6.3.13. Test Case # 13

Table 6.12: Test Case 12

Table 6.13: Test Case 13

AR Menu 63
Chapter 6 Testing

6.3.14. Test Case # 14


Test Case ID: TC-13
TC-14

Associated
Associated Use
Use Case
Case Menu Card Detection

Functionality
Functionality to
to be
be Whether
Whether Menu
Menu card
card is
is successfully
successfully detected
detected or
or not
not
Tested:
Tested:
Actor:
Actor: System
System
Pre-Conditions: AR camera is active
Pre-Conditions: AR camera is active
Post Conditions: Menu card is successfully detected
Post Conditions: Menu card is successfully detected

Input Data Expected Result Actual Result


Input Data Expected Result Actual Result
Scan Invalid target Menu card not detected Menu card not detected
image
Scanned target within because target
Menu card image is not
is detected Menu card is detected
1.5 meter approx. valid
Test Case Status: Fail

6.3.15. Test Case # 15

Table
Table 6.14:6.15:
TestTest
CaseCase
14 15

AR Menu 64
Chapter 6 Testing

Test Case ID: TC-15

Associated Use Case Menu Card Detection


Functionality to be Whether Menu card is successfully detected or not
Tested:
Actor: System

Pre-Conditions: AR camera is active


Post Conditions: Menu card is successfully detected

Input Data Expected Result Actual Result

Scanned target from Menu card is not detected Menu card is not detected
more than 1.5 meter because target image is too far because target image is too
from the AR camera far from the AR camera

Test Case Status: Fail

6.3.16. Test Case # 16


Test Case ID: TC-16

Associated Use Case Menu Card Detection

Functionality to be Whether Menu card is successfully detected or not


Tested:
Actor: System

Pre-Conditions: AR camera is active

Post Conditions: Menu card is successfully detected

AR Menu 65
Chapter 6 Testing

Input Data Expected Result Actual Result

Target is off angle Menu card is not detected Menu card is not detected

Test Case Status: Fail

6.3.17. Test Case # 17

Table 6.16: Test Case 16


Test Case ID: TC-17

Associated Use Case Switch to 3d Mode

Functionality to be Whether Scene is switched to 3d mode or not


Tested:
Actor: User

Pre-Conditions: AR camera is active

Post Conditions: Scene is successfully switched to 3d mode

AR Menu 66
Chapter 6 Testing

Input Data Expected Result Actual Result

Menu card is not Scene is not switched to 3d Scene is not switched to 3d


detected mode because menu card is mode because menu card is
not detected not detected
Test Case Status: Fail

6.3.18. Test Case # 18


Test Case ID: TC-18
Table 6.17: Test Case 17
Associated Use Case Switch to 3d Mode

Functionality to be Whether Scene is switched to 3d mode or not


Tested:
Actor: User

Pre-Conditions: AR camera is active

Post Conditions: Scene is successfully switched to 3d mode

AR Menu 67
Chapter 6 Testing

Input Data Expected Result Actual Result

Menu card detected Scene is switched to 3d Scene is switched to 3d


mode mode
Test Case Status: Fail

Table 6.18: Test Case 18

AR Menu 68
Chapter 6 Testing

6.3.19. Test Case # 19


Test Case ID: TC-19

Associated Use Case Overlay 3d Model

Functionality to be Whether System overlays 3d model into real world or not


Tested:
Actor: System

Pre-Conditions: AR camera is active

Post Conditions: System successfully overlays 3d models into real world

Input Data Expected Result Actual Result

Invalid target [any other System does not overlay 3d System does not overlay 3d
card/paper] model model
Test Case Status: Fail

Table 6.19: Test Case 19

AR Menu 69
Chapter 6 Testing

6.3.20. Test Case # 20

Test Case ID: TC-20

Associated Use Case Overlay 3d Model

Functionality to be Whether System overlays 3d model into real world or not


Tested:
Actor: System

Pre-Conditions: AR camera is active

Post Conditions: System successfully overlays 3d models into real world

Input Data Expected Result Actual Result

Valid target [ Menu System overlays 3d model System overlays 3d model


Card] into real world into real world
Test Case Status: Fail

Table 6.20: Test Case 20

AR Menu 70
Chapter 6 Testing

6.3.21. Test Case # 21

Test Case ID: TC-21


Associated Use Case View Compared List
Functionality to be Whether System displays list of ingredients by
Tested: comparing with hello user’s stored preferences
and the scanned model ingredients
Actor: User
Pre-Conditions: AR camera is active
Post Conditions: System successfully displays compared list

Input Data Expected Result Actual Result


Menu card not System displayed list with System displayed list with
detected message “ nothing to message “ nothing to
show” show”
Test Case Status: Fail

6.3.22. Test Case # 22


Test Case ID: Table
TC-226.21: Test Case 21

Associated Use Case View Compared List


Functionality to be Whether System displays list of ingredients by comparing
Tested: with user’s stored preferences and the scanned model
ingredients
Actor: User

Pre-Conditions: AR camera is active

Post Conditions: System successfully displays compared list

AR Menu 71
Chapter 6 Testing

Input Data Expected Result Actual Result

Menu card detected no System displayed list with System displayed list with
preferences are set message “ No preferences are message “ No preferences
set” are set”
Test Case Status: Fail

6.3.23. Test Case # 23


Test Case ID: TC-23

Associated Use Case View Compared List

Functionality to be Whether System displays list of ingredients by comparing


Tested: hello with user’s stored preferences and the scanned model
hellos ingredients
Actor: User
Table 6.22: Test Case 22
Pre-Conditions: AR camera is active

Post Conditions: System successfully displays compared list

Input Data Expected Result Actual Result

Menu card detected, System displayed list with System displayed list with
preferences are set stored preference relative to stored preference relative to

AR Menu 72
Chapter 6 Testing

[Cheese, garlic] scanned menu item scanned menu item


Test Case Status: Fail

6.3.24. Test Case # 24


Test Case ID: TC-24

Associated Use Case View Compared List

Functionality to be Whether System displays list of ingredients by comparing


Tested: hello with user’s stored preferences and the scanned model
hellos ingredients
Actor: User
Table 6.23: Test Case 23
Pre-Conditions: AR camera is active

Post Conditions: System successfully displays compared list

Input Data Expected Result Actual Result

Lost target [ replace AR System displayed list with System displayed list with
Camera] message “ nothing to show” message “ nothing to show”
Test Case Status: Fail

AR Menu 73
Chapter 6 Testing

6.3.25. Test Case # 25


Test Case ID: TC-25

Associated Use Case Delete Account

Functionality to be Whether System deletes all user information by deleting


Tested: hello account or not.
Actor: User

Pre-Conditions: User is already logged in

Post Conditions: System successfully deleted account and other user


worldy
Table information.
6.24: Test Case 24

Input Data Expected Result Actual Result

Delete Account [ yes ] System successfully deleted System successfully


account and other user deleted account and other
information user information
Test Case Status: Fail

AR Menu 74
Chapter 6 Testing

6.3.26. Test Case # 26


Test Case ID: TC-26

Associated Use Case Set Preference

Functionality to be
Whether System adds user preferences or not
Tested:
Actor: User

Pre-Conditions: User is already logged in

Post Conditions: System successfully saved user preferences.


Table 6.25:
Table 6.26: Test
Test Case
Case 25
26

Input Data Expected Result Actual Result

Already added System does not add System does not add
ingredient [cheese] preference because ingredient preference because
is already added ingredient is already added
Test Case Status: Fail

AR Menu 75
Chapter 6 Testing

6.3.27. Test Case # 27


Test Case ID: TC-27

Associated Use Case Set Preference

Functionality to be
Whether System adds user preferences or not
Tested:
Actor: User

Pre-Conditions: User is already logged in

Post Conditions: System successfully saved user preferences.

Input Data Expected Result Actual Result


Table 6.27: Test Case 27
Same ingredient added System does not add the System added the
in favorites and least later preference because it is preference
favorites [ egg, egg] already added in other
preference

Test Case Status: Pass

AR Menu 76
Chapter 6 Testing

6.3.28. Test Case # 28

Test Case ID: TC-28


Table 6.28: Test Case 28
Associated Use Case Set Preference

Functionality to be
Whether System adds user preferences or not
Tested:
Actor: User

Pre-Conditions: User is already logged in

Post Conditions: System successfully saved user preferences.

AR Menu 77
Chapter 6 Testing

Input Data Expected Result Actual Result

Valid ingredient [ milk ] System added the preference System added the
preference

Test Case Status: Fail

6.3.29. Test Case # 29

Table 6.29: Test Case 29

AR Menu 78
Chapter 6 Testing

6.3.30. Test Case # 30

Test Case ID: TC-30


TC-29
TC-31
Associated Use
Associated Use Case
Case Set Preference
Delete
Set Preference
Preference
Functionality to be
Functionality to be Whether System adds user preferences or not
Tested: Whether System adds user preferences or not
Tested:
Actor: User
Actor: User
Pre-Conditions: User is already logged in
Pre-Conditions:
Post Conditions: User is already
System logged
successfully in user preferences.
saved
Post Conditions: System successfully saved
deleteduser
userpreferences.
preferences.
Input Data Expected Result Actual Result
Input
InvalidInput Data
ingredient
Data Expected
System Result
does not
Expected add the
Result Actual
System addedResult
Actual the
Result
[hello] preference because “hello” preference
Empty ingredient
Empty ingredient []
[] System does
System does not
not add
deleted
the the System
System does
does not
not deleted
add the
is not an ingredient
preference because
preference because field
field is
is the preference
preference because
because field is
empty
empty field
emptyis empty
Test Case Status: Pass

Test Case
Test Case Status:
Status: Fail
Fail

6.3.31. Test Case # 31

Table 6.31:
Table 6.30: Test
Test Case
Case 31
30

AR Menu 79
Chapter 6 Testing

6.3.32. Test Case # 32

Test Case ID: TC-32


Associated Use Case Delete Preference
Functionality to be
Whether System adds user preferences or not
Tested:
Actor: User
Pre-Conditions: User is already logged in
Post Conditions: System successfully deleted user preferences.

Input Data Expected Result Actual Result

Invalid/new ingredient System does not deleted the System does not deleted
[ peanuts] preference because the the preference because the
preference is not stored is “ preference is not stored is “
added preferences” added preferences”
Test Case Status: Fail

Table 6.32: Test Case 32

AR Menu 80
Chapter 6 Testing

6.3.33. Test Case # 33


Test Case ID: TC-33

Associated Use Case Delete Preference

Functionality to be
Whether System adds user preferences or not
Tested:
Actor: User

Pre-Conditions: User is already logged in

Post Conditions: System successfully deleted user preferences.

Input Data Expected Result Actual Result

Valid ingredient System successfully deleted System successfully


[ Cheese] the preference deleted the preference
Test Case Status: Fail

6.3.34. Test Case # 346.33: Test Case 33


Table
Test Case ID: TC-34

Associated Use Case View Preference

Functionality to be
Whether System adds user preferences or not
Tested:
Actor: User

Pre-Conditions: User is already logged in

Post Conditions: System successfully displayed user preferences.

AR Menu 81
Chapter 6 Testing

Input Data Expected Result Actual Result

No preference set System generated message “ System generated message


No preference set” “ No preference set”
Test Case Status: Fail

Table 6.34: Test Case 34

AR Menu 82
Chapter 7
Conclusion
Chapter 7 Conclusion

7. Conclusion

Augmented reality application is the integration of application visual and audio content
with the user's environment in real time. Unlike virtual reality gaming, which often requires
a separate room or confined area to create an immersive environment, augmented reality
technology uses the existing environment and creates a playing field within it. AR
applications are typically deployed on devices like smartphones, tablets and portable
gaming systems.
An augmented reality application often superimposes a procreated environment on top of a
user’s actual environment. More advanced AR application may actually build an
environment from user surroundings. 
Thus AR applications are modernizing day by day. And this android AR application will
provide a new theme to applications which will further increase the scope of Augmented
Reality.

7.1. Further Improvements

As a matter of fact chances of further enhancements are always there in every software
project. The scope for the future work may involve some more modules in the application.
The application can include improvements from small things such as icons for ingredients,
spell check for preferences, email login instead of username etc.
 The application can have an online database as well to make it more global.
 Application can also be expanded by adding more models and menu items.
 Existing models can be improved by adding simulations and animations.
 The platform can be expanded from android to web-application.
 We can expand its scope by generalizing it like food panda. User can select different
restaurants from the restaurant list. Each restaurant will have its own menu and menu
item models. User can select those menu items. It has to be kept in mind that each
restaurant have their own menu and foods general look. So each restaurant’s menu

AR Menu 84
Chapter 7 Conclusion

should be individually assigned. And allowed to be detected using their menu


brochures.
 We can add sharing functionality. Since not all phones support augmented reality or
3D modeling, user can share images of the selected menu item.
 User can save their models that they find as favorite.
 There can also be an option of digital menu. User can open up a digital menu and
scan to look at dishes at home. Then they can choose which restaurant to go to from
the list.
 There can also be directions added to the restaurants in the list.
 User can also add comments on how effective they found the application and how
they would like to improve it.
 Users can rate restaurants within the application. High ranked restaurants can be
“suggested” to the user via algorithm which measure their preferences, favorites and
frequents.
 Location base searches can also be added.

AR Menu 85
Appendix A
User Manual
Appendix A User Manual

8.1. User Guide for AR MENU

1) How it works?
The application requires a must sign in by the user. New users can register themselves simple by
clicking on sign up option “Sign Up”. It does not require an email just a username. User has to
set a unique username so the application can save their individual preferences.
Once signed in user can select the main options from the menu displayed right after logging in
e.g. scan menu, see 3d models, set preferences.
The other options can be accessed from the side menu such as contact info, log out etc.
Instructions for Login/Register:
Old users have to type in their username and password as they had written during the registration
phase. Username and password should be exactly the same e.g. capitalized alphabets, special
characters or number sequence etc.
New users have to register first. They have to pick a unique name that is not already taken. If the
username chosen already exist the application will generate an error message (see Messages
Screen shots for reference).

Instructions for menu item scan


Scan menu item option in the main menu takes the user to the AR mode. The user camera will be
opened. Hold the camera above the menu item user wants to scan. Make sure the menu item is
fully seen in the camera. This will fetch the model.
To see the preferences click on the button top right corner. It will open up the panels and the
preferences would be displayed accordingly.
To see the 3D model of the current scanned menu item, click on the “Switch to 3D mode” button
on bottom left corner.
From that 3D model the user can switch to labeled ingredients tab from top right corner. The
labeled view shows the user the major ingredients of the selected dish.
Preference setting:
User can set preference of their “Favorite” and “Least Favorite” ingredients. Write the preference

AR Menu 87
Appendix A User Manual

in the relative list and select one of the two options: ADD and REMOVE. User can view their
created list as well. User cannot repeat an ingredient in one list nor can they remove an
ingredient that did not exist in the list.

2) Interface:
Login page:

Messages on events:

 User enters correct username and password:

AR Menu 88
Appendix A User Manual

 If user enters incorrect username or password:

Registration Page:

AR Menu 89
Appendix A User Manual

Scan Page:

AR Menu 90
Appendix A User Manual

Switch to 3d View:

AR Menu 91
Appendix A User Manual

Setting Preferences:

AR Menu 92
Appendix A User Manual

3d Models List:

AR Menu 93
Appendix A User Manual

Settings:

AR Menu 94
Appendix A User Manual

Delete Account:

AR Menu 95
Appendix A User Manual

Menu Card (Target Image)

This is one of the menu item (Target image). User need to hold the camera directly above the
menu item text. The system will tract that text and display the relative model.

AR Menu 96
Appendix B References

Appendix B
References

AR Menu 97
Appendix B References

9. References

https://unity.com/

https://www.mixamo.com/

https://www.ptc.com/en/products/augmented-reality

https://online.visual-paradigm.com/

https://www.lucidchart.com/pages/landing/visual- paradigm?
utm_source=google&utm_medium=cpc&utm_campaign=visual_paradigm_dominicanrepublic
&km_CPC_CampaignId=362196737&km_CPC_AdGroupID=30136179737&km_CPC_Keyword=vis
ual%20
paradigm&km_CPC_MatchType=e&km_CPC_ExtensionID=&km_CPC_Network=g&km_CPC_AdP
osition= 1t1&km_CPC_Creative=99509635337&km_CPC_TargetID=kwd-
497757104&km_CPC_Country=9060974&km_CPC_Device=c&gclid=EAIaIQobChMIlLSUkMur3AI
VlcqyCh 1-Qg7VEAAYASAAEgKmbPD_BwE

https://creately.com/diagram-type/sequence-diagram

AR Menu 98

You might also like