You are on page 1of 48

Monir Uz Zaman

BUILDING AN ANDROID E-COMMERCE APPLICATION “DAILYSHOP”


Building an Android E-Commerce Application “Dailyshop”

Monir Uz Zaman
Bachelor’s Thesis
Spring 2021
Information Technology
Oulu University of Applied Sciences
ABSTRACT

Oulu University of Applied Sciences


Information Technology

Author: Monir Uz Zaman


Title of the bachelor’s thesis: Building and Android E-Commerce Application. “DailyShop.”
Supervisor: Veijo Väisänen and Timo Vainio.
Term and year of completion: Spring 2021 Number of pages: 48

In today's covid world e-commerce platform plays a significant role in humans' life. We need to
develop and improve existing technology continuously. This thesis report aims to understand the
significance this e-commerce platform provides for safer aspects of human life. This document
describes the gradual instruction and findings of the application which has been developed.

This study aims to make us understand the intensity of the current world situation and consider
how to use technology as much as possible to make our daily life hassle-free and how to cope with
any natural disaster. Technology has become a part of our everyday life even without any
emergency. Now it is time for us to learn how to use these technologies with their full potential.
"DailyShop" is a kind of application that will be a great help for any country considering the current
pandemic situation.

This is an android mobile e-commerce application, which is developed with a P2P business model.
It has been designed with the android studio IDE, Java programming language, and Firebase as a
back end. With this application, people can easily purchase the necessary daily products from their
nearest Super Shops. The purchased products will be delivered to them contactless. This platform
connects customers, sellers, and couriers along with their actions. Hence from this study, we can
see that a demo Android application has been created for this zero hour of our life.

---------------------------------------------------------------------------------------------------------

Keywords: E-commerce, P2P, Android application, IDE, Java Programming

3
CONTENTS

1 INTRODUCTION 7
2 DAILYSHOP 9
2.1 Dailyshop Operation Center 9
2.2 Seller 9
2.3 Courier 9
2.4 Consumer 9
3 BRIEF HISTORY OF ANDROID 10
4 TECHNOLOGIES 11
4.1 Android Studio 11
4.1.1 Layout Editor 11
4.1.2 Templates 13
4.1.3 Support Kotlin 14
4.1.4 Integrated Firebase 14
4.1.5 Emulator 14
4.2 Java Programming Language 14
4.3 Firebase 15
4.4 Google Map API 17
4.5 Xml (Extensible Markup Language) 18
5 BUSINESS STRUCTURE 21
6 REQUIREMENTS 22
6.1 System Feature 22
6.1.1 Description of The Application 22
6.1.2 Registration and Log-In 22
6.1.3 Shop List 22
6.1.4 Product Category 22
6.1.5 Product List 23
6.1.6 Confirm Order 23

4
6.2 High-Level Architecture 23
6.3 Use Case Diagram 24
7 IMPLEMENTATIONS 25
7.1 User Interface 25
7.1.1 Registration 25
7.1.2 Log In 26
7.1.3 Super Shop List 27
7.1.4 Product Category 27
7.1.5 Products 28
7.1.6 Confirm Order 29
7.1.7 Payment Page 31
7.1.8 Notification 32
7.1.9 User Location 33
7.2 Registration Page Code Explanation 34
7.3 Creating register instance 35
7.4 Payment Method 36
7.4.1 Creating A Payment Intent 36
7.4.2 Building A Check-Out Page on The Client-Side 37
7.4.3 Creating A Payment Form 37
7.4.4 Fetching A Payment Intent 38
7.4.5 Collecting Payment Details 39
7.4.6 Finishing The Payment 39
7.4.7 Handling Stripe Response 40
8 TESTING (STRATEGY) 41
8.1 Black-Box Testing 41
8.2 Unit Testing 41
8.3 Integration Testing 41
8.4 TEST PLAN 42
9 CONCLUSION 46
REFERENCES 47

5
ABBREVIATIONS

API Application Programming Interface

APK Android Application Package

IDE Integrated Development Environment

