0% found this document useful (0 votes)
19 views94 pages

Augmented Reality in Interior Design App

The document outlines the development of a mobile application that utilizes augmented reality (AR) technology to enhance the furniture shopping experience by allowing users to visualize how items fit in their homes. It identifies key issues in the furniture industry, such as the inability to visualize products in real spaces and challenges in marketing, and proposes solutions through AR. The document also discusses existing technologies and applications, compares various development tools, and specifies requirements for creating a user-friendly and effective AR interior design application.

Uploaded by

omkargawas8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views94 pages

Augmented Reality in Interior Design App

The document outlines the development of a mobile application that utilizes augmented reality (AR) technology to enhance the furniture shopping experience by allowing users to visualize how items fit in their homes. It identifies key issues in the furniture industry, such as the inability to visualize products in real spaces and challenges in marketing, and proposes solutions through AR. The document also discusses existing technologies and applications, compares various development tools, and specifies requirements for creating a user-friendly and effective AR interior design application.

Uploaded by

omkargawas8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

CHAPTER 1

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.

Customers had a wonderful experience thanks to the execution of inserting replica


furniture as 3D objects into the physical environment. Google's ARCore package was applied
to achieve this goal.

1
1.3 Purpose, Scope, and Applicability

1.3.1 Purpose

The application will be utilized to give customers a novel shopping experience.


Before purchasing a piece of furniture, customers may examine how it will fit in their spaces.
Professionals and businesses involved in decorating would have another platform to market
their goods and services.

1.3.2 Scope

The project's results would be advantageous to professionals, decorative businesses,


and customers. Through the use of augmented reality technology, the AR Interior Design app
would engage customers, boosting the income of both specialists and decorative businesses.
The software could improve customer satisfaction and save time. The application could
increase the service providers' earnings.

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

2.1 Existing Systems


Our lives now inevitably involve technology. In today's fast-paced world, we simply
cannot imagine existing without technology. We cannot survive without the involvement of
technology when socialization, employment, and cultural transmission occur with
globalization. Additionally, the corona virus pandemic has shown how crucial technology is
to our ability to stay in touch, function, communicate, and, in general, survive.
The HomeMakerz will provide a platform to redecorate the house at your own
comfort with just a click. It gives the visual idea of how a house will look once it’s
refurbished. The manual labor of going to stores and choosing furniture and decorative while
imagining if it will look good in a particular position of the house is tedious. The
HomeMakerz makes this tedious job an easy one.
Following are some similar apps:
 Houzz :
It's a comprehensive app that can be used to find experts, shop for materials,
or get ideas. You can see how various decor items would look in your room
using its augmented reality feature, "View in My Room 3D."
 IKEA Place :
Place is an augmented reality application from IKEA. It allows you to insert a
digital representation of a piece of furniture into a view of your room, similar
to Houzz. The models accurately depict how they would appear in a particular
space in terms of scale and color.
 MagicPlan :
MagicPlan is an interior designing application. MagicPlan only requires that
you tell it where the corners are before moving it around the space. It will then
generate a surprisingly accurate layout of the area, which will aid you in
deciding what will fit.

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.

 Visual Studio Code


Microsoft created Visual Studio Code, also known as VS Code, a source-code editor
for Windows, Linux, and macOS. Debugging support, syntax highlighting, intelligent
code completion, snippets, code refactoring, and embedded Git are among the
features.

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

Comparative study between Unity, Unreal Engine and Cryengine

Table 2.3.1 Comparative study between Unreal Engine, Cryengine and Unity

Criteria Unreal Engine Cryengine Unity


Ease of use Hard to learn. Steep learning Easy to learn as it has
curve. an intuitive interface.
Language It uses C++ It uses C++ It uses C# or
supported JavaScript
Asset Store It has around 10000 Very small asset Unity has a wide range
assets. store and collection. of mods. It has around
31000 assets.
Rendering High quality by It is on par with unreal Efficient/moderate
Capabilities default. Performance engine. quality by default.
may suffer for mobile High quality is
devices without attainable with greater
optimization effort.
Community It has a smaller It has a smaller It has a large
community as community as community which
compared to Unity. compared to Unity. consists of around
210K members.

