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

COMSATS University Islamabad (CUI)

DESIGNED

By

MUHAMMAD SOBAN ASIM ( FA19-BSE-039 )

Teacher:
MA’AM SAIRA BAIG
i
DECLARATION
We hereby declare that this software, neither whole nor as a part has been copied out from any
source. It is further declared that we have developed this software and accompanied report
entirely on the basis of our personal efforts. If any part of this project is proved to be copied out
from any source or found to be reproduction of some other. We will stand by the consequences.
No Portion of the work presented has been submitted of any application for any other degree or
qualification of this or any other university or institute of learning.

Syed Haider Ali Kazmi Wasif Israr Ali Abdullah Ahmed


CERTIFICATE OF APPROVAL
It is to certify that the final year project of BS (SE) titled “DesignAR” was developed by
HAIDER ALI KAZMI (CIIT/FA16-BSE-030/ISB) and ALI AHMED (CIIT/FA16-BSE-
050/ISB) and WASIF ISRAR (CIIT/FA16-BSE-032/ISB) under the supervision of “Mr.
Qasim Malik” and that in his/her opinion; it is fully adequate, in scope and quality for the degree
of Bachelors of Science in Computer Science.

Supervisor

Co-Supervisor

External Examiner

Head of Department
(Department of Computer Science)
Executive Summary
An everyday person does not have access to professional tools that can assist them in simple
interior renovation. All forms of professional help are costly and mostly inaccessible by a normal
person. The mobile industry has touched millions of lives and everyone today has access to
mobile devices and several smartphone applications exist that allow user to view the products on
screen but in this case a picture does not speak a thousand words and there is an ambiguity when
buying products online. The user has no idea how the product will look onsite. Furthermore, no
such platform exists where users can interact with one another and share ideas regarding home
furnishing, interior designing or even get a second opinion on something as simple as buying a
new chair. Thus, there is a need for a simple and easily learnable system that assists users in
small everyday interior design decisions.

To prevent all these problems from prevailing, DesignAR has been developed. The application
uses the power of augmented reality to assist the user in making simple interior design decisions.
The application will utilize mobile devices and allow the user to view elements which include
but are not limited to chairs, tables, sofas, beds, and floor tiles in the real-world using the
device’s camera. We will eliminate the ambiguity of how the item will look onsite when buying
the item either online or in-person. This will in return save the user’s resources i.e. money and
time.

DesignAR is an android based application that uses Augmented Reality by accessing the phone’s
camera to place models in the environment. It allows sharing the design on the application’s
stand- alone social network. It also allows the users to upload their 3d models to be used in the
application.

iv
Acknowledgement
All praise is to Almighty Allah who bestowed upon us a minute portion of His boundless
knowledge by virtue of which we were able to accomplish this challenging task.

We are greatly indebted to our project supervisor “Mr. Qasim Malik”. Without his personal
supervision, advice and valuable guidance, completion of this project would have been doubtful.
We are deeply indebted to him for his encouragement and continual help during this work.

And we are also thankful to our parents and family who have been a constant source of
encouragement for us and brought us the values of honesty & hard work.

Syed Haider Ali Kazmi Wasif Israr Ali Abdullah Ahmed


Abbreviations
IDE Integrated Development Requirement

AR Augmented Reality
Table of Contents

1 Introduction...........................................................................................................................1
1.1 Brief Overview...........................................................................................................................1
1.2 Relevance to Course Modules....................................................................................................2
1.3 Project Background....................................................................................................................2
1.4 Literature Review.......................................................................................................................3
1.5 Analysis from Literature Review...............................................................................................4
1.6 Methodology and Software Lifecycle for this Project................................................................4
1.6.1 Rationale behind the Selected Methodology..........................................................................4
2 Problem Definition................................................................................................................5
2.1 Problem Statement.....................................................................................................................5
2.2 Deliverables and Development Requirements............................................................................5
2.3 Current System...........................................................................................................................6
3 Requirement Analysis...........................................................................................................7
3.1 Event Table................................................................................................................................7
3.2 Detailed Use Case......................................................................................................................9
3.2.1 Module 1: Account Management...........................................................................................9
3.2.2 Module 2: Decor..................................................................................................................15
3.2.3 Module 3: Room Designer...................................................................................................20
3.2.4 Module 4: Community.........................................................................................................23
3.2.5 Module 5: Showcase............................................................................................................27
3.3 Functional Requirements..........................................................................................................28
3.4 Non-Functional Requirements..................................................................................................36
3.4.1 Usability...............................................................................................................................36
3.4.2 Performance.........................................................................................................................36
3.4.3 Supportability..................................................................................................................xxxvi
3.4.4 Availability..........................................................................................................................36
4 Design and Architecture.....................................................................................................37
4.1 System Architecture.................................................................................................................37
4.2 Data Representation.................................................................................................................38
4.3 Design Models.........................................................................................................................39
4.3.1 Structural Diagrams.............................................................................................................39
4.3.2 Behavioral Diagrams............................................................................................................40
5 Implementation....................................................................................................................50
5.1 Algorithm.................................................................................................................................50
5.1.1 Model Placement.................................................................................................................50
5.1.2 Post Sharing.........................................................................................................................51
5.1.3 Room Designing..................................................................................................................51
5.2 External APIs...........................................................................................................................52
5.3 User Interface...........................................................................................................................52
6 Testing and Evaluation.......................................................................................................56
6.1 Manual Testing.........................................................................................................................56
6.1.1 Unit Testing.........................................................................................................................56
6.1.2 Functional Testing...............................................................................................................62
6.1.3 Integration Testing...............................................................................................................64
6.1.4 System Testing.....................................................................................................................65
7 Conclusion and Future Work.............................................................................................66
7.1 Conclusion...............................................................................................................................66
7.2 Future Work.............................................................................................................................66
8 References............................................................................................................................67
List of Figures
Figure 4.1: System Architecture Diagram.....................................................................................37
Figure.4.2: Class Diagram.............................................................................................................39
\Figure 5.1: Main Screen...............................................................................................................52
Figure 5.2: User Activity...............................................................................................................53
Figure 5.3: Newsfeed.....................................................................................................................53
Figure 5.4: Post Sharing Screen....................................................................................................54
Figure 5.5: Room Designer Environment.....................................................................................54
Figure 5.6: Model Catalog.............................................................................................................55
Figure 5.7: Model Placement inside Template..............................................................................55
1 Introduction

1.1 Brief Overview


This system provides facility of making room design decisions easier by using the Augmented
Reality technology. The application will utilize mobile devices and allow the user to view
elements which include but are not limited to chairs, tables, sofas, beds, and floor tiles in the
real-world using the device’s camera. We will eliminate the ambiguity of how the item will look
onsite when buying the item either online or in-person. This will in return save the users
resources i.e. money and time.

