Augmented Reality in Interior Design App
Augmented Reality in Interior Design App
INTRODUCTION
1.1 Background
Given the size of the industry, two key issues were found. Firstly, consumers lacked
the ability to see how the furniture would fit in their homes prior to making a purchase.
Customers now visit furniture shops to try to visualize how each piece of furniture will fit in
their homes. Second, in this cutthroat environment, businesses and professionals have
significant challenges in promoting their goods and services. The concept of augmented
reality was born out of this. The apps being released by major home furnishing, hardware,
and interior design companies like IKEA and Lowes serve as evidence that augmented reality
in interior design is remarkably beneficial. The first consumer augmented reality (AR)
application, KPS Click & Design, was introduced by augmented reality firm Metaio in 2005
and allowed users to place virtual furniture in an environment.
1.2 Objective
As the main goal of this project, we want to:
Create a mobile application that will enable users to scan and position 3D items in the
real world using augmented reality (AR) technology. Additionally, individuals and businesses
in the decoration industry will be able to advertise their services and collection via this
application.
1
1.3 Purpose, Scope, and Applicability
1.3.1 Purpose
1.3.2 Scope
1.3.3 Applicability
Customers can use the application to assist design their houses and purchase furniture,
art decor, etc. The seller might use the application to offer interior design services. The key
benefit of the app is that it incorporates augmented reality to give users an understanding of
how a space will appear once it has been fully designed without them having to physically
visit it.
2
CHAPTER 2
SURVEY OF TECHNOLOGIES
3
2.2 List of Technologies
Unity
An effective cross-platform 3D engine and user-friendly development environment
are Unity3D. Both the beginner and the expert can use it without difficulty.
Unreal Engine
Epic Games created the 3D computer graphics game engine known as Unreal Engine.
Industry-specific creators can deliver cutting-edge content, interactive experiences,
and immersive virtual worlds using Unreal Engine.
Cryengine
The German video game developer Crytek created the CryEngine game engine.
CryEngine is a highly effective engine with excellent graphical capabilities.
ARCore
A software development kit called ARCore, also referred to as Google Play Services
for AR, was created by Google to enable the development of augmented reality
applications.
ARKit
Apple's augmented reality (AR) software development kit for iOS mobile devices is
called ARKit. It was first made available with iOS version 11, and since then, it has
advanced.
4
Sublime Text
A cross-platform shareware source code editor is called Sublime Text. Numerous
markup and programming languages are supported natively. With plugins, users can
increase the functionality.
Atom
Atom is a free and open-source text and source code editor that includes embedded
Git Control and support for JavaScript plug-ins. Atom is a desktop application created
by GitHub that makes use of web technologies.
5
2.3 Comparative Study
Table 2.3.1 Comparative study between Unreal Engine, Cryengine and Unity
6
Comparative study between Visual Studio Code, Sublime Text and Atom
Table 2.3.2 Comparative study between Visual Studio, Sublime Text and Atom
Performance VS Code has a faster Sublime text has a Atom also tends to
starting time. better performance. be sluggish when
editing large files,
and can result in a
bad experience.
Core Features VS Code has built-in Sublime has more Atom has less core
IntelliSense support core features than features.
and JS and TS Atom.
autocompletion
Development of VSCode has a large Sublime text has Atom is next to
Editors contributor group. comparatively lesser VSCode in terms of
contributors as its customers.
paid software.
7
Comparative study between ARCore and ARKit
8
2.4 Selected Technologies
1. Unity
The cross-platform gaming engine Unity was created by Unity Technologies. The Unity
engine is the third-party game creation tool that developers use the most frequently worldwide.
For PC, consoles, and mobile devices, Unity may be used to develop VR (Virtual Reality) and
AR (Augmented Reality) applications. Unity Game Development is a real-time 3D
development platform that enables designers, developers, and artists to collaborate to produce
immersive and engaging user experiences. Windows, Mac, and Linux users can use the Unity
software. It allows for quick editing and involvement during development cycles and displays
live previews of the work you've produced. Directly in the Unity Editor, 2D or 3D sceneries,
animations, or cinematics can be created.
Why Unity?
The ease of use and intuitiveness of the language code is one of the reasons Unity has so
many users and a sizable community of game development studios. Furthermore, a lot of
independent game developers favor Unity 3D over other game engines because it offers a wide
variety of assets. The best platform for beginners is Unity.
In simple terms, Visual Studio Code is a code editor. Lightweight source code editors
like Visual Studio are available. It was produced by Microsoft for Windows, Linux, and
macOS. A free editor that helps the programmer write code, helps in debugging, and corrects
the code using the intelli-sense method, is what Visual Studio Code is described as. The most
popular and one that supports almost all coding languages is Visual Studio Code. Its features
allow the user to modify the editor as needed, meaning the user is able to download libraries
from the internet and integrate them with the code as needed. There are many advantages as
follows:
1. Cross-platform support
2. Light-weight
3. Robust Architecture
9
4. Intelli-Sense
5. Freeware
6. Although many users only use it for desktop applications, it also offers excellent
tool support for web technologies like HTML, CSS, and JSON.
Due to the fact that they are all just text editors, Sublime, Atom, Brackets, and Vim are
problematic. In addition to having the ability to be highly customizable, Visual Studio Code
comes pre-configured to run the fundamentals of an IDE. The fact that Linux, Windows, and
macOS are all supported by Visual Studio Code is another significant benefit. Compared to
most text and code editors, Visual Studio Code also operates more quickly.
3. ARCore
A platform for building augmented reality applications is called ARCore. You can build
AR feature experiences for both iOS and Android using ARCore's various APIs. The well-
known game engine Unity can also be used with the platform.
You can create reliable and complex AR projects using ARCore, which provides three key
features:
2. Awareness of the environment: ARCore can recognize planes and feature points to
allow you to properly place virtual objects on actual, flat surfaces. For instance, items on
your table or the walls.
3. Light estimation: ARCore can determine where the current lighting is in the real
world by using the camera on a phone. The virtual objects are then lit by ARCore in a
realistic manner, heightening the sense of realism.
Why ARCore?
10
While ARCore is compatible with both iOS and Android, ARKit is only supported by
the iOS operating system. In terms of lighting estimation, ARKit and ARCore provide
comparable outcomes and capabilities, but take different approaches. While ARKit offers
color temperature and intensity to developers, ARCore uses the Unity API and Android
Studio API to offer a shader or pixel intensity value. Another distinction is that ARCore
tracks more feature points when mapping a scene than ARKit. This implies that in ARCore
apps, the mapped area grows faster. Because it supports a large number of already-existing
devices, ARCore performs better because it does not require specialized hardware, such as a
specialized camera or sensor.
4. C#
One of the most widely used programming languages is C#, which is used in the Unity
game engine to create games. Because C# is simpler to learn than languages like C++, it is
very appealing to programmers and game designers. The code files that store behaviors in
Unity and drive everything the engine does are C# scripts.
Due to its learning curve and long association with Microsoft, C# was chosen by Unity
over JavaScript or Boo. Up until its discontinuation in 2014, Boo was one of the three
scripting languages for the Unity game engine. Despite the abundance of new tools that make
it possible to create games without scripts, they are still the most effective way to add unique
interactions and actions to a game world.
11
CHAPTER 3
REQUIREMENT ANALYSIS
1. Realism
There is lack of reality. The consumers expect the objects to have same impression in
reality. Whereas in reality the color of the product might be a bit different.
There are chances of using the software with malicious intent. There is a legitimate
chance of doing so.
The quality of content used in the AR might have poor quality. This is mainly
because the AR is still developing.
The chances of real objects obstructing virtual objects are more. Some solutions are
available though.
12
3.2 Requirements Specification
Requirements are the problems that exist in the existing software. The aim is to find
solutions to these problems. Thus, these problems became the software’s requirements.
1. User friendly
2. Placing objects
3. Compatibility
4. AR Ruler
5. Object Modification
6. Photorealistic Rendering
1. User Friendly :
2. Placing Objects :
Many existing software doesn’t give a perfect object placement technique. The
user might find it difficult to place the objects correctly. It might also become
difficult for the user to estimate the size of the object in reality and how it will
look in real world. This problem might take out the actual motive of using AR
in interior designing.
3. Compatibility:
Some software are not compatible with all devices. This might cause
unavailability of software and limit the scope of the project.
4. AR Ruler:
The AR ruler can be used to precisely measure the room’s dimensions. It can
also be used to measure the furniture dimensions.
13
5. Object Modification:
The objects should be created in a way such that it can be modified as and
when necessary. The facility to upload objects should also be provided.
6. Photorealistic Rendering:
The object or model should look real for higher immersion. If the immersion is
not maintained the gap between virtual and real-world increases leading to bad
experiences.
14
3.3 Planning and Scheduling
Every project has deadlines, without a deadline the projects would just get dragged
and will not be completed in a particular range of time. This can often lead to laziness as well
as lose of trust . Due to this, it is important to implement time schedule for the completion of
a project so that it wot be late for completion so to help with this situation we can implement
a setup called a Gantt Chart.
A Gant Chart is mostly used in managing a project; it is one of the best ways for
completing a set of work and activities within the given amount of time. To be more precise
Gantt Chart helps to check the pipeline of time and it also helps in teaching the project and
schedule.
Now in this project specific timing for each and every task is allocated that has to be
carried out and some has already been done.
15
Gantt Chart
16
Fig 3.3.2 Gantt Chart (2)
17
Fig 3.3.4 Gantt Chart (4)
18
Network Diagram
Network diagrams are a flowchart that show the sequential workflow of project tasks. Its
focus is on Milestones Work Sequential Order. It is high-level plan to understand the project
work-flow.
19
Fig 3.3.9 Network Diagram (3)
20
Fig 3.3.11 Network Diagram (5)
21
Fig 3.3.13 Network Diagram (7)
22
3.4 Software and Hardware Requirements
Hardware :
Computer / Laptop
RAM : 2GB & Above
ROM : 4GB & Above
Processor : Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz 1.80 GHz
Software :
Unity
AR Core
Visual Studio
C#
MySQL
The software benefits the sellers as well because it increases their sales and brand
value. The software provides a wide range of customer satisfaction at the comfort of their
homes with just a touch.
23
3.6 Conceptual Model
The conceptual model used here is Flowchart. A flowchart is a diagram that depicts a
process, system or computer algorithm. The flowchart displays the steps as a series of boxes
of varying kinds, with arrows joining the boxes in the correct order. They are widely used to
document, study, plan, improve, and communicate frequently complex ideas across a variety
of fields.
24
CHAPTER 4
SYSTEM DESIGN
1. Tracking
This module is considered to be the heart of AR system. The module starts when it
initializes the AR Camera. The camera detects the feature points, calculates the
coordinates and sends the data to rendering module.
2. Rendering
This module renders the virtual model or object on to the feature point. The model is
then displayed to the user on the device.
3. Interaction
This module provides ability to interact with the virtual model on the screen. To
change the pose of the object, interaction is needed.
4. Shopping Cart
Once the user likes the model, it can be added to the shopping cart. The shopping
cart will consist of products the user wants to buy.
5. Payment
This module is important from financial aspect. The payment gateway is needed
during checkout.
6. System
This can be considered as the parent module. It monitors all modules and can be
considered as the channel for inter-module communications.
25
4.2 Data Design
26
4.2.2 Data Integrity and Constraints
1. User Table
2. Rooms Table
3. Product Table
27
4. Room_Products Table
5. Cart Table
6. Order Table
28
4.3 Procedural Design
The logic diagram is based on the activity diagram. Similar to a flowchart or data flow
diagram, an activity diagram visually displays a series of actions or the flow of control in a
system. The activity diagram is a common tool in business process modelling. Furthermore,
they can depict the steps in a use case diagram. When being modelled, activities can either be
sequential or concurrent. An activity diagram will always have a start (an initial state) and an
end (a final state)
29
4.3.2 Algorithm Design
Step 1: Start
30
4.4 User Interface Design
The use case diagram can be used to depict the basic user interface design. The
specifics of your system's users (also referred to as actors) and their interactions with the
system can be condensed in a use case diagram. A use case diagram does not include a lot of
specifics; for instance, do not anticipate it to model the sequence in which steps are carried
out. The relationship between use cases, actors, and systems is shown in high-level detail by a
proper use case diagram, on the other hand.
1. Malware
3. Ransomware
32
The process of developing a group of test cases that will be used to validate the
operation and functionality of a software application is known as test case design. The
process of designing a test case entails first determining the conditions and objectives of the
test. A test case is a series of conditions or procedures that are carried out to confirm a certain
software feature. Each test case contains the predicted outcomes as well as a list of actions
that must be completed to carry out the test.
The testcases performed for testing the functionality of this application are mainly
done through unit testing, performance testing, Navigation testing and many more.
T01 Registration Testing #1 Name The field should accept only proper
ABC name
T02 Registration Testing #2 Email The field should accept only email
abc@[Link] addresses
T03 Registration Testing #3 Contact Number The field should accept only 10
9874563210 numbers
T04 Registration Testing #4 Username The field should accept only proper
abc name
T05 Registration Testing #5 Password While the user enters password, the
12345 field should show characters as ‘*’
T06 Registration Testing #6 Username If the user enters a username that
abc already exists, a message should be
given “Username already exists”
T07 Registration Testing #7 Name :ABC If user fills all the fields correctly, the
user should be registered
Email:abc@[Link]
Contact : 9874563210
Username : abc
Password : 12345
T08 Registration Testing #8 Name :ABC If user doesn’t fill all the fields
correctly, the user should not be
Email:abc@[Link] registered
33
Contact : 9874563210
Username : abc
Password : 12345
T09 Login Testing #1 Username : abc The field should accept proper
username
T10 Login Testing #2 Password : 12345 While the user enters the password,
the field should show characters as
‘*’
T11 Login Testing #3 Username : Testuser If user fill all the fields correctly, the
user should be Logged in
Password : pass@123
T12 Login Testing #4 Username : Testuser If user fills any of the fields
incorrectly, the user should not be
Password : pass@1 Logged in and given proper message.
T13 Navigation Testing #1 Press Home icon The application should display more
button options like account, FAQs, logout.
T14 Navigation Testing #2 Press Account icon The application should take user from
button home to profile
T15 Navigation Testing #3 Press FAQs icon button The application should take user from
home to FAQs webpage.
T16 Navigation Testing #4 Press Logout icon The application should take user from
button home to logout
T17 Navigation Testing #5 Press Cart Icon button The application should take user from
home to cart
T18 Navigation Testing #6 Press Search Icon The application should take user from
button home to search
T19 Navigation Testing #7 Press Cart button in The application should take user from
Account Page Account to Cart
T20 Navigation Testing #8 Press My Orders button The application should take user from
in Account Page Account to My Orders
34
T21 Navigation Testing #9 Press Logout button in The application should take user from
Account Page Account to Logout
T22 Navigation Testing #10 Press Move to The application should take user from
Checkout button in Cart to Checkout
Cart Page
T23 Navigation Testing #11 Press Pay Now button The application should take user from
in Checkout Page Checkout to Payment
T24 Navigation Testing #12 Press My Orders The application should take user from
button in Payment Payment to My Orders
Page
T25 Products Display Press Product Tab The application should display all
Testing #1 button in Home Page products in the tab content
T26 Room Types Display Press Room Tab button The application should display all
Testing #1 in Home Page available room types in the tab content
T27 Product Details Display Click on a Product in The application should display
Testing #1 Products Tab product details
T28 Room Details Display Click on a Room Type The application should display all
Testing #1 in Rooms Tab products available in that particular
room type
T29 Room Details Display Click on a Room Type The application should display all
Testing #1 in Rooms Tab products available in that particular
room type
T30 Cart Testing #1 Click on the Add to The application should add the
Cart button in product product to the cart.
details page.
T31 Cart Testing #2 Click on the Cart icon The application should display
in the page products added to cart
T32 Order Testing #1 Click on Move to The application should display order
Checkout button summary of added products
T33 Order Testing #2 Click on the My Orders The application should display details
Button after payment of products ordered by the user
T34 Payment Testing #1 Click on the Pay Now The application should display a QR
button in Order code for scan and pay purpose
summary page
T35 ARCamera Testing #1 Click on Camera icon The application should initialize the
in product details page camera on click
35
T36 ARCamera Testing #2 Click on Camera icon The application should ask for user’s
in product details page permission to use device camera
T37 AR Testing #1 The camera should not The application should detect planes
be facing obstacles automatically
T38 AR Testing #2 The camera should be The application should show marker
on after plane detection
T39 AR Testing #3 The module should be The application should show the
on models
CHAPTER 5
IMPLEMENTATION AND TESTING
36
Implementation approaches can be different for each developer, so the one used here is Agile
model in which each modules were designed, implemented, tested, deployed and reviewed.
1. Furniture Store : The section where the products are displayed to the customers
providing them a cart to store the products they want to buy and a payment panel.
2. AR Camera : which provides the 3D view of the product they want to see &
locate at their preferred rooms.
The above listed modules are the main modules but these modules are later divided into parts
to build and test them with more efficiency and accuracy.
[Link]
37
using [Link];
using [Link];
using UnityEngine;
using [Link];
using [Link];
using TMPro;
using [Link];
void Start()
instance = this;
DontDestroyOnLoad([Link]);
currentUsername = "";
38
if([Link](ukey))
if([Link](ukey) != "")
currentUsername = [Link](ukey);
else
else
currentUsername = "";
[Link](ukey, currentUsername);
[Link]("Initial");
39
}
StartCoroutine(LoginAccount(uName, pWord));
[Link]("loginName", Name);
[Link]("loginEmail", Email);
40
[Link]("loginContact", Contact);
[Link]("loginUser", uName);
[Link]("loginPass", pWord);
if ([Link] != [Link])
[Link]([Link]);
else
41
[Link]("loginUser", uName);
[Link]("loginPass", pWord);
if ([Link] != [Link])
[Link]([Link]);
else
if(responseText == "1")
[Link](ukey, uName);
[Link]("Home");
else
42
}
[Link]
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "homemakerz";
$loginName = $_POST["loginName"];
$loginEmail = $_POST["loginEmail"];
$loginContact = $_POST["loginContact"];
$loginUser = $_POST["loginUser"];
$loginPass = $_POST["loginPass"];
// Create connection
// Check connection
if ($conn->connect_error)
43
die("Connection failed: " . $conn->connect_error);
$sql = "SELECT password FROM users WHERE username = '" . $loginUser . "'";
$result = $conn->query($sql);
if ($result->num_rows > 0)
else
$sql2 = "INSERT INTO users (name, email, contact, username, password) VALUES ('" .
$loginName . "','" . $loginEmail . "','" . $loginContact . "','" . $loginUser . "', '" . $loginPass .
"')";
44
else
//close connection
$conn->close();
?>
[Link]
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "homemakerz";
$loginUser = $_POST["loginUser"];
$loginPass = $_POST["loginPass"];
// Create connection
45
// Check connection
if ($conn->connect_error)
$sql = "SELECT password FROM users WHERE username = '" . $loginUser . "'";
$result = $conn->query($sql);
if ($result->num_rows > 0)
while($row = $result->fetch_assoc())
if($row["password"] == $loginPass)
echo 1;
else
echo 0;
46
}
else
//close connection
$conn->close();
?>
Following codes are to add product to cart, delete product from cart and display them :
[Link]
using UnityEngine;
using [Link];
using [Link];
using [Link];
using TMPro;
47
public class CartMain : MonoBehaviour
StartCoroutine(AddItem());
StartCoroutine(DeleteItem());
IEnumerator AddItem()
string id = [Link];
[Link]("ID", id);
UnityWebRequest www =
[Link]("[Link]
form);
48
yield return [Link]();
if ([Link] != [Link])
[Link]([Link]);
else
[Link]("Text sent!");
IEnumerator DeleteItem()
string id = [Link];
[Link]("ID", id)
UnityWebRequest www =
[Link]("[Link]
form);
if ([Link] != [Link])
49
[Link]([Link]);
else
[Link]("Text sent!");
[Link]
using [Link];
using [Link];
using UnityEngine;
using [Link];
using System;
using [Link];
using [Link];
using TMPro;
50
// Start is called before the first frame update
void Start()
StartCoroutine(GetRequest("[Link]
void Update()
switch ([Link])
51
{
case [Link]:
case [Link]:
break;
case [Link]:
break;
case [Link]:
if(users[i] != "")
52
imageString = userinfo[4];
[Link](Bytes);
[Link]();
[Link]([Link]);
[Link]<CartInfo>().[Link] = imgSprite;
[Link]<CartInfo>().[Link] = userinfo[0];
[Link]<CartInfo>().[Link] = userinfo[1];
[Link]<CartInfo>().[Link] = userinfo[2];
[Link]<CartInfo>().[Link] = userinfo[3];
53
break;
[Link]
using [Link];
using [Link];
using UnityEngine;
using [Link];
using TMPro;
void Start()
54
}
void Update()
[Link]
<?php
$ID = $_POST['ID'];
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "homemakerz";
// Create connection
// Check connection
if ($conn->connect_error)
55
}
$sql = "INSERT INTO cart (product_id, user_id, quantity) VALUES ('" . $ID . "', 1, 0)";
mysqli_query($conn, $sql);
$conn->close();
?>
[Link]
<?php
//Create connection
// Check connection
if ($conn->connect_error)
FROM products
56
JOIN cart
ON products.product_id = cart.product_id
if($result)
while($row = mysqli_fetch_assoc($result))
else
echo "ERROR!!!";
// Close connection
$conn->close();
?>
[Link]
<?php
57
// Get the item ID from the POST data
$ID = $_POST['ID'];
$Name = $_POST['Name'];
// Check connection
if ($conn->connect_error)
else
58
// Close the database connection
$conn->close();
?>
[Link]
using [Link];
using System;
using [Link];
using [Link];
using [Link];
using [Link];
59
using [Link];
using [Link];
namespace [Link]
void Start()
btn = GetComponent<Button>();
[Link](SelectObject);
void SelectObject()
[Link]=furniture;
60
Data [Link]
using System;
using [Link];
using [Link];
using UnityEngine;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace [Link]
get
if (instance == null)
instance = FindObjectOfType<DataHandler>();
61
return instance;
[Link]
using [Link];
using [Link];
using UnityEngine;
using [Link];
using [Link];
using [Link];
using [Link];
namespace [Link]
62
private List<ARRaycastHit> _hits = new List<ARRaycastHit>();
void Start()
void Update()
CrosshairCalculation();
touch = [Link](0);
return;
if (IsPointerOverUI(touch))
return;
63
if (_raycastManager.Raycast(ray, _hits))
[Link]=new Vector2([Link].x,[Link].y);
[Link](eventData,results);
return [Link]>0;
void CrosshairCalculation()
if (_raycastManager.Raycast(ray, _hits))
pose = _hits[0].pose;
[Link] = [Link];
64
[Link]=new Vector3(90,0,0);
Cost Identification:-
65
PM=3.0*(size)^*1.12
Tdev=2.5(63036.67)^0.35 Months
Tdev=119.6Months
In the testing part, the software will be tested on a different basis. Three testing
approaches will be used to check whether the software is working efficiently or not.
The three testing methodologies used are
1. Unit Testing
In this type of testing, each unit i.e. each function of the system will be
tested. This testing will be done at the time of development. If any error
occurs then it will be immediately resolved. In our case, some of the units
66
of our system are the registration form, login form, profile display, cart, AR
module etc. We test each of these units separately before integrating them.
2. Integration Testing
Combining multiple units of a system makes a module. A module is a
collection of code for related units. Here we will check whether the
software works efficiently after combining the unit. The modules in this
system will be the AR module, Account module, and Cart module. For instance,
we will integrate the product module with AR module to test the working.
3. System Testing
Here, we will check whether the entire system runs properly after
combining all the modules without any bugs. This testing will be done
after the development of the code. All the modules are integrated together and a
combined testing is done.
CHAPTER 6
RESULTS AND DISCUSSION
67
T01 Registration Check Name Name The field should The field Pass
Testing #1 field is receiving ABC accept only accepts proper
input or not proper name username
T02 Registration Check Email Email The field should The field Pass
Testing #2 field is receiving abc@[Link] accept only accepts proper
input or not email addresses email id
T03 Registration Check Contact Contact The field should The field Pass
Testing #3 Number Number accept only 10 accepts proper
field is receiving 9874563210 numbers contact
input or not
T04 Registration Check Username abc The field should The field Pass
Testing #4 Username accept only accepts proper
field is receiving proper name username
input or not
T05 Registration Check Password Password 12345 While the user The user enters Pass
Testing #5 field is receiving enters the password
input or not password, the and the field
field should shows
show characters characters as
as ‘*’ ‘*’
T06 Registration Check Username If the user enters The user enters Pass
Testing #6 username abc a username that username that
field is receiving already exists, a exists and a
input or not message should message is
be given displayed
“Username “Username
already exists” already exists”.
T07 Registration Check all fields Name If user fills all The user fills all Pass
Testing #7 are ABC the fields the fields
filled correctly correctly, the correctly, the
Email user should be user is
abc@[Link] registered registered
Contact
Number
9874563210
Username
abc
Password
12345
68
T08 Registration Check all fields Name If user doesn’t The user Pass
Testing #8 are filled ABC fill all the fields doesn’t fill all
correctly correctly, the the fields
Email user should not correctly, the
abc@gmail be registered user is not
registered and
Contact given proper
Number warning
987456
Username
abc
Password
12345
T09 Login Check Username abc The field should The field Pass
Testing #1 Username accept proper accepts proper
field is receiving username username
input or not
T10 Login Check Password Password 12345 While the user The user enters Pass
Testing #2 field is receiving enters the the password
input or not password, the and the field
field should shows
show characters as
characters as ‘*’
‘*’
T11 Login Check all fields Username If user fill all The user fills all Pass
Testing #3 are filled Testuser the fields the fields
correctly correctly, the correctly, the
Password user should be user is Logged
pass@123 Logged in in
T12 Login Check all fields Username If user fills any The user fills Pass
Testing #4 are filled Testuser of the fields any of the fields
correctly incorrectly, the incorrectly, the
Password user should not user is not
pass@1 be Logged in Logged in and
and given given proper
proper message. message
69
T13 Navigation Check whether Press Home The application The application Pass
Testing #1 the application icon button should display gives user more
performs proper more options options
navigation like account, account, FAQs,
FAQs, logout. logout
T14 Navigation Check whether Press Account The application The application Pass
Testing #2 the application icon button should take user takes user from
performs proper from home to home to profile
navigation profile
T15 Navigation Check whether Press FAQs icon The application The application Pass
Testing #3 the application button should take user takes user from
performs proper from home to home to FAQs
navigation FAQs webpage. webpage.
T16 Navigation Check whether Press Logout The application The application Pass
Testing #4 the application icon button should take user takes user from
performs proper from home to home to logout
navigation logout
T17 Navigation Check whether Press Cart Icon The application The application Pass
Testing #5 the application button should take user takes user from
performs proper from home to home to cart
navigation cart
T18 Navigation Check whether Press Search The application The application Pass
Testing #6 the application Icon button should take user takes user from
performs proper from home to home to search
navigation search
T19 Navigation Check whether Press Cart The application The application Pass
Testing #7 the application button in should take user takes user from
performs proper Account Page from Account to Account to Cart
navigation Cart
T20 Navigation Check whether Press My The application The application Pass
Testing #8 the application Orders button in should take user takes user from
performs proper Account Page from Account to Account to My
navigation My Orders
Orders
T21 Navigation Check whether Press Logout The application The application Pass
Testing #9 the application button in should take user takes user from
performs proper Account Page from Account to Account to
navigation Logout Logout
70
T22 Navigation Check whether Press Move to The application The application Pass
Testing #10 the application Checkout button should take user takes user from
performs proper in Cart from Cart to Cart to
navigation Page Checkout Checkout
T23 Navigation Check whether Press Pay Now The application The application Pass
Testing #11 the application button in should take user takes user from
performs proper Checkout Page from Checkout Checkout to
navigation to Payment
Payment
T24 Navigation Check whether Press My The application The application Pass
Testing #12 the application Orders button in should take user takes user from
performs proper Payment from Payment Payment to My
navigation Page to My Orders
Orders
T25 Products Check whether Press Product The application The application Pass
Display the application Tab button in should display displays all
Testing #1 shows all Home Page all products in products to user
products in the tab content
products tab
T26 Room Types Check whether Press Room Tab The application The application Pass
Display the application button in Home should display displays all
Testing #1 shows all rooms Page all available rooms to the
in rooms tab room types in user
the tab content
T27 Product Check whether Click on a The application The application Pass
Details the application Product in should display displays all
Display shows product Products Tab product details product details
Testing #1 details when a to the user
product is
clicked in the
products tab
T28 Room Check whether Click on a The application The application Fail
Details the application Room Type in should display does not display
Display shows room Rooms Tab all products any product
Testing #1 details when a available in that available in that
room type is particular room particular room
clicked in the type type to the user
room tab
71
T29 Room Check whether Click on a The application The application Pass
Details the application Room Type in should display displays all
Display shows room Rooms Tab all products products
Testing #1 details when a available in that available in that
room type is particular room particular room
clicked in the type type to the user
room tab
T30 Cart Testing Check whether Click on the The application The application Pass
#1 product can be Add to Cart should add the adds the
added to cart button in product to the product
product details cart. selected by user
page. to the cart.
T31 Cart Testing Check whether Click on the The application The application Pass
#2 cart displays Cart icon in the should display displays product
products added page products added added to the cart
to it to cart by the user
T32 Order Check whether Click on Move The application The application Pass
Testing #1 order summary to Checkout should display displays order
displays details button order summary summary of
of product added of added added products
products to the user
T33 Order Check whether Click on the My The application The application Pass
Testing #2 my orders page Orders Button should display displays details
displays product after payment details of of the product
details of all the products ordered by the
products ordered by the user
ordered by the user
user
T34 Payment Check whether Click on the Pay The application The application Pass
Testing #1 payment page Now button in should display displays QR
displays QR Order summary a QR code for code so that user
code to make page scan and pay can make
payment purpose payment
T35 ARCamera Check whether Click on Camera The application The application Pass
Testing #1 the camera icon in product should initialize initializes the
initializes on details page the camera on device camera
clicking the click
camera icon in
product details
page
72
T36 ARCamera Check whether Click on Camera The application The application Pass
Testing #2 the camera asks icon in product should ask for asks for user’s
for user’s details page user’s permission to
permission permission to use device
before use device camera
initialization camera
T37 AR Testing Check whether The camera The application The application Pass
#1 the plane is should not be should detect detects plane
detected facing obstacles planes automatically
automatically automatically
T38 AR Testing Check whether The camera The application The application Pass
#2 the marker should be on should show shows marker
appears marker after to the user
plane detection
T39 AR Testing Check whether The module The application The application Pass
#3 the models are should be on should show the shows models
available models to user
T40 AR Testing Check whether The module The application The application Pass
#4 the model can should be on should be able places model
be placed on the to place model selected by the
marker on the marker user on the
marker
T41 AR Testing Check whether The module The application The user of the Fail
#5 the model can should be on should be able application
be rotated to rotate the cannot rotate the
model rendered model as per
his/her choice
T42 AR Testing Check whether The module The application The user of the Pass
#6 the model can should be on should be able application can
be rotated to rotate the rotate the model
model rendered as per his/her
choice
73
6.2 User Documentation
For the user, this part provides a detailed explanation of how the software functions.
74
The user can see this screen as soon as
the application starts.
It provides two options, one to create
new account and one to login to an
existing account.
Clicking ‘Create New Account’ option
takes us to the create account page and
clicking ‘Login’ option takes us to the
login page
The create account page collects details when a user is new to the application.
The Create new account screen has name, email, contact number, username and password
fields.
The user is required to fill these fields to further use the application.
The ‘Finish’ button can be clicked once user has entered all the details to take the user to the
home screen.
75
The ‘Back’ button takes the user back to
the previous screen.
The login collects login details from the user who has already been registered.
The Login page has only two fields, namely, username and password.
The user is required to fill these fields correctly to further use the application.
The password and username must be correct.
The ‘Login button can be clicked to take the user to the home screen.
The ‘Back’ button takes the user back to the previous screen.
76
Cart
Search
77
This will be the home screen where the user can browse through a multiple number of
products.
The home screen has two main tabs, the products tab and the rooms tab. The products tab
displays a variety of products. The rooms tab displays multiple room options.
The home tab also provides a search option which is placed at the top right corner.
The user can also go to his cart directly by clicking on the cart icon in the top right corner of
the screen.
The top left corner has home icon which when click provides a number of options to go to
your profile, FAQs and logout.
78
When the user click on a particular room
type under rooms tab, the products
related that particular room appears.
The user
can go
through
these
products
and click
on it to
further
purchase
it.
79
Fig 6.2.6 Product Details Screen
The user can click on a product he wants to know details about. The screen then shows all the
details of the selected product like its name, price, description and image.
This screen also provides options to add product to cart, show cart and to place a product
using augmented reality a camera icon is provided.
80
Fig 6.2.7 Cart Screen
The cart screen displays the products and its details that the user has added to the cart. The
cart can be opened from both home screen as well as product description screen.
The ‘Move To Checkout’ button further directs the user to the next screen which shows the
order summary.
A delete icon is also provided for every product added to cart in case the user wants to delete
it from his cart
81
Fig 6.2.8 Checkout Screen
The Checkout screen displays the order summary of whatever products the user has added to
the cart.
The Pay Now button in this screen directs user to payment screen.
82
Fig 6.2.9 Payment Screen
The payment screen displays the QR code that the user can use to pay.
The ‘My Orders’ button displays the order history of the user.
83
Fig 6.2.10 Search Screen
The search button on the home screen can be used to navigate to the search panel.
The search enables users to browse through available product by using its name.
84
Fig 6.2.11 Profile Screen
85
` Fig 6.2.12 My Orders Screen
The user is directed to ‘My Orders’ page after payment. This page can also be access from
profile.
86
Fig 6.2.13 Camera Screen
The Camera icon when clicked from the product details page turns on the camera and asks for
permission.
87
Fig 6.2.14 AR Screen
When permission is granted, the camera turns on. You can now see the models and the
marker on the screen.
You can now simply select the product and click on the marker to place it.
88
Fig 6.2.15 FAQ Web Page
The FAQs (Frequently Asked Questions) webpage can be opened through the FAQ menu
icon.
The FAQs help user to better understand the functionality of an application.
89
Fig 6.2.16 Logout Screen
90
CHAPTER 7
CONCLUSIONS AND FUTURE WORK
7.1 Conclusion
The application provides each and every customer with plenty of furniture and room
decors up to their liking. Also, it provides with the section-based navigation which shows that
a particular product belongs to which room.
As the world is now focused on virtual reality and virtual world, this AR furniture
application also caught onto that trend. This application provides a functionality to the users
in which they can place their desired furniture or whichever product they want to place in
their room virtually and even if the user make movements the furniture remains static so the
user can actually go around the placed furniture to see it from all aspects. So, making it easy
for the user by placing the product in their space virtually explains how efficient and easy the
application is. It also helps user decide whether to buy it or not.
1. The products are uploaded and managed by the company itself no middlemen or Brands
could be found here as the product list is customized by same .
91
7.3 Future Scope of the System
AR and AI is the future of the world, so is the application. Since three to four years
AR and online-ecommerce applications has a good turnover as it is built in a way to attract
more and more customers and influence them to shop online. As providing the AR
functionality helps the customer to decide on their shopping it makes the app time-saving,
cost-efficient as a user doesn’t.
92
REFERENCES
Bibliography
Webliography
2. Augmented Reality (AR), with Examples and Uses. (2022, October 29). Investopedia.
[Link]
93
94