OS Operating System

P2P Peer to Peer

SDK Software Development Kit

UI User Interface

XML Extensive Markup Language

6
1 INTRODUCTION

Technology has made the daily life of people easier. It has also opened many options during the
emergencies like a pandemic, natural disaster, etc. Internet is a part of technology which has
become the most important aspect in our life these days. Surfing through the internet became
essential in daily life for most of the people on Earth. According to (www.statista.com), in January
2021, there were 4.66 billion (59.5 percent of the global population), active users worldwide.
Because of easy access to the internet, ordering foods or products online gained its value
throughout time. There are two means of online shopping, one is the website, and another is
through the mobile application. [Johnson. J. 2021, statista, Data retrieved on 1st of May 2021.]

Since early 2020, the world is going through a rough patch, which people have never seen since
the World War II. Now this pandemic is the most concerned topic in the whole world. Everyday
life has been interrupted worldwide. People are still trying to be safe and continue their daily life.
But to fight this epidemic, almost every country is imposing lockdown and curfew. Even people
cannot lead an everyday life these days, and everyone still needs to buy necessary products like
groceries, foods, household products, etc.

Due to the pandemic outbreak, more people are stuck at home either because of sickness. A
demanding situation has been created for delivery services. Since going out for dining and
shopping is no longer a safe option, consumers turn to delivery services for treating themselves
during the days of social distancing. Many delivery services such as Amazon, eBay, AliExpress,
Wolt, Foodora, and UberEATS have responded to the crisis by expanding their services and
introducing contactless delivery options to eliminate the risk of spreading the virus between the
customer and courier.

Depending on this situation, this current project has started to develop. The project is called
"DailyShop." It is an Android based e-commerce mobile application. This application is currently
in development. It will help both consumers and employees of the super shops stay safe during
this global pandemic and maintain social distancing to reduce the spread of the virus.

There are two systems in how the e-commerce application runs its operation. Many e-commerce
applications/ companies have their product and own logistics, and they have their existing

7
consumers. This application runs their business by producing the products by themselves or
purchased from a few specific companies. They advertise the products under their company
banner. The second system is, e-commerce company works as a third party, where they
introduce the product seller and the consumers in a single platform. In this system, they charge
some commission from either the product seller or the consumers or both.

8
2 DAILYSHOP

The application "DailyShop" is being developed to run with the second business structure. With
this application, consumers can order their daily household necessary product from the super
shops without going out of their house. It is a simple platform where it only requires a few clicks to
get the work done. Even older people will be able to use this application because of its user-
friendly and simple UI. This application runs its operation with four different parts with four other
parties.

2.1 Dailyshop Operation Center

The personals from the operation center will manage and coordinate all the operations. They are
responsible for providing customer support to all three parties. There might be one or multiple
field offices to run the process, but they must provide the support all the time virtually.

2.2 Seller

Sellers refer to the local super shops of the operation area. The sellers will provide the list of the
products to the operation center. They are responsible for organizing the order and deliver to the
courier.

2.3 Courier

A group of people will work as a courier, who will get the consumers' order through the
application via push notification, and they will have the option to choose or decline the order. If
they decide on the order, they must visit the notified super shop to pick the products after a
certain period. Following that process, the system will inform them of the customer's address and
see the direction with the embedded Google Maps with the application.

2.4 Consumer

The consumer will be able to browse and order the products of the selected super shops. Once
they choose the products and finish the payment, the system will notify them with an approximate
time frame of product arrival. The delivery shall be contactless so that every party stays safe
during this type of pandemic.
9
3 BRIEF HISTORY OF ANDROID