The project involves building an application that will allow the user to furnish rooms using
Augmented Reality. Users should make a computerized ID to utilize the application. The
application will enable them to make advanced ID which will be secure. User can then access the
phones camera and place different elements in the scene. The user will have to browse through a
catalogue of items before selecting any item. Upon selecting the users shall drag the item in the
scene and manipulate it as desired. The user will be given the option to share an image view of
the designed scene with other users of the application. Other users can critique the design by
commenting on the shared image. The application will also enable commercial users to showoff
product by submitting their creations to the platform.

We used Object Oriented Methodology to develop this application. We coded in Java and C# on
Android Studio and in Unity on Visual Studio IDE respectively. We have studied various similar
applications and tried to bring improvements in our application. We have tested the system
manually.

We believe that by using our application users will be able to take the design decisions with ease.
We hope to work more on the application in future and add more features and make our
application competitive to related applications.

1
1.2 Relevance to Course Modules
 CSC241: Object Oriented Programming
This course helped us in choosing the Object-Oriented design methodology and helped in
implementing the concepts of OOP.

 CSC112: Algorithms and Data Structures


This course helped in using different data structures like lists, queues.

 CSC444: Visual Programming


This course helped us in getting familiar with the Visual Studio IDE and provided the
understanding of basic concepts of C# language.

 CSE355: Software Testing


This course assisted in manual testing of our system.

1.3 Project Background


Our project uses the concept of Augmented Reality (AR). AR is a technology that gives us a
view of the physical real-world environment with super-imposed computer-generated images
which changes the perception of reality. It augments physical environments on a mobile device
screen by overlaying them with digital content.

An AR solution captures part of an environment using a smartphone camera. Then it scans for
horizontal and vertical surfaces and put on feature points on detected surface. Then it estimates
for average color temperature and brightness in physical space. It detects the 3d objects to be
placed and places it on the feature points after detection.
1.4 Literature Review
Table 1.1: Literature Review

Application Name Features


Ikea Place -Contains a categorized catalog
where users can browse through 3d
models.
-Provides feature of searching
models by the type of model.
-Scans the surface and calculates the
model dimension to place the model
and manipulate it.
-Connects app with user’s social
network account to share
screenshots.
Room Planner -The application has design themes
for decorating living room,
bedroom, kitchen, and bathroom.
-Has a catalog of products as 3d
models.
-3d models can be placed inside a
selected theme.

Planner 5d -Contains customized floor plans as


well as empty rooms.
-Drag and drop design in both 2d and
3d models.
-Allows browsing the regularly
updated categorized catalog.
-Change the perspective of 2d design
to view it in 3d.
-Save and share projects on social
media platforms.
1.5 Analysis from Literature Review
Table 1.2: Analysis from Literature Review

Application Name Weakness Proposed Project Solution


Ikea Place -Catalogue limited to their -Catalogue not limited to a
own brands’ products. specific brand.
-Only available in certain
regions where ikea is
available. Thus, only has
limited access.

Room Planner -Requires a paid subscription -The application will use


to access even most basic Augmented Reality allowing
features. Only limited the user to view Models in their
features are available for own real environment.
free. -The application is free.
-Does not use augmented
reality rather the user can
only view 3d structures
inside a virtual environment.
Planner 5d -Does not implement - The application will use
augmented reality rather just Augmented Reality allowing
a virtual environment. the user to view Models in their
own real environment.

1.6 Methodology and Software Lifecycle for this Project

 Software Process Model:


Incremental Model
 Design Methodology:
Object Oriented Methodology

1.6.1 Rationale behind the Selected Methodology


We will be using incremental model due to:
 Our project development timeline is divided into phases.
 We can prioritize development of specific requirements.
 Partial systems can be easily built and delivered.

We will be using object-oriented methodology as it provides clear modular structure. The


objects can be used within and across application which enables faster development.

2 Problem Definition

2.1 Problem Statement


An everyday person does not have access to professional tools that can assist them in simple
interior renovation. All forms of professional help are costly and mostly inaccessible by a normal
person. The mobile industry has touched millions of lives and everyone today has access to
mobile devices and several smartphone applications exist that allow user to view the products on
screen but in this case a picture does not speak a thousand words and there is an ambiguity when
buying products online. The user has no idea how the product will look onsite. Furthermore, no
such platform exists where users can interact with one another and share ideas regarding home
furnishing, interior designing or even get a second opinion on something as simple as buying a
new chair. Thus, there is a need for a simple and easily learnable system that assists users in
small everyday interior design decisions.

2.2 Deliverables and Development Requirements


Following are the deliverables of our project:
 Scope
 Software Requirement Specification (SRS)
 Software Design Specification (SDS)
 Software Test Case Specification (STS)
 Final Report
 Source Code
 Demo Video
2.3 Current System
Table 2.1: Current System

Application Name Weakness Proposed Project Solution


Ikea Place -Catalogue limited to their -Catalogue not limited to a
own brands’ products. specific brand.
-Only available in certain
regions where ikea is
available. Thus, only has
limited access.

Room Planner -Requires a paid -The application will use


subscription to access even Augmented Reality allowing
most basic features. Only the user to view Models in
limited features are their own real environment.
available for free.
-Does not use augmented
reality rather the user can
only view 3d structures
inside a virtual environment.

Planner 5d -Does not implement - The application will use


augmented reality rather just Augmented Reality allowing
a virtual environment. the user to view Models in their
own real environment.
3 Requirement Analysis

3.1 Event Table

Table 3.1: Event Table

Event Trigger Source Action


User signs up User taps the Signup End User Signup
button
System verifies System receives user System Verify Credentials
credentials data
User signs in User taps the Sign In End User Sign in
button
System verifies email System receives user System Verify Credentials
and password data
User views profile User taps the View End User View Profile
Profile button
User Edits profile User taps the edit End User Display Profile
profile button
System verifies System receives user System Verify Credentials
updated credentials data
User views activity User taps view End User View User History
history history button
User signs out User taps the Sign End user Sign out
Out button
User browses the User taps the Browse End User Browse Models
model catalog icon
User places the object User drags object in End User Place Objects
in the scene the environment
System detects the System receives System Detect Surface
surface camera input
User saves the scene User taps the Photo End User Save Scene
icon
User browses textures User taps the Texture End User Browse Textures
icon
User places texture in User taps the texture End User Place Texture
the scene
User shares the scene User taps the Create End User Share Scene
Post button
System displays System receives System Display Image
Image in Newsfeed image
User writes content User enters text or End User Write Content
image
User shares the User taps the Share End User Share Content
content button
User comments on a User writes text in End User Comment on Post
Post comment
User likes/dislikes User taps the End User Like/ Dislike Post
Post up/down icon
User searches post in User enters text to End User Search Post
newsfeed search
System displays System receives System Display Post
searched Post results keyword
User searches a user User enters text to End User Search Users
by username search
System displays System receives System Display User
accounts username
User registers User writes text End User Complaint
complaint on a Post
User uploads Model User enters Image End User Upload Model
User Rates Model User taps on stars End User Rate Models
icon
3.2 Detailed Use Case