6
Comparative study between Visual Studio Code, Sublime Text and Atom

Table 2.3.2 Comparative study between Visual Studio, Sublime Text and Atom

Criteria Visual Studio Code Sublime Text Atom


Cross-platform It was developed by It runs on the Atom runs on a
Microsoft for Windows, Mac and number of platforms
Windows, Linux and Linux operating but it requires more
macOS systems but there’s configuration to turn
no git integration. it into an IDE.
Pricing VSCode is Free to The sublime text Atom is also free to
use demands some fee use

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

Table 2.3.3 Comparative study between ARCore and ARKit

Criteria ARCore ARKit


Compatibility ARCore is compatible with iOS ARKit is only compatible
and Android. with the iOS platform. The
ARKit is a development kit
for iOS applications
Unique Features ARCore offer equivalent results ARKit provides developers
and capabilities in lighting with color temperature and
estimation. ARCore provides a intensity
shader or pixel intensity value.
Mapping ARCore tracks more feature ARKit lacks in mapping a
points. scene in a larger area.
Hardware requirements ARCore performs better ARKit may need a
because it supports many specialized camera or a
existing devices, eliminating sensor.
the need for specific hardware

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.

2. Visual Studio Code

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.

Why Visual Studio Code?

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:

1. Motion tracking : It is made possible by ARCore by lining up your 3D content's


virtual 3D camera with the device's camera (you will be asked to turn on camera
permission).

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

3.1 Problem Definition


The AR based Interior Designing applications are now becoming common but the
perfect software doesn’t exist. The aim of this project is to find solutions to the problems in
existing similar software and create a much more stable and reliable application.

The problems are :

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.

2. Security Issues and Privacy Issues

There are chances of using the software with malicious intent. There is a legitimate
chance of doing so.

3. Poor Content Quality

The quality of content used in the AR might have poor quality. This is mainly
because the AR is still developing.

4. Real Objects occlude with Virtual Objects

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.

The requirement specifications are as follows:

1. User friendly
2. Placing objects
3. Compatibility
4. AR Ruler
5. Object Modification
6. Photorealistic Rendering

1. User Friendly :

Though a lot of software provide great Augmented experience, most of them


are not user friendly. The users who are not accustomed to technical things
might find it a bit difficult to first understand the working of the software.

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.

What is 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

Fig 3.3.1 Gantt Chart (1)

16
Fig 3.3.2 Gantt Chart (2)

Fig 3.3.3 Gantt Chart (3)

17
Fig 3.3.4 Gantt Chart (4)

Fig 3.3.5 Gantt Chart (5)

Fig 3.3.6 Gantt Chart (6)

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.

Fig 3.3.7 Network Diagram (1)

Fig 3.3.8 Network Diagram (2)

19
Fig 3.3.9 Network Diagram (3)

Fig 3.3.10 Network Diagram (4)

20
Fig 3.3.11 Network Diagram (5)

Fig 3.3.12 Network Diagram (6)

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

3.5 Preliminary Product Description


The main objective of the software is to provide immersive buying experience to the
customers. Using this software, the user can effortlessly find the right furniture or paint color
for their home. The software provides augmented reality as its main feature so that the user
can get a real time experience of what a particular product will look like in the house. This
software is perfect for people who don’t want the tedious job of going to shops and selecting
things while imagining if it suit the house.

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.

Fig. 3.6 : Flowchart

24
CHAPTER 4

SYSTEM DESIGN

4.1 Basic Modules


Following are the basic modules in the system :

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

4.2.1 Schema Design

The schema is described in this case using an ER diagram. An entity-relationship


model (or ER model) describes how various topics of interest relate to one another in a
particular field of knowledge. Entity types (which categorize the objects of interest) and
relationships between entities are the basic building blocks of an ER model (instances of
those entity types).