Smartphones and all the applications which runs through smartphones made our life easier.
October 2003 is the foundation period of Android in Palo Alto, California, by its four founding
members, Rich Miner, Nick Sears, Chris White, and Andy Rubin. In the beginning, the OS was
developed for digital cameras, but only with a digital camera. It was tough to stay in the market,
so android OS was shifted towards the mobile phone. In 2005 the original company was acquired
by Google. This OS was developed based on Linux, so it was offered to the phone companies for
free, but the other services were included with fees, such as applications. In September 2008, the
first Android smartphone came to market, called T-Mobile G1 or HTC Dream. Although that first
phone did not get much success in the market, it was the start. Now Android is the most popular
OS for smartphones in the market. Among many competitors, Symbian, BlackBerry, Windows
phones that came available to the people. Only Apple's IOS is the only OS that is still competing
with Android. Right now, about 75% market share is under Android. On the 8th of September
2020, the 11th version of Android was launched. [Callaham. J. ANDROID AUTHORITY, 2021,
Data retrieved on 4th of May 2021.]

10
4 TECHNOLOGIES

There are more than 2.56 million Android applications available in the Google play store. Java
programming language or Kotlin are used to develop all the Android applications. To create the
application mentioned above, "DailyShop," Android Studio as IDE, has been used, which was
developed by Google. The developer also can use other cross-platform IDE like Visual Studio-
Xamarin, PhoneGap, Corona, etc. This focused application has been developed as a native
Android application with Java programming language, along with Firebase as database and
Google map API. The thesis will consist of a short history and brief functionalities and methods of
the technologies being used during the development of this app.

4.1 Android Studio

This IDE was first released in December 2014. At that time version, 1.0 was released. A few days
earlier, version 4.2 was released. Android studio has been developed by Google and JetBrains. It
can be operated in multiple Operating systems, like Windows, macOS, Linux, Chrome OS. Java,
Kotlin, C++ are the programming language which commonly used to develop applications with
this IDE. The installation package and brief installation instructions can be found on the Google
authorized Android studio developer site. Currently, version 4.2 of Android Studio is available for
developers. Android Studio is embedded with multiple features such as Layout editor, Templets,
Support Kotlin, Integrated Firebase, Emulator, etc.

4.1.1 Layout Editor

While developing an application, developers can use direct code to design the layout of the
application or use a custom layout format from the layout editor feature of Android studio. Multiple
features inside the layout editor are being used by the developer to design project layout design.
Layout editors contain the following components, palette, component tree, design editor, toolbar,
attributes.

11
FIGURE 1. Android Studio Layout editor view. [Neil. 2016. Techotopia. A guide to Android Studio
Designer Tool. Image retrieved on 8th of May 2021.]

4.1.1.1 Palette

Palette provides different view features which have been developed by the Android developer
team for the Android developers to make the process easier. Additional options can be dragged
in the palette while doing a project to reduce the time, which is already custom build inside the
Android studio.

12
4.1.1.2 Component Tree

Android studio provides a set of class systems or hierarchies through the component tree.
Different view components from the palette can be dragged to the component tree, and
developers can redesign the layout according to their project necessity.

4.1.1.3 Design Editor

The design editor provides a view of the combined layout blueprint of the project, what a
developer does within a layout editor. This part is considered an essential part of the layout
editor. A developer can assess the partial or wholly done layout design through a design editor.

4.1.1.4 Toolbar

The toolbar provides a vast range of small but significant features for the developers. It helps the
developer calibrate and change the layout attributes of the application. Furthermore, it also has a
zooming and size-changing option for the display to inspect the work progress as expected or
not.

4.1.1.5 Attributes

Attributes are considered component resources of a project’s layout. The main functions of the
attributes are to show the view of the features of the components.

4.1.2 Templates

Built-in templates of Android Studio help a developer to make the project more quickly and
efficiently. It saves a lot of time if the developer knows what to design in the project.

13
4.1.3 Support Kotlin

Android Studio now supports Kotlin, a relatively new programming language. It is like Java and
easier for the developer. Kotlin has been built based on the Java programming language.

4.1.4 Integrated Firebase

Firebase is a built-in back-end system that can be easily used in IoT-based projects. It gives
server support to the developer. The developer does not need to create a different server system
in the back end while developing a demo or full-scale application.

4.1.5 Emulator