3.2.1 Module 1: Account Management

Table 3.2: Module 1 Use Cases

M1-UC1 Sign up
M1-UC2 Login
M1-UC3 View Profile
M1-UC4 Edit Profile
M1-UC5 Edit Image
M1-UC8 View User History
M1-UC9 Sign out

3.2.1.1 M1-UC1:
Signup
Table 3.3: Signup Use Case

Use Case ID: M1-UC1


Use Case Signup
Name:
Actors: New User
Description: The user enters the email, password, and username. The system verifies the email
and user signs up to the application.
Trigger: The user taps the “Create account” button.
Preconditio PRE-1. Internet connection is available and working properly.
ns:

Postconditio POST-1. The user account created successfully.


ns:
Normal 1. User opens “DesignAR” application.
Flow: 2. User taps the “Create account” button.
3. User enters email, password and username.
4. User taps the “Sign up” button.
Alternative N/A
Flows:
Exceptions: 3.E1 The user enters wrong email address.
1. The system displays a message “Incorrect Email.”
2. The system prompts the user to enter the email address again.
3. The use case resumes at normal flow step 4.
3.E2 The user enters a username which already
exists.
1. The system displays a message “Enter a unique username.”
2. The system prompts the user to enter the username again.
3. The use case resumes at normal flow step 4.
3.E3 The user enters the password having less than 8 characters.
1. The system displays a message “Password too short.”
2. The system prompts the user to enter password again.
3. The use case resumes at normal flow step
4. 3.E4 The password contains a special character.
1. The system displays a message “Special characters not allowed.”
Business N/A
Rules
Assumption 1. The user has basic knowledge of using smartphone.
s: 2. User understands English language.
3. User has an email account.

3.2.1.2 M1-UC2:
Login
Table 3.4: Login Use Case

Use Case ID: M1-UC2


Use Case Login
Name:
Actors: End User
Description: The user enters the username and password. The system verifies the username and
password and user accesses the home screen.
Trigger: The user taps the “Login” button.
Preconditio PRE-1. Internet connection is available and working properly
ns:
PRE-2. User already has an account.
Postconditio POST-1. The user signs in to his account.
ns:
POST-2. The user is directed to the home page of the application.
Normal 1. User taps the “Login” button.
Flow: 2. User enters username and password.
3. User taps the “Login” button.
Alternative N/A
Flows:
Exceptions: 2.E1 The user enters incorrect username.
1. The system displays a message “Incorrect username”.
2. The system prompts the user to enter the username and password again.
3. The use case resumes at normal flow step
3. 2.E2 The user enters wrong password.
1. The system displays a message “Password Incorrect”.
2. The system prompts the user to enter password again.
3. The use case resumes at normal flow step 3.
Business N/A
Rules
Assumption 1. The user already has an account in the application.
s:

3.2.1.3 M1-UC3: View Profile


Table 3.5: View Profile Use Case

Use Case ID: M1-UC3


Use Case View Profile
Name:
Actors: End User
Description: The user views his name, photo, posts and saved models.
Trigger: The user taps the “View Profile” button.
Preconditio PRE-1. The user is signed into the application.
ns:
Postconditio POST-1. The user views his information.
ns:
Normal 1. User taps the “View Profile” button.
Flow: 2. User views his name, photo and models.
Alternative N/A
Flows:
Exceptions: N/A
Business N/A
Rules
Assumption N/A
s:

3.2.1.4 M1-UC4: Edit Profile


Table 3.6: Edit Profile Use Case

Use Case ID: M1-UC4


Use Case Edit Profile
Name:
Actors: End User
Description: The user edits the credential and saves them.
Trigger: The user taps the “Edit Profile” button.
Preconditio PRE-1. The user is signed into the application.
ns:
Postconditio POST-1. The user’s information is edited and saved.
ns:
Normal 1. User taps the “Edit Profile” button.
Flow: 2. User edits his credentials.
3. User taps the “Save” button.
Alternative N/A
Flows:
Exceptions: 2.E1 The user enters a username which already exists.
1. The system displays a message “Username already taken.”
2. The system prompts user to enter a unique username.
3. The use case resumes from normal flow step 3.
Business N/A
Rules
Assumption N/A
s:
3.2.1.5 M1-UC5: Edit Image
Table 3.7: Edit Image Use Case

Use Case ID: M1-UC5


Use Case Edit Image
Name:
Actors: End User
Description: The user edits the image by uploading a photo from the phone’s gallery which is
not larger than 2 Mega Bytes. The system sets the image as profile photo.
Trigger: The user taps the “Edit Image” button.
Preconditio N/A
ns:

Postconditio POST-1. The user’s image is set as profile picture.


ns:
Normal 1. User taps the “Edit Image” button.
Flow: 2. User selects an image from the gallery.
3. User taps the upload button.
Alternative N/A
Flows:
Exceptions: 2.E1 User selects an image that is larger than 2 Mega Bytes.
1. The system prompts the user to select image of appropriate size by
displaying a message “Image size is too large.”
2. The use case resumes at normal flow 3.
3. If user has no image of appropriate size, the system aborts the use case.
Business N/A
Rules
Assumption N/A
s:

3.2.1.6 M1-UC6: View User History


Table 3.7: View User History Use Case

Use Case ID: M1-UC6


Use Case View User History
Name:
Actors: End User
Description: The user views the posts he upvoted, downvoted and commented on.
Trigger: The user taps the “View History” button.
Preconditio N/A
ns:
Postconditio N/A
ns:
Normal 1. User taps the “View History button”.
Flow: 2. User views posts he voted for and posts he commented on separately.
Alternative N/A
Flows:
Exceptions: N/A
Business N/A
Rules
Assumption N/A
s:

3.2.1.7 M1-UC7:
Logout
Table 3.8: Logout Use Case

Use Case ID: M1-UC7


Use Case Logout
Name:
Actors: End User
Description: The user logouts from the application. The system directs the user to sign in
screen.
Trigger: The user taps the “Log out” button.
Preconditio N/A
ns:
Postconditio POST-1 The user is logged out of the application and is directed to sign in screen.
ns:
Normal 1. The user taps the logout button.
Flow: 2. The user is directed to sign in screen.
Alternative N/A
Flows:
Exceptions: N/A
Business N/A
Rules
Assumption N/A
s:

3.2.2 Module 2: Decor


Table 3.9: Module 2 Use Cases

M2-UC1 Browse Models


M2-UC2 Place Objects
M2-UC3 Save Scene
M2-UC4 Browse Textures
M2-UC5 Place Textures
M2-UC6 Share Scene

3.2.2.1 M2-UC1: Browse Model


Table 3.10: Browse Model Use Case

Use Case ID: M2-UC1