Fig 4.2.1 : ER Diagram

26
4.2.2 Data Integrity and Constraints

1. User Table

Table [Link] User Table


Attributes Data Type Constraints
user_id Integer Primary key
name Varchar Not null
email Varchar Not null
contact Bigint Not null
username Varchar Not null
password Varchar Not null

2. Rooms Table

Table [Link] Rooms Table


Attributes Data Type Constraints
room_id Integer Primary key
room_name Varchar Not null
image Longblob Not null

3. Product Table

Table [Link] Product Table


Attributes Data Type Constraints
product_id Integer Primary key
product_name Integer Not null
description Varchar Not null
image Integer Not null
price Integer Not null

27
4. Room_Products Table

Table [Link] Room_Prodcuts Table

Attributes Data Type Constraints


id Integer Primary key
room_id Integer Foreign key
product_id Integer Foreign key

5. Cart Table

Table [Link] Cart Table

Attributes Data Type Constraints


cart_id Integer Primary key
product_id Integer Foreign key
user_id Integer Foreign key
quantity Integer Not null

6. Order Table

Table [Link] Order Table

Attributes Data Type Constraints


id Integer Primary key
user_id Integer Foreign key
cart_id Integer Foreign key

28
4.3 Procedural Design

4.3.1 Logic Diagram

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)

Fig 4.3.1 : Activity Diagram

29
4.3.2 Algorithm Design

Step 1: Start

Step 2: Sign in/Sign up by entering the details

Step 3 : Search the product that you wish to buy

Step 4 : View the product

Step 5 : Use AR and place the product according to requirements

Step 6 : Add to cart if interested

Step 7 : Proceed to buy the product if interested.

Step 8 : Make payment

Step 9 : Log Out

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.

Fig 4.4 : Use Case Diagram

4.5 Security Issues


31
The following are a few security concerns:

1. Malware

Through advertising, AR hackers can insert harmful content into applications.


Unaware users may click on ads that take them to hostage websites or AR servers
that are infected with malware and host unreliable visuals, undermining the security
of AR.

2. Stealing network credentials

On Android-powered wearables, thieves may steal network credentials. Hacking may


be a security risk for retailers who use augmented reality and virtual reality shopping
apps. Many customers have already entered their card information and mobile
payment methods into their user profiles. Given how easy it is to use mobile
payment, hackers may be able to access these and silently drain accounts.

3. Ransomware

A user's augmented reality device could be hacked, allowing criminals to observe


how they behave and interact with the environment. They might then threaten to leak
these recordings to the public if the user doesn't pay a ransom.

4.6 Test Cases Design:

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.

Table 4.6.1 Test Cases Design

Test ID Test Cases Input Expected Output

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

T40 AR Testing #4 The module should be The application should be able to


on place model on the marker

T41 AR Testing #5 The module should be The application should be able to


on rotate the model rendered

T42 AR Testing #6 The module should be The application should be able to


on rotate the model rendered

CHAPTER 5
IMPLEMENTATION AND TESTING

5.1. Implementation Approaches

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.

This app is made up of two main modules:-

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.

5.2 Coding Details and Code Efficiency

5.2.1 Coding Details

Following are C# codes for account creation, login and logout

[Link]

37
using [Link];

using [Link];

using UnityEngine;

using [Link];

using [Link];

using TMPro;

using [Link];

public class Account : MonoBehaviour

public static Account instance;

public TMP_InputField accountName;

public TMP_InputField accountEmail;

public TMP_InputField accountContact;

public TMP_InputField accountUserName;

public TMP_InputField accountPassword;

public TMP_Text info;

public string currentUsername;

private string ukey = "accountusername" ;

void Start()

instance = this;

DontDestroyOnLoad([Link]);

currentUsername = "";

38
if([Link](ukey))

if([Link](ukey) != "")

currentUsername = [Link](ukey);

[Link] = "You are logged in as " + currentUsername;

else

[Link] = "You are not logged in";