The emulator is an essential feature of Android studio. It helps to create an exact Android device
environment to help to test the ongoing process. While developing the project or after the project
is done, the developer can inspect the project's functionalities and appearance through the
emulator. It also can be called the virtual testing tools inside the Android studio.

4.2 Java Programming Language

Java programming language was created by James Gosling, Mike Sheridan, and Patrick
Naughton in 1995. The project was initiated in 1991 by them, and a team called sun engineers,
later the team/company known as Sun Microsystem. Initially, it was developed for television, but it
was not suitable for televisions. It was more advance technology for the television industry at that
time. So, it was started to develop for implementation on the digital devices. Currently, Java is
being used for developing Internet programming, mobile devices, games, etc.

Java became the most famous and reliable programming language for digital devices, especially
for Android devices.

14
So far 12 versions of Java have been released till now. The latest version of Java is called “Java
SE 10”. Java is a vast and multi-functional programming language, which cannot be described in
short. But many features of Java can explain Java's significance in the programming world.

Java programming is elementary and easy to programmer those who already know C++. Java
syntax is based on C++.

FIGURE 2. Example of the very first java code for the programmer. [W3Schools. Java Tutorial.
Data retrieved on 8th of May 2021.]

4.3 Firebase

Firebase is a mobile application development platform, which is owned by Google. Firebase was
designed and created by James templon and Andrew Lee by the company name "Envolve" in
2011. Initially, they developed Firebase as a chat application that multiple gaming companies
used to store their game states. But currently, it has multifunction in the application development
world. It helps developers to develop and continuously improve their applications. Firebase is not
only a platform but also considered as a toolset, which provides multiple services to the
developers, like analytics, database, identity authentication file storage, etc.

Firebase is popular among the developer using it as a back-end server. Before, developers used
to make every back-end server by manual codding. Still, after Firebase, it became more
accessible for the developer to maintain and improve their application without worrying about
back-end development. The below picture is shown how Firebase is working considering the
traditional back-end services/development.

15
FIGURE 3. Difference between Traditional and Firebase back-end process. [Stevenson. D. What
is Firebase? The complete story, abridged. 2018. Data retrieved on 9th of May 2021.]

Currently, Firebase is providing multiple services to the developers. Day by day, it includes vari-
ous development services—Firebase suite presently providing at least 17 services shown in the
below picture.

16
FIGURE 4. Firebase suite services. [Stevenson. D. What is Firebase? The complete story,
abridged. 2018. Data retrieved on 9th of May 2021.]

Firebase services are currently being used in few application development platforms such as
Android, iOS, etc. But they are also providing services for web, Flutter, Unity, and C++ develop-
ment.

[Stevenson. D. What is Firebase? The complete story, abridged. 2018. Data retrieved on 9th of
May 2021.]

4.4 Google Map API

Google map API is an open-source mapping system provided by Google for multifunctionality. It
has been developed for different applications and services. A lot of companies or application is
using multiple services provided by Google map API. It offers various API and SDKs such as
Maps JavaScript API, Maps SDK for Android, Maps SDK for IOS, Geocoding API etc.

This proposed application, "DailyShop" also used API of google maps to locate the clients and
the targeted shops.

17
Currently, Google Map is providing over 150 million locations worldwide. It has taken the location
service to another level where all parties using the services making their work easier.

4.5 Xml (Extensible Markup Language)

XML is the short form of Extensible Markup language. XML is a combination of tags or codes that
help convert the text format into a digital format. XML code is triggered during the runtime of the
application. There are no fixed rules about using XML tags during application development. A
developer may use their unique tags for creating XML. But to understand better among the
developers, there are some standard directories developers can use.

The example picture below shows how the layout should be arranged to view it either horizontally
or vertically.

FIGURE 5. Example of Linear Layout XML code. [Developers. Layouts. Data retrieved on 5th of
May 2021.]

18
After finishing developing the application, multiple XML layout files need to compile into view
format to run the application as a complete application. The below picture is shown as an
example XML load recourse code to compile. Here the XML layout file is saved as
"main_layout.xml."