Use Case Browse Models
Name:
Actors: End User
Description: The user browses through a catalogue of models.
Trigger: The user taps the “Browse” button.
Preconditio N/A
ns:
Postconditio POST-1. The list of models is displayed.
ns:
POST-2. The user can now select a model.
Normal 1. The user taps the browse button.
Flow: 2. The list of models is displayed.
3. The user views and selects a model.
Alternative N/A
Flows:
Exceptions: N/A
Business N/A
Rules
Assumption 1. The user’s phone supports Augmented reality.
s:

3.2.2.2 M2-UC2: Place Objects


Table 3.11: Place Objects Use Case

Use Case ID: M2-UC2


Use Case Place Objects
Name:
Actors: End User
Description: The user manipulates the model selected from the catalogue and assigns it a
location in the scene.
Trigger: The user taps the model icon in the “Browse Model” catalogue.
Preconditio PRE-1. The application has recognized the surface.
ns:
PRE-2. The user has selected a model.
Postconditio POST-1. The model is placed in the scene.
ns:
Normal 1. User taps the “Browse Models” button.
Flow: 2. The user browses through a list of models.
3. The user selects a model by tapping onto its icon.
4. The model shows up in the scene.
5. The user manipulates the model and finalizes its placement into the scene
as desired.
Alternative N/A
Flows:
Exceptions: 4.E1 The application is unable to detect a surface for the model to be placed.
1. The system displays a popup message “Invalid surface
type”. 4.E2 The environment is not well lit.
1. The system displays a popup message “Move to a brighter location”.
Business N/A
Rules
Assumption N/A
s:

3.2.2.3 M2-UC3: Save Scene


Table 3.12: Save Scene Use Case

Use Case ID: M2-UC3


Use Case Save Scene
Name:
Actors: End User
Description: The user saves a finished design in a local directory in his phone.
Trigger: The user taps the “Save Scene” button.
Preconditio PRE-1. The user’s scene is ready.
ns:
Postconditio POST-1. The user’s designed scene is successfully saved on his phone.
ns:
Normal 1. User browses models.
Flow: 2. User places objects in the scene.
3. Upon finalizing scene creation user taps the “save” button.
4. The scene is saved.
Alternative N/A
Flows:
Exceptions: 3.E1 There is not enough space in the phone.
1. The system displays message “Not enough space” and the system aborts
use case.
Business N/A
Rules
Assumption 1. The user has placed an object in the scene.
s:

3.2.2.4 M2-UC4: Browse Textures


Table 3.13: Browse Textures Use Case

Use Case ID: M2-UC4


Use Case Browse Textures
Name:
Actors: End User
Description: The user browses through a catalogue of textures.
Trigger: The user taps the “Browse Textures” button.
Preconditio N/A
ns:
Postconditio POST-1. The list of textures is displayed.
ns:
POST-2. The user can now select a model.
Normal 1. The user taps the “Browse Textures” button.
Flow: 2. The list of textures is displayed.
3. The user views and selects a texture.
Alternative N/A
Flows:
Exceptions: N/A
Business N/A
Rules
Assumption 1. The users phone supports Augmented Reality.
s:

3.2.2.5 M2-UC5: Place Textures


Table 3.14: Place Textures Use Case

Use Case ID: M1-UC5


Use Case Place Textures
Name:
Actors: End User
Description: The user manipulates the textures selected from the catalogue and assigns it a
location in the scene.
Trigger: The user taps the textures icon in the “Browse Model” catalogue.
Preconditio PRE-1. The application has recognized the surface.
ns:
PRE-2 The user has selected a texture.
Postconditio POST-1 The model is placed in the scene.
ns:
Normal 1. User taps the “Browse Textures” button.
Flow: 2. The user browses through a list of textures.
3. The user selects a texture by tapping onto its icon.
4. The texture shows up in the scene.
5. The user manipulates the texture and finalizes its placement into the scene
as desired.
Alternative N/A
Flows:
Exceptions: 4.E1 The application is unable to detect a surface for the texture to be placed.
1. The system displays a popup message “Invalid surface
type”. 4.E2 The environment is not well lit.
2. The system displays a popup message “Move to a brighter location”.
Business N/A
Rules
Assumption N/A
s:

3.2.2.6 M2-UC6: Share Scene


Table 3.15: Share Scene Use Case

Use Case ID: M2-UC6


Use Case Share Scene
Name:
Actors: End User
Description: The user shares an image of the scene into the social network area within the
application.
Trigger: The user taps the “Share” button.
Preconditio PRE-1. Internet connection is available and working properly.
ns:
Postconditio POST-1. The scene is shared on a social network.
ns:
Normal 1. User creates a scene by placing objects in it.
Flow: 2. User taps the “share” button.
3. The image is shared in the social network.
Alternative N/A
Flows:
Exceptions: 2.E1 There is no internet connection available.
1. The system displays message “Internet not available” and system aborts
the use case.
Business N/A
Rules
Assumption N/A
s:

3.2.3 Module 3: Room Designer


Table 3.16 Module 3 Use Cases

M3-UC1 Browse Catalog


M3-UC2 Place Objects
M3-UC3 Share Build
M3-UC4 Save Project

3.2.3.1 M3-UC1: Browse Catalog


Table 3.17: Browse Catalog Use Case

Use Case ID: M3-UC1


Use Case Browse Catalog
Name:
Actors: End User
Description: In the designer mode the user is shown a complete catalogue of elements to
choose from, for designing a room. The catalogue is divided into categories based
on element type that include chairs, tables, sofas, beds.
Trigger: The user selects a template, opening design mode.
Preconditio PRE-1. The user has selected the template.
ns:
Postconditio POST-1. The user can now select and place elements into the scene.
ns:
Normal 1. The user taps the browse button.
Flow: 2. The list of models in respective category is displayed.
3. The user views and selects an element.
Alternative N/A
Flows:
Exceptions: N/A
Business N/A
Rules
Assumption N/A
s:

3.2.3.2 M3-UC2: Place Objects


Table 3.18: Place Objects Use Case

Use Case ID: M3-UC2


Use Case Place Objects
Name:
Actors: End User
Description: The user selects objects from the catalogue and sets their position into the design
being created. The system places those objects in the design.
Trigger: The user taps and selects an object.
Preconditio PRE-1. The user has selected objects.
ns:
Postconditio POST-1. The objects are placed in to the scene.
ns:
Normal 1. The user navigates to the Room Designer module and select a template.
Flow: 2. The user browses the library of objects shown and selects any by tapping
onto it.
3. The objects show up in the scene.
4. The user adjusts its position as desired.
Alternative N/A
Flows:
Exceptions: N/A
Business N/A
Rules
Assumption N/A
s:

3.2.3.3 M3-UC3: Share Build


Table 3.19: Share Build Use Case

Use Case ID: M3-UC3