else

[Link] = "You are not logged in";

public void AccountLogout()

currentUsername = "";

[Link](ukey, currentUsername);

//[Link] = "You are just logged out";

[Link]("Initial");

39
}

public void AccountRegister()

string Name = [Link];

string Email = [Link];

string Contact = [Link];

string uName = [Link];

string pWord = [Link];

StartCoroutine(RegisterNewAccount(Name, Email, Contact, uName, pWord));

public void AccountLogin()

string uName = [Link];

string pWord = [Link];

StartCoroutine(LoginAccount(uName, pWord));

public IEnumerator RegisterNewAccount(string Name, string Email, string Contact, string


uName, string pWord)

WWWForm form = new WWWForm();

[Link]("loginName", Name);

[Link]("loginEmail", Email);

40
[Link]("loginContact", Contact);

[Link]("loginUser", uName);

[Link]("loginPass", pWord);

using (UnityWebRequest www =


[Link]("[Link] form))

[Link] = new DownloadHandlerBuffer();

yield return [Link]();

if ([Link] != [Link])

[Link]([Link]);

else

string responseText = [Link];

[Link]("Response = " + responseText);

//[Link] = "Response = " + responseText;

public IEnumerator LoginAccount(string uName, string pWord)

WWWForm form = new WWWForm();

41
[Link]("loginUser", uName);

[Link]("loginPass", pWord);

using (UnityWebRequest www =


[Link]("[Link] form))

[Link] = new DownloadHandlerBuffer();

yield return [Link]();

if ([Link] != [Link])

[Link]([Link]);

else

string responseText = [Link];

if(responseText == "1")

[Link](ukey, uName);

//[Link] = "Login success with username " + uName;

[Link]("Home");

else

[Link] = "Login failed";

42
}

[Link]

<?php

$servername = "localhost";

$username = "root";

$password = "";

$dbname = "homemakerz";

//variables submitted by user

$loginName = $_POST["loginName"];

$loginEmail = $_POST["loginEmail"];

$loginContact = $_POST["loginContact"];

$loginUser = $_POST["loginUser"];

$loginPass = $_POST["loginPass"];

// Create connection

$conn = new mysqli($servername, $username, $password, $dbname);

// 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)

//tell user that the name is already taken

echo "Username is already taken";

else

echo "Creating user...";

//insert the user and password into the database

$sql2 = "INSERT INTO users (name, email, contact, username, password) VALUES ('" .
$loginName . "','" . $loginEmail . "','" . $loginContact . "','" . $loginUser . "', '" . $loginPass .
"')";

if ($conn->query($sql2) === TRUE)

echo "New record created successfully";

44
else

echo "Error: " . $sql2 . "<br>" . $conn->error;

//close connection

$conn->close();

?>

[Link]

<?php

$servername = "localhost";

$username = "root";

$password = "";

$dbname = "homemakerz";

//variables submitted by user

$loginUser = $_POST["loginUser"];

$loginPass = $_POST["loginPass"];

// Create connection

$conn = new mysqli($servername, $username, $password, $dbname);

45
// Check connection

if ($conn->connect_error)

die("Connection failed: " . $conn->connect_error);

$sql = "SELECT password FROM users WHERE username = '" . $loginUser . "'";

$result = $conn->query($sql);

if ($result->num_rows > 0)

// output data of each row

while($row = $result->fetch_assoc())

if($row["password"] == $loginPass)

echo 1;

else

echo 0;

46
}

else

echo "Username does not exist";

//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

public TMP_Text pid;

public void AddtoCart()

StartCoroutine(AddItem());

public void DeleteFromCart()

StartCoroutine(DeleteItem());

IEnumerator AddItem()

string id = [Link];

WWWForm form = new WWWForm();

[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];

WWWForm form = new WWWForm();

[Link]("ID", id)

UnityWebRequest www =
[Link]("[Link]
form);

yield return [Link]();

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;

public class CartDB : MonoBehaviour

public GameObject UserInfoContainer;

public GameObject UserInfoTemplate;

string imageString = "";

50
// Start is called before the first frame update

void Start()

StartCoroutine(GetRequest("[Link]

// Update is called once per frame

void Update()

IEnumerator GetRequest(string uri)

using (UnityWebRequest webRequest = [Link](uri))

// Request and wait for the desired page.

yield return [Link]();

string[] pages = [Link]('/');

int page = [Link] - 1;

switch ([Link])

51
{

case [Link]:

case [Link]:

[Link](pages[page] + ": Error: " + [Link]);

break;

case [Link]:

[Link](pages[page] + ": HTTP Error: " + [Link]);

break;

case [Link]:

//[Link](pages[page] + ":\nReceived: " +


[Link]);

string rawresponse = [Link];

string[] users = [Link]('*');

for(int i = 0; i < [Link]; i++)

//[Link]("Current data: " + users[i]);

if(users[i] != "")

string[] userinfo = users[i].Split(',');

[Link]("ProductID: " + userinfo[0] + "ProductName: " + userinfo[1] +


"Price : " + userinfo[2] + "Quantity : " + userinfo[3]);

52
imageString = userinfo[4];

byte[] Bytes = [Link].FromBase64String(imageString);

Texture2D texture = new Texture2D(1,1);

[Link](Bytes);

[Link]();

GameObject gobj = (GameObject)Instantiate(UserInfoTemplate);

[Link]([Link]);

Sprite imgSprite = [Link](texture, new Rect(0, 0, [Link],


[Link]), new Vector2(0.5f, 0.5f));

[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;

public class CartInfo : MonoBehaviour

public TMP_Text productName;

public TMP_Text quantity;

public TMP_Text price;

public TMP_Text id;

public Image image;

// Start is called before the first frame update

void Start()

54
}

// Update is called once per frame

void Update()

[Link]

<?php

$ID = $_POST['ID'];

$servername = "localhost";

$username = "root";

$password = "";

$dbname = "homemakerz";

// Create connection

$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection

if ($conn->connect_error)

die("Connection failed: " . $conn->connect_error);

55
}

$sql = "INSERT INTO cart (product_id, user_id, quantity) VALUES ('" . $ID . "', 1, 0)";

mysqli_query($conn, $sql);

// Close the database connection

$conn->close();

?>

[Link]

<?php

//Create connection

$conn = mysqli_connect("localhost", "root", "", "homemakerz");

// Check connection

if ($conn->connect_error)

die("Connection failed: " . $conn->connect_error);

$sql = "SELECT products.product_id, products.product_name, [Link], [Link],


[Link]

FROM products

56
JOIN cart

ON products.product_id = cart.product_id

WHERE cart.user_id = 1";

$result = mysqli_query($conn, $sql);

if($result)

while($row = mysqli_fetch_assoc($result))

echo $row["product_id"] . "," . $row["product_name"] . "," . $row["price"] ."," .


$row["quantity"] . "," . base64_encode($row["image"]) . "*" ;

else

echo "ERROR!!!";

// Close connection

$conn->close();

?>

[Link]

<?php

57
// Get the item ID from the POST data

$ID = $_POST['ID'];

$Name = $_POST['Name'];

// Connect to the database

$conn = mysqli_connect("localhost", "root", "", "homemakerz");

// Check connection

if ($conn->connect_error)

die("Connection failed: " . $conn->connect_error);

// Delete the item from the cart table

$sql = "DELETE FROM cart WHERE product_id = '$ID'";

if ($conn->query($sql) === TRUE)

echo "Item deleted successfully";

else

echo "Error deleting item: " . $conn->error;

58
// Close the database connection

$conn->close();

?>

Following codes are for the AR functionality :

[Link]

using [Link];

using System;

using [Link];

using [Link];

using [Link];

using [Link];

59
using [Link];

using [Link];

namespace [Link]

public class ButtonManager : MonoBehaviour

private Button btn;

public GameObject furniture;

// Start is called before the first frame update

void Start()

btn = GetComponent<Button>();

[Link](SelectObject);

// Update is called once per frame

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]

public class DataHandler : MonoBehaviour

public GameObject furniture;

private static DataHandler instance;

public static DataHandler Instance

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]

public class InputManager : MonoBehaviour

[SerializeField] private Camera arCam;

[SerializeField] private ARRaycastManager _raycastManager;

[SerializeField] private GameObject crosshair;

62
private List<ARRaycastHit> _hits = new List<ARRaycastHit>();

private Touch touch;

private Pose pose;

// Start is called before the first frame update

void Start()

// Update is called once per frame

void Update()

CrosshairCalculation();

touch = [Link](0);

if ([Link]<0 || [Link] != [Link])

return;

if (IsPointerOverUI(touch))

return;

Ray ray = [Link]([Link]);

63
if (_raycastManager.Raycast(ray, _hits))

Pose pose = _hits[0].pose;

Instantiate([Link], [Link], [Link]);

bool IsPointerOverUI(Touch touch)

PointerEventData eventData = new PointerEventData([Link]);

[Link]=new Vector2([Link].x,[Link].y);

List<RaycastResult> results=new List<RaycastResult>();

[Link](eventData,results);

return [Link]>0;

void CrosshairCalculation()

Vector3 origin= [Link](new Vector3(0.5f,0.5f,0));

Ray ray = [Link](origin);

if (_raycastManager.Raycast(ray, _hits))

pose = _hits[0].pose;

[Link] = [Link];

64
[Link]=new Vector3(90,0,0);

5.2.2 Code Efficiency

This project is made up of 4k lines of code. As Unity Engine is dedicated to


programmers & developers it consists of built-in functions and components, making the app
efficient even for beginners. These functionalities provided us help in reducing the lines of
codes. It is a Semidetached software as per COCOMO-II model.

Cost Identification:-

Percentile and Month (PM)

65
PM=3.0*(size)^*1.12

The COST is = 3.0*(4kloc)^*1.2

The result is 63036.67 PM

Estimation of Development Time:

Tdev =2.5(Effort)0.35 Months

Tdev=2.5(63036.67)^0.35 Months

Tdev=119.6Months

5.3 Testing Approach

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

6.1 Tests Reports


Table 6.1 Test Report Table
Test Test Cases Test Input Expected Actual Output Result
ID Description Output

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

Fig 6.2.1 First Screen

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.

Fig 6.2.2 Create account 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

Fig 6.2.3 Login screen

Fig 6.2.4 Home Screen

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.

Fig 6.2.5 Room Screen

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

The profile screen can be used to


navigate to the cart, orders and logout
screen of the user.

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

The Logout screen can be used to log out of the account.


The user can go to this screen by clicking on the logout icon on home page or else using log
out button in the profile page.

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.

7.2 Limitations of the System

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 .

2. Older versions of android will not be supported with the AR feature.

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.

The AR Furniture application is built by focusing on customer efficiency making it a


liable application so that without any barriers or money they can just know about their own
spaces and decide on suitable products without any middlemen commission or travelling cost.
This defines the scope of the Application.

92
REFERENCES

Bibliography

1. Unity from Zero to Proficiency by Patrick Felicia

2. Programming C# 8.0 (O’Reilly)

3. MySQL : The Complete Reference by Vikram Vaswani

Webliography

1. Technologies, U. (n.d.). Unity - Manual: Unity User Manual 2021.3 (LTS).


Unity - Manual: Unity User Manual 2021.3 (LTS).
[Link]

2. Augmented Reality (AR), with Examples and Uses. (2022, October 29). Investopedia.
[Link]

3. How to create an Augmented Reality App. (2018, February 10). YouTube.


[Link]

4. Technologies, U. (n.d.). Architecture, Engineering & Construction. Unity.


[Link]

5. SQL UPDATE with JOIN - javatpoint. (n.d.). [Link]


[Link]

93
94

You might also like