FIGURE 6. Example code of load recourse. [Developers. Layouts. Data retrieved on 5th of May
2021.]

In this thesis application, there are XML files have been created. For each section of this project,
the file has been created separately. In the below picture, the main activity XML codes are shown
from the application "DailyShop."

19
FIGURE 7. XML main activity file from DailyShop.

20
5 BUSINESS STRUCTURE

This application “Dailyshop” is an e-commerce business application. This application connects


multiple parties in a single platform. The key idea was to help people during current situation. The
business viewpoint of this application is to maintain the service and develop the application.

The business structure is very simple, where it will use a model of Sharing economy. It is a
peer-to-peer (P2P) business model, where products or services, in some cases both, will be
shared between multiple parties. This model typically involves an online platform where it
connects buyers and sellers directly via a third party. In exchange for these assists or services,
the online platform will generate revenue. An example picture is given below, which will explain
this model more clearly.

FIGURE 8. Example of Sharing Economy model. [Business Model Toolbox. 2021. Business
Model Patterns. Data retrieved on 9th of May 2021.]

21
6 REQUIREMENTS

6.1 System Feature

There are some prior work needs to be done before starting a project. Determining the project
features is the most important work among them. The chapters below contain the description of
required features of this application.

6.1.1 Description of The Application

Every user needs to have access to this application, whoever is willing to take the application's
service. Users can see the services and products in the application to have a clear idea about the
products.

6.1.2 Registration and Log-In

Users need to be able to register in the application or proceed as a guest in the application. The
user should be able to log in after registering. There are initial and essential features because this
platform will be handling the vital information.

6.1.3 Shop List

This application has a feature where users can search super shops of their choice using Google
Maps API. But initially, the system will track and show the nearby shops available.

6.1.4 Product Category

This system needs to show the product category list and search and find the desired product. On
the product category page, it needs to show the popular products initially.

22
6.1.5 Product List

On the product category page, when a user selects a category, system must take the user to that
chosen category product list page. In that page user will be able to search desired product from
the list. This search can be made from the search bar in that page or manually.

6.1.6 Confirm Order

This feature is the most end part of the application, which will allow the user to finish the action of
order. Users can provide their payment information in this section and complete the payment to
purchase the product.

6.2 High-Level Architecture

The whole system architecture on this first version is to make a system with a primary log-in
function to use the app. Secondly, it must have a good structure for ordering, notification of when
order is a ready and smooth collection. The next part of the system is to have a sturdy payment
method where it is fully functional and with no errors to make purchasing easy and secure.

FIGURE 9. High-level architecture design. [Figure created by www.edrawmax.com, Data re-


trieved on 9th of May 2021]

23
6.3 Use Case Diagram

Use case diagram shows the whole process of active action. The action is initiated by the cus-
tomer, and him/she gradually finish the action one after one. When the user completes their ac-
tion, the counterpart of the application starts their action. By these processes, every active party
ends their effort to finish one cycle.

FIGURE 10. Use case diagram. [Figure created by www.edrawmax.com, Data retrieved on 9th of
May 2021]

24
7 IMPLEMENTATIONS

7.1 User Interface

In this section, the User Interface model is formed. This chapter helps the viewer briefly
understand the application's appearance. How user-friendly it will be or after completing the
application, which steps work, has been described in this thesis. User Interface design pictures
along with physical images of the application with complex functions are given below.

7.1.1 Registration

FIGURE 11. Registration page of DailyShop.

The above-provided figure 11 shows us the appearance of the registration page. Though it is not
the first page where user is taken first, they start the application. To continue with the service of
the application, a user must register through this page by providing the information asked in the
25
application. This page also has a "Continue as Guest" button, but the user will not get the
complete services if they continue as a guest. This page also contains a button that can take the
user to the log-in page if they already have an account in the system. Codes for the registration
page will be described later.

7.1.2 Log In

This section is considered the first page of the application. When a user starts the application, the
user is taken to this page to put their log-in credential if they already have an existing account. If
they have no previous account, they might use the “Sign Up” button to create an account that has
been described above. [7.1.1.]