Use Case Share Build
Name:
Actors: End User
Description: The user shares any perspective of the design in the form of an image within the
application’s social network.
Trigger: The user taps the “Share” button.
Preconditio PRE-1. The user has internet connectivity.
ns:
Postconditio POST-1. The image is successfully shared onto the desired platform.
ns:
Normal 1. The user makes a design.
Flow: 2. The user taps the “Share Button”.
3. The user selects an angle and the application screengrabs that view and
shares it.
Alternative N/A
Flows:
Exceptions: 2.E1 Internet is not available.
1. The system displays message “Internet not available”
2. The system aborts the use case.
Business N/A
Rules
Assumption N/A
s:
3.2.3.4 M3-UC4: Save Project
Table 3.20: Save Project Use Case

Use Case ID: M3-UC4


Use Case Save Project
Name:
Actors: End User
Description: The user saves the design onto the device in a local directory.
Trigger: The user taps the “Save” button.
Preconditio PRE-1. The mobile device has enough memory for the designed to be saved.
ns:

Postconditio POST-1. The design is saved successfully.


ns:
Normal 1. The user creates a design.
Flow: 2. The user taps the “save” button.
Alternative N/A
Flows:
Exceptions: 2.E1 The phone does not have enough space.
1. The system displays message “System does not have enough space”.
2. The system aborts the use case.
Business N/A
Rules
Assumption N/A
s:

3.2.4 Module 4:
Community
Table 3.21: Module 4 Use Cases

M4-UC1 Write Post


M4-UC2 Post Content
M4-UC3 Like/Dislike Post
M4-UC4 Like/Dislike Comment
M4-UC5 Comment on Post
3.2.4.1 M4-UC1: Write Post
Table 3.22: Write Post Use Case

Use Case ID: M4-UC1


Use Case Write Post
Name:
Actors: End User
Description: The user writes some content that includes text and/or image.
Trigger: The user taps the “Write Post” button.
Preconditio
ns:
Postconditio POST-1. The content is ready to post.
ns:
Normal 1. The user taps “Write Post” button.
Flow: 2. The user writes some text or includes an image.
Alternative N/A
Flows:
Exceptions: N/A
Business N/A
Rules
Assumption
s:

3.2.4.2 M4-UC2: Post Content


Table 3.23: Post Content Use Case

Use Case ID: M4-UC2


Use Case Post Content
Name:
Actors: End User
Description: The user posts the content written by him. The system shares that post with
community.
Trigger: The user taps the “Post” button.
Preconditio PRE-1. Internet connection is available and working properly.
ns:
PRE-2. The user has written some text or attached an image.
Postconditio POST-1. The content is shared to community.
ns:
Normal 1. The user writes some content or attaches an image.
Flow: 2. The user taps the “Post” button.
Alternative N/A
Flows:
Exceptions: 2.E1 Internet connection is not available.
1. The system displays message “Internet not available”.
2. The system aborts the use case.
Business N/A
Rules
Assumption N/A
s:

3.2.4.3 M4-UC3: Like/Dislike Post


Table 3.24: Upvote/Downvote Post Use Case

Use Case ID: M4-UC3


Use Case Like/Dislike Post
Name:
Actors: End User
Description: The user upvotes/downvotes a post in the community.
Trigger: The user taps the “Upvote/Downvote” button. The system saves the user vote.
Preconditio PRE-1. Internet connection is available and working properly.
ns:

Postconditio POST-1. The user vote is saved.


ns:
Normal 1. The user taps “Upvote/Downvote” button
Flow:
Alternative N/A
Flows:
Exceptions: N/A
Business N/A
Rules
Assumption N/A
s:

3.2.4.4 M4-UC4: Like/Dislike Comment


Table 3.25: Upvote/Downvote Comment Use Case

Use Case ID: M4-UC4


Use Case Like/Dislike Comment
Name:
Actors: End User
Description: The user upvotes/downvotes any comment on any post.
Trigger: The user taps the “Upvote/Downvote” button. The system saves the user vote.
Preconditio PRE-1. Internet connection is available and working properly.
ns:

Postconditio POST-1. The user vote is saved.


ns:
Normal 1. The user taps “Upvote/Downvote” a comment on a post.
Flow:
Alternative N/A
Flows:
Exceptions: N/A
Business N/A
Rules
Assumption N/A
s:

3.2.4.5 M4-UC5: Comment on Post


Table 3.26: Comment on Post Use Case

Use Case ID: M4-UC5


Use Case Comment on Post
Name:
Actors: End User
Description: The user writes comment that includes text and/or image and posts it.
Trigger: The user taps the “Write Comment” button.
Preconditio PRE-1. Internet connection is available
ns:

Postconditio POST-1. User’s comment is posted.


ns:
Normal 1. The user taps “Write Comment” button.
Flow: 2. The user taps “Post” button.
Alternative N/A
Flows:
Exceptions: N/A
Business N/A
Rules
Assumption N/A
s:

3.2.5 Module 5: Showcase


Table 3.27: Module 5 Use Cases

M5-UC1 Upload Model

3.2.5.1 M5-UC1: Upload Model


Table 3.28: Upload Model Use Case

Use Case ID: M5-UC1


Use Case Upload Model
Name:
Actors: End User
Description: The user uploads his model. The system saves the model in the online directory.
Trigger: The user taps the “Upload” button.
Preconditio PRE-1. Internet is available and working properly.
ns:

Postconditio POST-1. The model is saved in the online directory.


ns:
Normal 1. The user taps the “Upload” button.
Flow: 2. The user uploads the file by selecting it in the local directory.
Alternative N/A
Flows:
Exceptions: 2.E1 The file uploaded is larger than 10 Mega Bytes in size.
1. The system displays a message “File too large”.
2. The system aborts the use case.
2.E2 The file uploaded has format other than 3DS, FBX and OBJ.
1. The system displays a message “File format not supported.”
2. The system aborts the use case.
Business N/A
Rules
Assumption N/A
s:

3.3 Functional Requirements

3.3.1.1 FR-01: Username Verification

Table 3.29: FR1

Identifier FR1
Title Username verification
Requirement The system shall check for any matching usernames in the database every
time a user requests to create a new account.
Source Supervisor
Rationale To provide all users with a unique identification.
Business Rule N/A
Dependencies FR3

3.3.1.2 FR-02: Create Account

Table 3.30:FR2

Identifier FR2
Title Create Account
Requirement The system shall create a new account for the user upon getting users
credentials.
Source Supervisor
Rationale To provide the user with an identity.
Business Rule (if N/A
required)
Dependencies N/A

3.3.1.3 FR-03: Surface Recognition


Table 3.31: FR3

Identifier FR3
Title Surface Recognition
Requirement The system shall identify key points on a surface to act as an anchor for
placing objects.
Source Supervisor
Rationale To place virtual objects in the scene.
Business Rule N/A
Dependencies N/A
3.3.1.4 FR-04: Motion Tracking
Table 3.32: FR4

Identifier FR4
Title Motion Tracking
Requirement The system shall track the users device position in real time in order to
keep account of where the virtual objects were placed.
Source Stakeholders
Rationale To place virtual objects in the scene.
Business Rule N/A
Dependencies N/A

3.3.1.5 FR-05: Password Verification


Table 3.33: FR5

Identifier FR5
Title Password Verification
Requirement The system shall verify the entered password for its correctness.

Source Supervisor
Rationale To verify user account.
Business Rule N/A
Dependencies N/A
3.3.1.6 FR-06: Update Profile Information
Table 3.34: FR6

Identifier FR6
Title Update Profile Information
Requirement The system shall update user profile information as per the user’s request.

Source Supervisor
Rationale To allow user to update personal information when desired.
Business Rule N/A
Dependencies N/A

3.3.1.7 FR-07: Verify Profile Picture Size


Table 3.35: FR7

Identifier FR7
Title Verify Profile Picture Size
Requirement The system shall not allow user to upload a profile picture of size
exceeding 2 Mega Bytes.
Source Supervisor
Rationale To maintain system performance.
Business Rule N/A
Dependencies N/A

3.3.1.8 FR-08: Save User Activity


Table 3.36: FR8

Identifier FR8
Title Save user activity
Requirement The system shall keep a record of which posts the user uploaded and how
many likes, followers and following the user has.
Source Supervisor
Rationale To keep a history of user activity on the social network.
Business Rule N/A
Dependencies FR12

3.3.1.9 FR-09: Categorize User Elements


Table 3.37: FR9

Identifier FR9
Title Categorize user elements
Requirement The system shall display the furniture elements in a category.

Source Supervisor
Rationale To organize the element for the user to navigate easily.
Business Rule N/A
Dependencies N/A

3.3.1.10 FR-10: Drag and


Drop
Table 3.38: FR10

Identifier FR10
Title Drag and Drop
Requirement The user shall be able to drag elements from the catalogue and drop them
into the project.
Source Supervisor
Rationale To increase quality of user experience.
Business Rule N/A
Dependencies N/A

3.3.1.11 FR-11: Share


Content
Table 3.39: FR11

Identifier FR11
Title Share Content
Requirement The user shall be able to share image view of any scene into the social
network.
Source Supervisor
Rationale To allow user the ability to share with other members of the community.
Business Rule N/A
Dependencies N/A

3.3.1.12 FR-12: Save to Local Directory


Table 3.40: FR12

Identifier FR12
Title Save to local directory
Requirement The system shall save scenes and builds as image into the phones local
directory as per user request to save the file.
Source Supervisor
Rationale To allow user to view and use images at any desired time.
Business Rule N/A
Dependencies N/A

3.3.1.13 FR-13: Post Availability


Table 3.41: FR13

Identifier FR13
Title Post Availability
Requirement The system shall make all content posted by users onto the social network
available to all users of the application.
Source Supervisor
Rationale To make all content available for all users to interact.
Business Rule N/A
Dependencies N/A

3.3.1.14 FR-14: Display Community Content


Table 3.42: FR14

Identifier FR14
Title Display community content
Requirement The system shall display all content posted by users as a single newsfeed.

Source Supervisor
Rationale To display content as a list for user.
Business Rule N/A
Dependencies N/A

3.3.1.15 FR-15: Sort Content Chronologically


Table 3.43: FR15

Identifier FR15
Title Sort content chronologically
Requirement The user shall be able to sort the content listed in the social network by
chronological order.
Source Supervisor
Rationale To increase user experience
Business Rule N/A
Dependencies N/A
Priority Medium

3.3.1.16 FR-16: Display Content Chronologically


Table 3.44: FR16

Identifier FR16
Title Display content chronologically
Requirement The system shall sort user content being displayed chronologically.

Source Supervisor
Rationale To increase user experience.
Business Rule N/A
Dependencies N/A

3.3.1.17 FR-17: Upload


Model
Table 3.45: FR17

Identifier FR17
Title Upload model
Requirement The user shall be able to upload models onto the application server.

Source Supervisor
Rationale To keep applications catalogue updated
Business Rule N/A
Dependencies N/A
3.4 Non-Functional Requirements

3.4.1 Usability
USE-1: The application shall take a maximum of 5 minutes for an average user to learn
the system.
USE-2: All text shall have font size equal to or more than 10dp for easy readability.

3.4.2 Performance
PER-1: The system shall show object in scene in 2 seconds.

3.4.3 Supportability.
SR-1: The application shall function on devices with android version 7 and those that
support google ARcore services.

3.4.4 Availability
AVA-1: The system shall be available 24/7.
4 Design and Architecture

4.1 System Architecture

Figure 4.1: System Architecture Diagram


4.2 Data Representation
DesignAR has “NoSQL” database. It uses Firebase to store data:

Table 4.1: Data Representation

Collection Fields Data Types


Profiles Id
Email Text string
Username Text string
photoUrl Reference
likesCount Integer

Posts authorId
description Text string
Title Text string
createdDate Date and Time
hasComplain Boolean
likesCount Integer
commentsCount Integer
watchersCount Integer

Post-comments Id
authorId
Text Text string
createdDate Date and Time

Followers profileId
createdDate Date and Time

Models Id
description Text string
Title Text string
Username Text string
Postimage Reference
4.3 Design Models

4.3.1 Structural Diagrams

4.3.1.1 Class diagram

profileCreate
-username: String
-password: String
-image: Image
+createProfile(username,password,image)

userProfile
profileEdit postCreate
-userPosts: List
-username: String -userList: List
-password: String 1 1…* -title
-likes: Integer
-image: Integer -description
-comments: String
-image
+changeUsernName(username) +displayNewsfeed(userPosts,likes,comments)
+changeImage(image) +openDecor() +createPost(image,title,description)
+openRoom()
1

1…*
1…*
roomPanel
foundFloor
-canvas
-hasFoundFloor:Boolean -buttons
+update() -transformView
1 +init()
+setMode()
1…* +activeGUI()

modelPlacement 1

-itemSetIntoPlacer:gameObject
1…*
-objectPlaced:gameObject
textureChange -gui: gameObject
+drag()
roomController
-inPos: Boolean
+start() +rotate() -camera
+update() +remove() -room
+changePosition() +delete() -rotated: Boolean
+inPlace() -gui: Boolean
+duplicate() -panel: roomPanel
+remove() +start()
takeSS() +reset()
+update()
+addItem()
+touchItem()
+drag()
+place()
+delete()
+rotate()
Figure.4.2: Class Diagram
4.3.2 Behavioral Diagrams

4.3.2.1 Activity diagram

Module 1: Account Management Activity Diagrams

Edit Profile Activity

Figure.4.3: Edit Profile Activity Diagram


Edit Image Activity

Figure4.4: Edit Image Activity Diagram


Module 2: Décor

Place and Save Object Activity

Figure 4.5: Place and Save Object Activity Diagram