FIGURE 12. Log In page of DailyShop

26
7.1.3 Super Shop List

FIGURE 13. Super shop list page of DailyShop.

The figure 13 provided above shows the visual look of the Shop list page of the application. A
user can select the shops from the list and continue the process. The icon of the shop uses as a
button to continue to the next page of the application.

7.1.4 Product Category

This section gives the information on the product category list. After a user push the icon, which
works as a button [7.1.3.] he/she will be taken to this section, and the user can view the list of the
categories available in the system. In the below figure 14 shows the appearance of this page.
This product category item also works as a button, as mentioned before. [7.1.3]

27
FIGURE 14. Product Category page.

7.1.5 Products

This page of the application shows the demonstration of the Product list page, where it leads only
from the selected product category. [7.1.4] Once the user clicks in their desired category, the
application will take them to all the available products that type has in the system.

28
FIGURE 15. Selected Category product page.

7.1.6 Confirm Order

After selecting the product or products, the user may continue with the button "Order Now,"
shown in figure 15. [7.1.5]. The user can also choose another category from bottom of that page,
which is shown below figure 16.

29
FIGURE 16. More product page of DailyShop.

If the user continues with the button "Order Now," they will be taken to the order confirmation
page, from where they can continue the action to the end of the process. The below figure 17
shows the appearance of the order confirmation page.

FIGURE 17. Order Confirmation page

30
The above-provided figure 17 shows that there is also another button for going back to the prod-
ucts list page if something goes wrong or the user wants to select more products. [figure 17]

7.1.7 Payment Page

The payment page comes after the user clicks the confirm order button from figure 17, which will
take the user to the payment page. The user needs to provide their payment information
according to the system to finalize the process.

FIGURE 18. Payment Page.

31
After filling in the information, the user needs to click the “Pay Now” button to get the estimated
time notification. The method of this process will be described below with the code.[7.4]

7.1.8 Notification

When a user finishes the order process by pressing the “Pay Now” button, the system
authenticates the payment information. It gives the user an estimation of product arrival time,
which is shown in the below figure 19.

FIGURE 19. Notification.

32
7.1.9 User Location

This section is under development. After finishing the development, this section should show the
user the courier location and the users’ location in real-time once the courier picks up the product
from the super shops. Currently, this section only shows the current location of the user. In the
below figure 20, location of the device will be used to track the user by the application so that that
courier can make the delivery at the correct address.

FIGURE 20. User Location.

33
7.2 Registration Page Code Explanation

Some parts of codes used during the development of creating the register page are explained be-
low.

We initialized all the elements needed for registering the user, as shown below.

FIGURE 21. Registration page elements initialization code.

34
We connect the firebase instance as shown in the below picture.

Figure 22. Connecting Firebase with Java.

7.3 Creating register instance

We initialize the functions after getting email, firstName, and lastName inputs from the user. If the
user inputs do not match our validation, we send them custom errors, as shown in the below pic-
ture. After the successful registration, we store their data on our server.

FIGURE 23. Creating register Instance.

35
7.4 Payment Method

After installing the stripe package, we need to fill our API key, shown in the below picture. Some
of the steps involved in payments are described below.

FIGURE 24. Installation code for the Strip package API. [STRIPE DOCS. Custom payment flow.
Data retrieved on 9th of May 2021.]

7.4.1 Creating A Payment Intent

After creating an endpoint on the server, we can create a payment intent. Whenever a customer
is ready to pay, this payment intent helps keep track of the customer payments life cycle, any
failed payment attempts and prevent charging the customer multiple times. This method provides
us a client's secret after the successful completion of payment.

FIGURE 25. Code for creating payment intent. [STRIPE DOCS. Custom payment flow. Data re-
trieved on 9th of May 2021.]

36
7.4.2 Building A Check-Out Page on The Client-Side

After successfully installing all the SDK, we can now add stripe-android as a dependency and our
API key, shown in the below picture.

FIGURE 26. Strip-Android Dependency code. [STRIPE DOCS. Custom payment flow. Data re-
trieved on 9th of May 2021.]

7.4.3 Creating A Payment Form

We can directly add the instance of stripes card input widget to our check-out form. That is used
to collect card details and ensures that this information does not reach our server.

37
FIGURE 27. Code for Creating Payment Form. [STRIPE DOCS. Custom payment flow. Data re-
trieved on 9th of May 2021.]

7.4.4 Fetching A Payment Intent

We send a request to our server for a payment intend, the process shown in the picture below.

FIGURE 28. Code for Fetching Paymentintent. [STRIPE DOCS. Custom payment flow. Data re-
trieved on 9th of May 2021.]

38
7.4.5 Collecting Payment Details

After the user clicks the payment buttons, we create a confirm payment intent parameter that
include card details and our client's secret.

FIGURE 29. Code for Collecting Payment Details. [STRIPE DOCS. Custom payment flow. Data
retrieved on 9th of May 2021.]

7.4.6 Finishing The Payment

We send the payment details to the stripe by calling to confirm payment ()

FIGURE 30. Code for Finishing the Payment Process. [STRIPE DOCS. Custom payment flow.
Data retrieved on 9th of May 2021.]

39
7.4.7 Handling Stripe Response

If the customer's card does not proc or declined, we receive an error which we can show to our
clients. The payment is successful if there are no errors.

FIGURE 31. Code for Handling Stripe response. [STRIPE DOCS. Custom payment flow. Data re-
trieved on 9th of May 2021.]

40
8 TESTING (STRATEGY)

8.1 Black-Box Testing

The primary method used during the testing of this project is called black-box testing. The main
objective of this test was to find any hidden errors. The black box testing method made every
input possible in the application, whether it was the right or wrong input. This action was to break
the app in any way possible.

8.2 Unit Testing

The second method was Unit testing for the application. Unit testing is used to test different
components/features of an application part by part. Unit testing has been used because of new
features, which have been added from the beginning of this project. In this situation, unit testing
helped and made it easier to debug in this application.

8.3 Integration Testing

After Unit testing was finished and passed, the testing moved onto integration testing. So instead
of running, each part of the application has been grouped all parts and ran the program to see if
any errors would happen. This part is integral because it can show new errors now that all parts
are joined together. Thankfully after this process, the application still ran above board with no
system errors. The design document was integral to this part to show how the units interacted
with each other to avoid errors.

After this, we moved on to system testing to test the system as a whole. The testing group tested
the system this time through black-box testing, trying to maximize any chance of error that could
be found. So instead of using the application in a straightforward, safe way. At any given chance
tester would enter the wrong variables, for example, if it asked to order the product or could the
user enter in characters instead. The testing was to break the system using it in a way it was not
intended to be. So, after this testing, everything seemed fine all functionalities were error-proof.
41
After performing all the testing on DailyShop, it has resulted in an error-free application for the
time being. This meant the demo application was ready to present with its functionality and went
over the system again to ensure everything was in place to provide to end-users. This version
was shown to some volunteers to help for errors. Using non-developer persons will help because
they would test the application by interacting for the first time with an unexpected variable way.
After all the testing, all available functions tests passed and worked as expected.

8.4 TEST PLAN

Introduction.

This test is to see if the application starts smoothly after the user tries to open the application.

FIGURE 32. Test result

Registration.

This test is to see if Registration works as expected or not.

42
FIGURE 33. Test result

Log-in.

This test is to see if Login works.

FIGURE 34. Test result

43
Continue as Guest.

This test is to see if Continuing as Guest works appropriately.

Super Shops list.

This test shows if the user is logged in, he/she can see the shop list.

Shop Selection.

This test is to see if Shop Selection works appropriately.

Product Category Selection.

This test is to see if Product Category Selection works appropriately.

Product Selection.

This test is to see if Product Selection works appropriately.

Check user's Order.

This test is to see if Checking the user's order works properly.

Confirm Order.