Share Scene
Activity
Figure 4.6: Share Scene Activity Diagram
Module 3: Room Designer

Place and Save Model Activity

Figure 4.7: Place and Save Model Activity Diagram


Module 4: Community

Post Content Activity

Figure 4.8: Post Content Activity Diagram


Like/Dislike Activity

Figure 4.9 Upvote/Downvote Activity Diagram


4.3.2.2 Sequence diagram
Module 1: Account Management Sequence Diagrams

Figure 4.10: Edit Profile Sequence Diagram


Figure 4.11: Edit Image Sequence Diagram

Module 2: Décor Sequence Diagram

Figure 4.12 Place Object and Save Sequence Diagram


Module 3: Room Designer Sequence Diagram

Figure 4.13 Place Model and Save Sequence Diagram

Module 4: Community Sequence Diagrams

Figure 4.14 Post Content Sequence Diagram


Module 5: Showcase Sequence Diagram

Figure 4.15: Upload Model Sequence Diagram

5 Implementation

5.1 Algorithm

5.1.1 Model Placement


Input
 Camera output
 Model

Steps
 AR solution captures part of environment using smartphone’s camera.
 Scan the surface and put on feature points on the scanned surface.
 Estimate for average color temperature and brightness in physical space
 Detect and scan 3d model and place on scanned surface.
Output
 Model placed in the environment.

5.1.2 Post Sharing


Input
 Text/ Image
 Title
 Description

Steps
 Get image with the help of native gallery plugin and store reference.
 Store title and description input by user.
 Display post on user newsfeed using Drawable class.
 Keep track of views, comments, and likes.

Output
 Post shared in newsfeed.

5.1.3 Room Designing


Input
 Touch Gestures.

Steps
 Interact with in the interface using Touch Gestures.
 Dragging & Dropping Furniture Objects from Menu to a defined room area.
 Viewing the current placement from various point of view.

Output
 The items have been placed in the respective assigned area.
5.2 External APIs

Table 5.1: Details of APIs used in the Project


Name of API Description of API Purpose of Usage List down the
function/class name in
which it is used
Native Gallery Plugin Helps save image and To allow user to save the postCreate Class
videos to device image in user’s gallery modelPlacement Class
gallery. It is also and to allow user to select
possible to pick and an image from gallery to
image from gallery. upload it.

5.3 User Interface

Figure 5.1: Main Screen


Figure 5.2: User Activity

Figure 5.3: Newsfeed


Figure 5.4: Post Sharing Screen

Figure 5.5: Room Designer Environment


Figure 5.6: Model Catalog

Figure 5.7: Model Placement inside Template


6 Testing and Evaluation

6.1 Manual Testing

6.1.1 Unit Testing

6.1.1.1 Unit Testing 1: Signup


Testing Objective: To ensure the signup form is working properly and user gets registered on valid
username and password.
Test Case Id: TC_U1
Test Case Description: Test the signup functionality.
Table 6.1: Test Cases for Signup

No. Test Case/Test Test Data Expected Result Actual Result Pass/Fail
Script /Not
Executed
/
Suspend
ed
TC-01 Email and Email: User newsfeed User newsfeed Pass
password valid mail@yahoo.com appears. appears.
Password:
google36@
TC-02 Email format Email: Message Message Pass
invalid mail displayed “email displayed “email
Password: badly formatted” badly formatted”
google0336
6.1.1.2 Unit Testing 2: Login
Testing Objective: To ensure the login form is working properly and user is logged into his profile.
Test Case Id: TC_U2
Test Case Description: Test the Login functionality.
Table 6.2: Test Cases for Login

No. Test Case/Test Test Data Expected Actual Result Pass/Fail/N


Script Result ot
Executed/
Suspended
TC-01 Email and Email: User newsfeed User newsfeed Pass
password valid mail@yahoo.com appears appears
Password:
google36@
TC-02 Email Invalid Username: Message Message Pass
mal@yahoo.com displayed displayed
Password: “username “username does
google36@ does not exist” not exist”
TC-03 Password Username: Message Message Pass
invalid mail@yahoo.com displayed displayed “invalid
Password: “invalid password”
gogle36 password”

6.1.1.3 Unit Testing 3: Edit Image


Testing Objective: To ensure the image selected is set as profile photo if the selected image is in valid
format and has valid size.
Test Case Id: TC_U3
Test Case Description: Test the Edit Image functionality.
Table 6.3: Test Cases for Edit Image

No. Test Case/Test Test Data Expected Result Actual Result Pass/Fail/N
Script ot
Executed/
Suspended
TC-01 Selected Image .jpg file Image displayed as Image displayed as Pass
valid profile photo profile photo
TC-02 Image format Image file Message displayed Message displayed Pass
invalid “Invalid image “Invalid image
format” format”
TC-03 Image size .jpg file Message displayed Message displayed Pass
invalid “image too big” “image too big”

6.1.1.4 Unit Testing 4: Write Post


Testing Objective: To ensure that text or a picture is added as post.
Test Case Id: TC_U4
Test Case Description: Test the Write Post functionality.
Table 6.4: Test Cases for Write Post

No. Test Case/Test Test Data Expected Result Actual Result Pass/Fail/
Script Not
Executed/
Suspende
d
TC-01 Add Content Text, image Post written and Post written and Pass
ready to share ready to share

6.1.1.5 Unit Testing 5: Post Content


Testing Objective: To ensure that post created is shared on social network.
Test Case Id: TC_U5
Test Case Description: Test the Write Post functionality.
Table 6.5: Test Cases for Post Content

No. Test Case/Test Test Data Expected Result Actual Result Pass/Fail/
Script Not
Executed/
Suspende
d
TC-01 Share when Button: Share Content posted Content posted Pass
content written and displayed on and displayed on
newsfeed newsfeed
TC-02 Share when field Button: Share Content not Content not
blank shared shared
6.1.1.6 Unit Testing 6: Like/Dislike Post
Testing Objective: To ensure that vote on the post is
added. Test Case Id: TC_U6
Test Case Description: Test the Like/Dislike Post functionality.
Table 6.6: Test Cases Like/Dislike Post

No. Test Case/Test Test Data Expected Result Actual Result Pass/Fail/
Script Not
Executed/
Suspende
d
TC-01 Check by Button: Vote added Vote added Pass
clicking thumbs Up/down vote
up/down icon icon

6.1.1.7 Unit Testing 7: Comment on Post


Testing Objective: To ensure that comment is published on the post.
Test Case Id: TC_U7
Test Case Description: Test the Comment on Post functionality.
Table 6.7: Test Cases for Comment on Post

No. Test Case/Test Test Data Expected Result Actual Result Pass/Fail/
Script Not
Executed/
Suspende
d
TC-01 Post when text Button: Post Comment Comment Pass
written published published
6.1.1.8 Unit Testing 8: Browse Model
Testing Objective: To ensure that models can be browsed through.
Test Case Id: TC_U8
Test Case Description: Test the Browse Model functionality.
Table 6.8: Test Cases for Browse Model