This test is to check the confirming order works appropriately.

User Location Review.

This test is to see if google maps for checking for the location works properly or not.

Payment.

This test is to see if the Payment Method works properly.

Final Confirmation page.

This test is to see if Order delivery time is displayed, and payment confirmation notification is
shown.
44
These above-mentioned testing steps have been done by a group of three people. Figures 33, 34
and 34 are the test results done by the tester grope, unlike these tests all the test was done by
the same group of people and test results are similar like above-shown Figures.

45
9 CONCLUSION

In this era of a technologically enhanced world, developing a fully functional and user-friendly ap-
plication is necessary to compete with similar products. The primary purpose of this project was
to develop a product that will co-exist with the world's current situation.

During the development of this project, I was a developer who had experienced many unexpected
situations. Some of them were easy to solve, but many of them were very complex. To achieve
success on those problems, I had to do a lot of brainstorming for the ideas and implement differ-
ent methods. From this project work, I experienced the necessity of working in a group while do-
ing this kind of high functional project. But I achieved vast experience on how to start and improve
the project. The most significant experience of all was to gain confidence through the difficult situ-
ation when it seems to progress impossible. But as mentioned earlier, the brainstorming sessions
work very well in this kind of situation.

Through this project, I also gained a lot of technical knowledge. With the help of the e-learning
platform and, I want to mention the appreciation, positivity, and support I got from my teachers,
which help me to gain confidence in every difficult situation.

As mentioned earlier, this project is big and still under development. This project needs further
advanced planning and recourses to complete and launch to make it a better e-commerce appli-
cation.

46
REFERENCES

ADMECMULTIMEDIA, Top features of Android Studio for Developers. Data retrieved on 5TH of
May 2021, https://www.admecindia.co.in/miscellaneous/top-10-features-android-studio-develop-
ers-not-miss/

Business Model Toolbox. 2021. Business Model Patterns. Data retrieved on 9th of May 2021,
https://bmtoolbox.net/patterns/sharing-economy/

Callaham. J. The history of Android: The evolution of the biggest mobile Os in the world, 2021,
Data retrieved on 4th of May 2021, https://www.androidauthority.com/history-android-os-name-
789433/

Cirman. M. CODEBRAINER. Data retrieved on 7th of May 2021, https://www.code-


brainer.com/blog/android-studio-layout-editor-for-beginners

Developers. Layouts. Data retrieved on 5th of May 2021. https://developer.an-


droid.com/guide/topics/ui/declaring-layout#java

Iqbal. M. 2021. BusinessofApps, Data retrieved on 7th of May 2021, https://www.busi-


nessofapps.com/data/app-statistics/

Johnson. J. 2021, Worldwide digital population as of January 2021, Data retrieved on 1st of May
2021, https://www.statista.com/statistics/617136/digital-population-worldwide/

JavaTpoint. Features of Java. Data retrieved on the 7th of May 2021, https://www.ja-
vatpoint.com/features-of-java

JavaTpoint. History of Java. Data retrieved on the 8th of May 2021, https://www.ja-
vatpoint.com/history-of-java

Neil. 2016. Techotopia. A guide to Android Studio Designer Tool. Data retrieved on 8th of May
2021, https://www.techotopia.com/index.php/A_Guide_to_the_Android_Studio_Designer_Tool_-
_Android_6

47
Neil. 2017. Writing Firebase Realtime Database Data. Data retrieved on 8th of May 2021,
https://www.techotopia.com/index.php/Writing_Firebase_Realtime_Database_Data

STRIPE DOCS. Custom payment flow. Data retrieved on 9th of May 2021,
https://stripe.com/docs/payments/integration-builder

Stevenson. D. What is Firebase? The complete story, abridged. 2018. Data retrieved on 9th of
May 2021, https://medium.com/firebase-developers/what-is-firebase-the-complete-story-
abridged-bcc730c5f2c0

W3Schools. Java Tutorial. Data retrieved on 8th of May 2021, https://www.w3schools.com/java/

48

You might also like