No. Test Case/Test Test Data Expected Result Actual Result Pass/Fail/N
Script ot
Executed/
Suspended
TC-01 Browse Button: Models Models Displayed Pass
Browse model displayed

6.1.1.9 Unit Testing 9: Place Objects


Testing Objective: To ensure that object is placed on surface.
Test Case Id: TC_U9
Test Case Description: Test the Place Object functionality.
Table 6.9: Test Cases for Place Objects

No. Test Case/Test Test Data Expected Result Actual Result Pass/Fail/N
Script ot
Executed/
Suspended
TC-01 Surface textured AR camera Surface marked Surface marked Pass
and light fair
TC-02 Object dragged Object Object Placed Object Placed Pass

TC-03 Surface Invalid AR camera Surface not Surface not Pass


marked marked
TC-04 Light not fair AR camera Surface not Surface not Pass
marked marked
6.1.1.10 Unit Testing 10: Save Scene
Testing Objective: To ensure that the scene is saved in gallery.
Test Case Id: TC_U10
Test Case Description: Test the Save Scene functionality.
Table 6.10: Test Cases for Save Scene

No. Test Case/Test Test Data Expected Result Actual Result Pass/Fail/N
Script ot
Executed/
Suspended
TC-01 Space enough Tap on camera Photo saved Photo saved Pass
icon

6.1.1.11 Unit Testing 11: Share scene


Testing Objective: To ensure that the scene is shared in the social network.
Test Case Id: TC_U11
Test Case Description: Test the Share Scene functionality.
Table 6.11: Test Cases for Share Scene

No. Test Case/Test Test Data Expected Result Actual Result


Pass/Fail/
Script Not
Executed/
Suspende
d
TC-01 Share when Tap on share Photo shared and Photo shared and Pass
internet icon displayed on displayed on
connection newsfeed newsfeed
available
TC-02 Share when Tap on share Message Message Pass
internet icon displayed “No displayed “No
connection not connection, check connection, check
available your internet your internet
connection” connection”
6.1.2 Functional Testing

6.1.2.1 Functional Testing 1: Register


Test Objective: To ensure that the user can use the application after registering.
Test Case Id: TC_F1

No. Test Case/Test Script Test Data Expected Result Actual Pass/Fail/Not
Result Executed/
Suspended
1. Register Username User has access to User has Pass
Password the application. access to
the
application.

6.1.2.2 Functional Testing 2: Login


Test Objective: To ensure that the correct page with the correct navigation bar is loaded.
Test Case Id: TC_F2

No. Test Case/Test Script Test Data Expected Result Actual Pass/Fail/Not
Result Executed/
Suspended
1. Login Username User newsfeed User Pass
Password appears. newsfeed
appears.
6.1.2.3 Functional Testing 3: View Profile
Test Objective: To ensure that profile information is displayed.
Test Case Id: TC_F3
No. Test Case/Test Script Test Data Expected Result Actual Pass/Fail/Not
Result Executed/
Suspended
1. View Profile Button: Profile information Profile Pass
View displayed information
Profile displayed

6.1.2.4 Functional Testing 4: Edit Credentials


Test Objective: To ensure that different credentials can be edited.
Test Case Id: TC_F4
No. Test Case/Test Script Test Data Expected Result Actual Pass/Fail/Not
Result Executed/
Suspended
1. Edit Username Username Username Updated Username Pass
Updated

2. Edit Image Image Image Updated Image Pass


Updated

6.1.2.5 Functional Testing 5: Place Model


Test Objective: To ensure that user can place model in the scene.
Test Case Id: TC_F5
No. Test Case/Test Script Test Data Expected Actual Result Pass/Fail/Not
Result Executed/
Suspended
1. Browse Model Button: Models Models catalog Pass
Browse catalog displayed
displayed
2. Place Model AR Model Placed Model Placed Pass
Camera,
Model
6.1.2.6 Functional Testing 6: Place 3d Model in template
Test Objective: To ensure that user can place the 3d model in the template.
Test Case Id: TC_F6
No. Test Case/Test Script Test Data Expected Actual Result Pass/Fail/Not
Result Executed/
Suspended
1. Browse 3d Model Button: Models Models catalog Pass
Browse catalog displayed
displayed
2. Place Model 3d Model Model Placed Model Placed Pass

6.1.2.7 Functional Testing 7: Upload Model


Test Objective: To ensure that user can upload the 3d model.
Test Case Id: TC_F7
No. Test Case/Test Script Test Data Expected Actual Result Pass/Fail/Not
Result Executed/
Suspended
1. Upload Model Image Model Model Pass
uploaded uploaded

6.1.3 Integration Testing


We have adopted the Top-down strategy for integration testing because we developed the critical
modules of our system first and then went on to test main modules’ integration with other modules.

No. Test Case/Test Test Data Expected Result Actual Pass/Fail/Not


Script Result Executed/
Suspended
1. Login Email: Login successful As Pass
mail@yahoo.com and user’s newsfeed Expected,
Password: is displayed
google36@
2. Post Content Text, image Content posted As Pass
Expected,

3. Navigate to Button: decor Décor window As Pass


Décor window displayed Expected,
4. Place Model Model Object Model Placed As Pass
Expected,
5. Navigate to Button: designer Room Designer As Pass
Room Designer window displayed Expected

6. Drag Model 3d Model Model Places As Pass


inside template Expected,

7. Upload Model Image Model Uploaded As Pass


Expected

6.1.4 System Testing


Test Scenario 1:
To place model in AR environment, the user moves the camera to the desired
location in physical space and the AR solution scans the surface and if the
scanning is successful, user is able to drag the model in the scene but if the
surface is not validated a message is displayed
Status: Pass

Test Scenario 2:
To enter the Room designing environment user taps the room designer icon and
the template is displayed along with the model’s catalog. The user selects a model
and drags it inside the template.
Status: Pass

Test Scenario 3:
The user takes the photo of the scene and is saved in the device gallery. The user
shares the photo in the community section if the internet connection is available
but if the connection is not available a message is displayed.
Status: Pass
7 Conclusion and Future Work

7.1 Conclusion
In conclusion, our project a complete platform specifically designed for everyday people who
require help and ideas in renovating, designing and furnishing their homes. The application
delivers help without any sharp learning curve and proves to be up to date with the social norms
and trends of today.

7.2 Future Work


The application currently supports few devices because of the limitations of ARCore. However,
in the future we aim to increase the applications reach by providing its support on more
operating systems (i.e. IOS and Windows) and to more mobile devices.
8 References
[1] https://developers.google.com/ar/
[2] https://developers.google.com/ar/develop/unity/quickstart-android
[3] www.unity.com
[4] www.reddit.com
[5] Software Engineering Practitioner’s Approach (Eighth Edition).

You might also like