You are on page 1of 83

lOMoARcPSD|17742102

Final Year Project Report

Bug Hunting (S A Engineering College)

StuDocu is not sponsored or endorsed by any college or university


Downloaded by Stark walker (starkwalker1@gmail.com)
lOMoARcPSD|17742102

ShopOn Store System (with chatbot)


Project Report
On
Submitted in partial fulfillment of the requirement for the award of Degree
of Bachelor of Technology in (Computer Science & Engineering)
Submitted to

Dr. A.P.J Abdul Kalam Technical University, Lucknow (U.P.)


Submitted By
AADISH JAIN 1606510001
AKASH AGRAWAL 1606510006
RAHUL AGRAWAL 1606510042
CHANDRA SHEKHAR SHUKLA 1606510014
Under the supervision of
GUIDE
Mrs. Durga Puja
(Head of the Department)

Session 2019-20

Department of Computer Science & Applications


B.S.A. College of Engineering & Technology, Mathura

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

B.S.A. College of Engineering & Technology,


Mathura
Department of Computer Science & Applications

CERTIFICATE

This is to certify that the work embodies in this Synopsis entitled “ShopOn
Store System (with chatbot)” being submitted by “AADISH JAIN
(1606510001), AKASH AGRAWAL (1606510006), CHANDRA
SHEKHAR SHUKLA (1606510014), RAHUL AGRAWAL
(1606510042)” in partial fulfillment of the requirement for the award of
“Bachelor of Technology in (CSE)” to Dr. A.P.J Abdul Kalam Technical
University, Lucknow (U.P.) during the academic year 2019-2020 is a
record of bonafide piece of work, carried out by them under my supervision
and guidance in the “Computer Science & Applications”, B.S.A. College
of Engineering & Technology , Mathura.

Approved and Guided By:

Signature
Mrs. Durga Puja
H.O.D.
CS Department

ii

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

B.S.A. College of Engineering & Technology,


Mathura
Department of Computer Science & Applications

CERTIFICATE OF APPROVAL

The Project entitled “ShopOn Store System (with chatbot)” being


submitted by “AADISH JAIN (1606510001), AKASH AGRAWAL
(1606510006), CHANDRA SHEKHAR SHUKLA (1606510014),
RAHUL AGRAWAL (1606510042)” has been examined by us and is
hereby approved for the award of degree “Bachelor of Technology in
(CSE)”, for which it has been submitted. It is understood that by this
approval the undersigned do not necessarily endorse or approve any
statement made, opinion expressed or conclusion drawn therein, but
approve the project only for the purpose for which it has been submitted.

Guided by

Signature
Mrs. Durga Puja
H.O.D.
CS Department

iii

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

B.S.A. College of Engineering & Technology,


Mathura
Department of Computer Science & Applications

DECLARATION

We “Aadish Jain”, ”Akash Agrawal”, ”Chandra Shekhar Shukla”, “Rahul


Agrawal” students of Bachelor of Technology in (CSE), session 2019-20
B.S.A. College of Engineering & Technology, Mathura, hereby declare
that the work presented in this Project entitled “ShopOn Store
System(with chatbot)” is the outcome of our own work, is bonafide and
correct to the best of our knowledge and this work has been carried out
taking care of Ethics. The work presented does not infringe any patented
work and has not been submitted to any other University or anywhere else
for the award of any degree or any professional diploma.

Aadish Jain
1606510001
Akash Agrawal
1606510006
Rahul Agrawal
1606510042
Chandra Shekhar Shukla
1606510014
Date: 30 April 2020

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

B.S.A. College of Engineering & Technology,


Mathura
Department of Computer Science & Applications

ACKNOWLEDGEMENT

It is not possible to prepare a project report without the assistance &


encouragement of other people. This one is certainly no exception.
On the very outset of this report, we would like to extend my sincere &
heartfelt obligation towards all the personages who helped us in this
endeavour.
We are ineffably indebted to Mrs. Durga Puja, our guide for
conscientious guidance and encouragement to accomplish this project. We
would also like to thank Mr. Vatsya Tiwari , our project coordinator for
his support. We extend our gratitude to B.S.A. College of Engg. & Tech.,
Mathura for giving us this opportunity.
At last but not least gratitude goes to all my friends who directly or
indirectly helped me to complete this project report.
Aadish Jain
1606510001
Akash Agrawal
1606510006
Rahul Agrawal
1606510042
Chandra Shekhar Shukla
1606510014
Date: 30 April 2020

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

TABLE OF CONTENTS
Acknowledgement……………………………………………………………………...v
List of Figures…………………………………………………………..……………viii
List of Tables………………………………………………………………………….ix

1. INTRODUCTION………………………………………………………….….1
1.1. Objective……………………………………………………………………….1
1.2. Scope…………………………………………………………………………...1

2. THEORETICAL BACKGROUND………………………………………….3
2.1. Application Overview…………………………………………………………3
2.2. Design Overview………………………………………………………………4

3. DEFINITION OF PROBLEM……………………………………………….6

4. FEASIBILITY STUDY……………………………………………………….7
4.1. Technical Feasibility…………………………………………………………..7
4.2. Economic Feasibility…………………………………………………………...8
4.3. Operational Feasibility…………………………………………………………9

5. SYSTEM ANALYSIS………………………………………………………..11
5.1. Identification of Need…………………………………………………………11
5.2. Preliminary Investigation……………………………………………………..13
5.2.1 Purpose of Project………………………………………………………13
5.2.2 Scope……………………………………………………………………13
5.2.3 Overall Description……………………………………………………..13
5.2.4 Specific Requirements………………………………………………….16
5.2.5 External Interface Requirements………………………………………..17

6. SYSTEM DESIGN & DOCUMENTATION……………………………….18


6.1. Flow of System……………………………………………………………….18
6.2. Data Flow Diagram……………...……………………………………………18
6.3. Use Case Diagram…………………………………………………….............22

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

6.4. Activity Diagram……………………………………………………………...23


6.5. ER diagram……………………………………………………………………25

7. SYTEM IMPLEMENTATION, CODING & DETAILS OF HARDWARE


& SOFTWARE USED………………………………………...……………..27
7.1 System Implementation and Coding…………………………………………...27
7.2 Details of software and hardware……………………………………………...39

8. SCREEN SHOTS……………………………………………………………..44

9. TESTING……………………………………………………………………...57

10. SYSTEM SECURITY & MAINTENANCE………………………………...68

11. CONCLUSION AND FUTURE SCOPE…………………….……………...69

12. BIBLIOGRAPHY…………………………………………………………….70

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

LIST OF FIGURES

1. MEAN Stack Architecture …………………………………………………...4


2. The Waterfall Model………………………..……………………….……….....5
3. Level 0 DFD…………………………………………………………………...19
4. Level-1 Seller Side DFD…..…………………………………………………..19
5. Level-1 Customer Side DFD…….………………………………………….....20
6. Level-2 Customer Side DFD…………………………………………………..21
7. Simplified Use Case Diagram ………..…………………………………….22
8. Activity diagram for user………………………………..………………….....23
9. Activity diagram for Admin …………………………………………………..24
10. ER diagram……………………………………….……………………………26
11. Directory Structure………………………………………………………….....28
12. Architecture of NodeJS………………………………………………………...41
13. MEAN Stack…………….…………………………………………………......42
14. Anatomy of a chatbot…………..………………………………………………43
15. Home Page…………………………………………………………………......44
16. About Page…………………………………………………………………......45
17. Contact Page…………………………………………………………………...46
18. Sign Up/ Sign In Modal………………………………………………………..47
19. Single Product Page……………………………………………………………48
20. View Products……………………………………………………………….....48
21. Shopping Cart………………………………………………………………….49
22. FAQ page……………………………………………………………………....50
23. Paypal Interface………………………………………………………………..51
24(a). Payment form 1………………………………………………………………...52
24(b). Payment form 2………………………………………………………………...53
25. Chatbot………………………………………………………………………....54
26. Admin Login…………………………………………………………………...55
27. MongoDB Interface……………………………………………………………55
28. Admin Dashboard……………………………………………………………...56

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

LIST OF TABLES

1. Symbols and their meaning in DFD……………………………………………….21


2. User Registration Test Cases………………………………………………………65
3. Add to Cart Test Cases…………………………………………………………….66
4. Place Order Test Cases…………………………………………………………….66
5. Manage Order Test Cases………………………………………………………….67

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Chapter1
Introduction

1.1 Objective

The "ShopOn Store System" is an online Shopping Store System. The main
objective of the project is to provide a convenient way for a customer to buy products
online. The only things a customer requires are internet connection and a device to
access the internet.

The main aim of this system is to provide an interactive way of shopping for the
customer. It is just like an online marketplace where customers can purchase goods and
sellers can post their goods with the permission of admin. New products can be
dynamically added and shown to the user. The products can also be categorized so that
the user can easily search the products of his/ her interest on the system Also, to aid to
the user experience, an interactive chatbot is integrated into the web system which can
reply to the most common user queries without the intervention of a real human being.
This saves not only the cost but also the valuable time of the customer as well as the
company.

This “ShopOn Store System” provides the company or the admin the way to
manage the online store. He/ She can add, delete, modify the stock in the admin module.
This make the system effective and user friendly for the admin, seller as well as
customer. Thus it is a one place solution for the consumer, seller and admin. The admin
can easily monitor sales and the customer can easily get the answers to his/ her queries.

1.2 Scope

E-commerce is a term for any type of business, or commercial transaction that


involves the transfer of information across the Internet. It covers a range of different
types of businesses, from consumer based retail sites, through auction or music sites, to

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

business exchanges trading goods and services between corporations. It is currently one
of the most important aspects of the Internet to emerge.

It is a web based system, which provides the functionality of an online


marketplace where users can buy things and make payments over the internet at the
comfort of their home. ShopOn is an e-commerce website allows consumers to
electronically exchange goods and services with no barriers of time or distance.
Electronic commerce has expanded rapidly over the past five years and is predicted to
continue at this rate, or even accelerate. Largest selection from many categories at
reasonable price can be done. Payment options - COD, PayPal, Debit card etc. are made
available to the customer online.

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Chapter 2
Theoretical Background

2.1 Application Overview

The e-commerce marketplace has been growing at a very fast rate during the last
decade. Online e-commerce tech giants like amazon, flipkart are proofs of the same.
Developing an e-commerce website involves a lot of challenges. The panels for seller
and admin as well as aiding customer experience using chatbots and online payment
methods. A software system must be developed keeping in mind the requirements of the
future as the business grows. Scalability and security are such keen features that must be
kept in mind. These requirements are easily met when an all JavaScript Full Stack like
the MEAN stack is used. It takes care of not only stability and scalability but is also
ideal for running advanced Database search queries when the database grows.

The project involved classifying the three types of users of the system – The
Customer, Seller and the Administrator. After carefully analyzing the requirements of all
of these, Front end interfaces for all the three are made. There are separate user spaces
for these people. The user (customer) can view the products even without login and add
them to their shopping cart. To purchase and make payments, the customer needs to log
in to the website. The seller can add and delete products when confirmed by the admin.
The admin manages the whole system and can add, delete or modify existing contents,
view feedbacks, add categories, get sales summary of the day, cancel orders etc. To
enhance the customer experience and reduce system running costs, a chatbot is
employed. It learns with time and gives automated replies to the most common
customer queries on the go without requiring human intervention. It is based on Natural
Language Processing and is developed in Python NLTK (Natural Language ToolKit).
After completion of the project modules, the system is tested. Angular extensively
supports Unit Testing. Careful deployment over cloud technologies is required to allow
24x7 access.

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

2.2 Design Overview

The system is designed with the help of MEAN stack. It is an all JavaScript
based stack which uses JavaScript on both front-end and back-end. For Database,
NoSQL based MongoDB is used. It stores data in the form of JSON like objects instead
of tables. NodeJS runs asynchronously making it well suited for large scale single page
applications like e-commerce.

The product is designed keeping the functions of user experience, seller


experience and admin responsibilities in mind. To ease the working of all these
personnel, their tasks are well defined and separated to quickly and easily implement the
required system. Various diagrams like Data Flow Diagram, Use Case etc. are
developed to better understand the flow of information and best practices for the System
development.

Fig. 1 MEAN Stack Architecture

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Fig. 2 The Waterfall Model

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Chapter 3
Definition of Problem

The explosion of World Wide Web (WWW) over the 90s opened a new world of
knowledge as well as business. E-commerce seemed to be one of the very imaginative
tasks back then. With passage of time, e-commerce has become one of the important
uses of Internet as it gives user shopping experience in the comfort of their home.

The current project aims at developing an e-commerce application that provides


an online marketplace for any startup based company. The project allows users to make
purchase over the Internet, surf the website to view latest products, add them to
shopping cart and make payments online. In addition, it allows sellers to login and
manage their products by requesting to add products by admin.

In addition to this, to further improve upon the user experience a self replying
automated chatbot needs to be developed which can reply to user’s queries on the go
without requiring human intervention.

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Chapter 4
Feasibility Study

The feasibility study of any system is mainly intended to study and analyze the
proposed system and to decide whether the system under consideration will be viable or
not after implementation. That is, it determines the usability of the project after
deployment. To come to result a set of queries is answered keeping the efficiency of the
software and its impact on the domain for which it was developed in mind. Its main
emphasis is on the following three questions shown below:

 What are the user’s requirements and how does a candidate system meet them?

 What resources are available for the proposed systems? Is it worth solving the
problem?

Thus since the feasibility study may lead to commitment of large resources, it
becomes necessary that it should be conducted competently and no fundamental errors
of judgment are made. Different types of feasibility study and the way we performed on
our project “Online Shopping Store (with chatbot)”.

3.1 Technical Feasibility

The Technical feasibility study basically centers on alternatives for hardware,


software and design approach to determine the functional aspects of system. In technical
feasibility, we study all technical issues regarding the proposed system. It is mainly
concerned with the specifications of the equipment’s and the software, which
successfully satisfies the end-user’s requirement. Evaluating the technical feasibility is
the trickiest part of a feasibility study. This is because, at this point in time, not too
many detailed design of the system is available, making it difficult to access issues like
performance, costs on (on account of the kind of technology to be deployed) etc. A
number of issues have to be considered while doing a technical analysis.

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Understanding the different technologies involved in the proposed System:

Before commencing the project, we have to be very clear about what are the
technologies that are to be required for the development of the new system.

Find out whether we currently possess the required technologies:

Are the required technologies available to us? If so, is the capacity sufficient?
The technical issue usually raised during the feasibility stage of the investigation
includes the following:

 Does the necessary technology exist to do what is suggested?

 Do the proposed equipments have the technical capacity to hold the data
required to use the new System.

 Will the proposed system provide adequate response to inquiries, regardless of


the number or location of courses?

 Can the system be upgraded if developed?

3.2 Economical Feasibility

Economic feasibility attempts to weigh the costs of developing and


implementing a new system, against the benefits that would accrue from having the new
system in place. This feasibility study gives the top management the economic
justification for the new system.

A simple economic analysis which gives the actual comparison of costs and
benefits are much more meaningful in this case. In addition, this provides a useful point
of reference to compare actual costs as the project progresses.

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

The computerized system takes care of the present existing system’s data flow
and procedures completely and should generate all the reports of the manual system
besides a host of other management reports.

Are there sufficient benefits in creating the system to make the acceptable? Or
are the costs of not creating the system so great that it is advisable to undertaken the
project.

This will include three major costs as described below:

 Cost of Hardware and Software.

 Cost of Software to be acquired to build and run the product is one time cost.

 Buying a backend database is the major part of hardware and Software cost.

3.3 Operational Feasibility

Proposed projects are beneficial only if they can be turned into information
systems that will meet the organizations operating requirements. Simply stated, this test
of feasibility asks if the system will work when it is developed and installed. Are there
major barriers to implementation? Here are questions that will help test the operational
feasibility of a project. Is there sufficient support for the project from management from
users? If the current system is well liked and used to the extent that persons will not be
able to see reasons for change, there may be resistance.

Are the current business methods acceptable to the user? If they are not, Users
may welcome a change that will bring about a more operational and useful systems. Has
the user been involved in the planning and development of the project? Early
involvement reduces the chances of resistance to the system and in general and
increases the likelihood of successful project.

10

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Since the proposed system was to help reduce the hardships encountered. In the
existing manual system, the new system was considered to be operational feasible.
User-friendly

Customer will use the website to view and purchase the products. Query
resolving is also simplified by employing a chatbot for the task. For sellers and admin
too, the System provides easy to use interfaces to manage the System. The Information
provided there will be presented in a user-friendly manner.

Reliability

The system will be up 24x7 as with most of the cloud based service providers
like AWS and Azure.

Security

User’s data in the database like the password is stored in the form of one way
irreversible hash using third party npm package called bcryptjs. Also a particular login
is valid only for 1 hour providing an extra layer of security.

Maintainability

The system uses the 3-tier architecture. The 1st tier is the GUI, which is said to
be frontend and the 2nd tier is the backend, which uses nodejs runtime environment and
the third tier is MongoDB which stores the data. As the System is developed with
modular MVC approach maintaining, debugging and upgrading are very easy.

11

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Chapter 5
System Analysis

It is a process of collecting and interpreting facts, identifying the problems, and


decomposition of a system into its components.

System analysis is conducted for the purpose of studying a system or its parts in
order to identify its objectives. It is a problem-solving technique that improves
the system and ensures that all the components of the system work efficiently to
accomplish their purpose. Analysis specifies what the system should do.

5.1 Identification of Need

The need for this project is related to improving user experience as well as
making the tasks of all the stakeholders easy. It must help every person involved in
the operation including customers, vendors and administrator with separate,
easy-to-manage interactive User Interfaces that do not require coding by any of
these users. Thus, the need for the project can be understood in terms of
customer, sellers and admin:

1. Customer

 Customers are the main focus of the project as it is their experience of


shopping and using the system that must be taken into account in greater
detail.

 The customers need a way to surf the website without logging in to the
system and if they like some product(s) they must also be able to add
them to their shopping cart. This helps them to manage their time and
make purchase at a later point of time.

12

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

 Customers need quick responses to their queries and questions in cost


effective manner.

 Customers must be able to make payments online without the need of


cash payments or make payment when the product is delivered

2. Sellers

 Sellers must have a separate dashboard where they can request admin to
add a particular product to some category.

 They must be able to see their orders and status of orders etc. at a single
place.

3. Administrator

 Admin must have basic functionalities in the dashboard such as adding


categories of products, modifying costs of products etc.

 Admin needs a way to approve products of sellers in a particular category.

 Admin must have a feedback manager in which he/ she can view the
feedbacks of the customers.

 Admin must be able to manage sales and view order summaries etc.

13

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

5.2 Preliminary Investigation

The preliminary investigation occurs within a short period ranging from a few hours to a
few days and should not exceed two to three days. The purpose of the preliminary
investigation is to determine whether the problem or deficiency in the current system
really exists. It’s first phase in SDLC. The project team may reexamine some of the
feasibility aspects of the project. At this point, the purpose is to make a “go” or “no-go”
decision. The end result is a decision to proceed further or to abandon the project.

5.2.1 Purpose of project

The purpose of this document is to present a detailed description of the Online


Shopping Store (using chatbot). It will explain the purpose and features of the system,
the interfaces of the system, what the system will do, the constraints under which it
must operate and how the system will react to external stimuli.

5.2.2 Scope

The scope of a project outlines the utility of the project. It lists out the targeted
audience and how the project is to benefit them more than the existing system.

At present, many companies such as flipkart, amazon etc. provide online


shopping facility to its users. The turnovers of these ecommerce companies show the
vast scope and potential of the same. Integrating chatbot into an online shopping
website will add to user convenience as well as resolve common user queries on the fly
using Natural language Processing.

5.2.3 Overall Description of Project

Product Perspective
Product perspective deals with whether the project is sellable in today’s world;
because now Internet is part of our life. This technology helps to make user’s life easy

14

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

while making the user experience as satisfying as in a real store. This product is a web
application for use over the Internet.
The Online Shopping Store is a web based application with a chatbot to be used
by any type of users who have access to the Internet. This system benefits greatly for
users . The system makes it easy to make orders for a particular product, make
payments, give feedbacks to sellers, raise queries and get quick responses etc.

Product Function

• Simple Interface that is easy to use for all its users

• Smooth functionality and efficiency

• New user creation

• New Category Creation and expansion of products

• Shopping Cart

• Online Payment Gateway

• Interactive chatbot to resolve common user queries

• Tracking feature of orders and delivery status

User Characteristics

In general, there are 3 types of users:


1. Customers

2. Sellers

3. Administrator

Design Implementation
The following software and hardware frameworks are required to develop the
system:

15

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Front End

Languages : HTML, CSS, BootStrap, TypeScript

Framework: Angular

Back End

Database: MongoDB (NoSQL)

Languages: JavaScript, Python

Framework: ExpressJS (NodeJS Runtime Environment)

Hardware Constraints

There are no specific constraints on the device other than it should have access
to the Internet. The website can be accessed from both mobile and laptop. The website
will be hosted on AWS cloud web hosting solution which will take care of the server
hardware requirements.

Software Constraints

The application can run on any browser like Mozilla, Safari and Internet
Explorer version 9 and above.

16

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Operating Environment

Software Requirements
▪ Any Browser(Chrome is recommended)

Hardware Requirements
▪ Mobile device or Laptop with Internet Connection

▪ Internal memory or Micro SD card of capacity at least 2GB.

Assumptions
The customer and seller must have a basic knowledge of computers and English
Language. Browser is already installed in the device.

5.2.4 Specific Requirements

Functional Requirements

• Searching through the catalog of items

• User Signup and Login

• Show previously searched items on user homepage

• Give various account management options to user

• Personal Profile management

• Adding invoice to customer and seller’s profile

• Creation of sellable items when user clicks on the item

• Shopping Cart facility

• Multiple payment methods( Cash on Delivery, UPI, Debit Card, Credit Card)

17

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

• Customer support

• ChatBot etc.

Non-Functional Requirements

Performance- Dependent on Internet Connection, but after initial loading, user


need not reload the page while migrating to some other page within the
website(Single Page Applications).

Security- User Authentication using passwords and secured storage over cloud.

Reliabilty- The crash of website does not cause data to be lost and website is up
almost 24x7.

Flexibility- New products and categories can be added and old can be removed
easily.

Maintainability- Modular design

5.2.5 External Interface Requirements

User Interface

• Login or Signup Page

• Homepage having products based on user’s previous searches

• Product Information Tab

• Payment Interface

• Chatbot Chat Window

• Seller dashboard
18

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

• Admin Panel etc.

Chapter 6
System Design and Documentation

System design is the process of designing the elements of a system such as the
architecture, modules and components, the different interfaces of those components and
the data that goes through that system.

6.1 Flow of System

System Flows are systems models that show the activities and decisions that
systems execute. They are useful for understanding complex system interactions
because they visually show the back and forth interactions between systems and
complex branching.

They are very similar to Process Flows in look and feel; however, Process Flows
are used to document a user’s actions whereas System Flows are used to document a
system’s actions. Below is a template of a system flow with swim lanes denoting
different systems needed in the flow.

6.2 Data Flow Diagram

A Data Flow Diagram is a structured analysis and design tool that can be used
for flowcharting in place of, or in association with, information-oriented and process-
oriented systems flowcharts. A DFD is a network that describes the flow of data and
the processes that change, or transform, data throughout a system. This network is
constructed by using a set of symbols that do not imply a physical implementation. It
has the purpose of clarifying system requirements and identifying major
transformations that will become programs in system design. So it is the starting point
19

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

of the design phase that functionality decomposes the requirement specifications down
to the lowest level of detail.

request 0 request
USER DATABASE
SHOPPING
STORE
WEBSITE
response output

Fig. 3 0-level DFD

20

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Fig. 4 Level-1 Seller side DFD

Fig. 5 Level-1 Customer side DFD

21

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Fig. 6 Level-2 Customer side DFD

Symbols Description
Data Flow: Data flow are pipelines through the packets
of
information flow.
Process: A Process or task performed by the system

Entity: Entity are object of the system. A source or


destination
data of a system
Data Store: A place where data to be stored

Table 1 Symbols and their meaning used in DFD

22

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

6.3 Use Case Diagram

The UML provides the use case diagram notation to illustrate the name of the
use case actors and relationship between them. User case diagrams are used to model
the functional interaction between users and system.

Fig. 7 Simplified Use Case Diagram

23

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

6.4 Activity Diagram

The activity diagram used to describe flow of activity through a series of actions.
Activity diagram is an important diagram to describe the system.The activity described
as an action or operation of the system.

Activity diagram shows sequential and parallel activities in a process. They are
useful for modeling business, workflows, the data flows and complex algorithm. A
UML activity diagram offers rich notation to flows a sequential of activities. It may
be including parallel activities. It may be applied to any purpose, but it is popular for
visualization of business workflows and use case.

24

Exit
Application
Downloaded by Stark walker (starkwalker1@gmail.com)
lOMoARcPSD|17742102

Fig. 8 Activity Diagram for User Side

Fig. 9 Admin Side Activity Diagram

25

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

6.5 ER Diagram

The purpose of draw this diagram to show the relationship among the objects
and personal attributes that belong to them. For instance:

1. Customer can place many order (one to one relationship) as they wish when in
ShopOn Online Shopping Store and vice versa. In order to have a list of order,
we must have at least one customer. There may be situation in which placement
order action is not necessary from the customer.
2. Order can contain many order items details in the list and vice versa is part of the
order. In order to have an order items details, we must have at least one order
taken from the customer.
3. Visitors can view many categories as they wish in ShopOn Online Shopping
Store.(many to many relationship)
4. Each category will contain many product (one to many relationship).
5. The product will have the order items details etc.

An Entity–relationship model (ER model) describes the structure of a database


with the help of a diagram, which is known as Entity Relationship Diagram (ER
Diagram). An ER model is a design or blueprint of a database that can later be
implemented as a database. The main components of E-R model are: entity set and
relationship set.

26

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Fig. 10 ER diagram

27

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Chapter 7
System Implementation, Coding
&
Details of Hardware and Software

Systems implementation is the process of:

 Defining how the information system should be built (i.e., physical system
design),

 Ensuring that the information system is operational and used,

 Ensuring that the information system meets quality standard (i.e., quality
assurance).

7.1 System Implementation & Coding

To create the best possible modular system, we planned out the development process
into four parts-.

1. Build Front End Part Using Angular

2. Building the RESTful API endpoints using express

3. Database Management for MongoDB and Mongoose

4. Building the Chatbot

28

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

1. Build Front End using Angular

Angular is an application design framework and development platform for


creating sophisticated and efficient single page applications. It breaks down the
development of different parts of the application into reusable components. Each
component is individually developed and can be used whenever required.

Angular uses TypeScript as its primary language. It is a superset of


JavaScript which includes all features of JavaScript and adds additional features of
its own. TypeScript is a typed language unlike JavaScript.

To build the current project front end, various components are used. First the
app is divided into 3 separate folders : Customer, Seller and Admin.

The major part of the application is built into Customer Section. The basic
folder structure of the angular application is shown below:

Fig. 11 Directory Structure

29

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

To create this project’s basic structure simply type at the command prompt, the
following command :

>> ng new ShopOnProject

Then to view the basic contents, run the following command on the prompt
inside the ShopOn Project :

>> ng serve –open

The basic building blocks of an angular application are its components. To


generate a component, the following command is used :

>> ng generate component customer/home

It generates a component named HomeComponent. The file and template of a


component have the following general structure :

Code for Component

import { Component } from '@angular/core';

@Component({

selector: 'app-root',

templateUrl: './app.component.html',

styleUrls: ['./app.component.scss']

})

export class AppComponent {

title = 'ShopOnProject';

}
30

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

The following components are generated using the same procedure :


 HomeComponent

 AboutUsComponent

 LoginComponent

 SignUpComponent

 ContactComponent

 HeaderComponent

 FooterComponent

 AdminHeaderComponent

 AdminDashboardComponent

 SellerComponent etc.

Apart from these, services send requests to the backend. Services are additional files
which get the data from the backend and provide the data to the components. The
following is an example code for the service :

import { Injectable } from "@angular/core";

import { HttpClient } from "@angular/common/http";

import { AuthData } from "./auth-data.model";

import { Subject } from "rxjs";

31

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

import { Router } from "@angular/router";

import { environment } from "../../environments/environment";

const BACKEND_URL = environment.apiUrl + '/users';

@Injectable({ providedIn: 'root'})

export class AuthService {

isAuthenticated = false;

private token: string;

private userId: string;

private authStatus = new Subject<boolean>();

private tokenTimer: any;

constructor(private http: HttpClient, private router: Router) {}

getAuthStatus() {

return this.authStatus.asObservable();

32

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

For security purposes Single Page Applications get a token which is used along with
an associated timer during which it authenticates the user :

private getAuthData() {

const token = localStorage.getItem('token');

const expirationDate = localStorage.getItem('expiration');

const userId = localStorage.getItem('userId');

if (!token || !expirationDate || !userId) {

return;

return {

token: token,

expirationDate: new Date(expirationDate),

userId: userId

};

Using this combination of services, components and modular design approach, the
whole application’s front end is built. The Angular Framework develops Single Page
Applications which fetch data into the background and the app does not reload when the
user navigates to different pages.
33

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

2. Building the RESTful API endpoints using express

Express is a minimal and flexible Node.js web application framework that


provides a robust set of features for web and mobile applications.

To install Express, use the following command :


>> npm install express –save

The express framework is used to define several middlewares/ controllers which


take the request coming from the server and serve it by fetching data from the database
(MongoDB).

One such middleware is given below :

exports.createUser = (req, res, next) => {

bcrypt.hash(req.body.password, 10)

.then(hash => {

const user = new User({

email: req.body.email,

password: hash

});

user.save()

.then(result => {

res.status(201).json({

message: 'User Created!',


34

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

result: result

});

})

.catch(err => {

res.status(500).json({

message: 'Invalid Authentication Details!'

});

});

});

};

The middleware function named as user.save() is similar to an insert query in


SQL based databases. In SQL , the above query would have been written as :

>> insert into user values(req.body.username, req.body.password);

3. Database Management for MongoDB and Mongoose

Mongoose provides a straight-forward, schema-based solution to model your


application data. It includes built-in type casting, validation, query building, business
logic hooks and more, out of the box. A NoSQL based database like MongoDB does not
have any structure except JSON like object records. To efficiently retrieve data
Mongoose helps to develop partitions into the large data.

The following lines of code help to understand the mongoose way of modelling
data :
35

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

const mongoose = require('mongoose');

const uniqueValidator = require('mongoose-unique-validator');

const userSchema = mongoose.Schema({

email: {type: String, required: true, unique: true},

password: {type: String, required: true}

});

userSchema.plugin(uniqueValidator);

module.exports = mongoose.model('User',userSchema);

Similarly, we can define data structures of product, categories and other entities. A few
of these are shown below :

Category: {
Cat_id: string,
Cat_name: string
}

Product: {
Prod_id: string,
Cat_id: string,
Prod_name: string,
36

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Price: number,
Qty: number,
Description: string,
Add_date: date
}

Store: {
Order_id: string,
Report: string
}

Similarly, other entities can be developed with the required schema and data of
this type can be developed.

4. Building the Chatbot


Chatbot is an interactive tool to which customers can raise common questions
and it can resolve them without requiring human support. It is based on NLP (Natural
Language Processing) and is developed using NLTK (Natural Language ToolKit), a
Python based AI library.

NLTK(Natural Language Toolkit) is a leading platform for building Python


programs to work with human language data. It provides easy-to-use interfaces to over
50 corpora and lexical resources such as WordNet, along with a suite of text processing
libraries for classification, tokenization, stemming, tagging, parsing, and semantic
reasoning, wrappers for industrial-strength NLP libraries.

NLTK has been called “a wonderful tool for teaching and working in,
computational linguistics using Python,” and “an amazing library to play with natural
language.”

Natural Language Processing with Python provides a practical introduction to


programming for language processing. I highly recommend this book to people
beginning in NLP with Python.
37

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

To download and install NLTK:

1. Install NLTK: run pip install nltk

2. Test installation: run python then type import nltk

To use the above facilities, the following lines of code can be written :
import nltk
import numpy as np
import random
import string # to process standard python strings

Pre-processing the raw text

We shall now define a function called LemTokens which will take as input the tokens
and return normalized tokens.

lemmer = nltk.stem.WordNetLemmatizer()
#WordNet is a semantically-oriented dictionary of English included in NLTK.def
LemTokens(tokens):
return [lemmer.lemmatize(token) for token in tokens]
remove_punct_dict = dict((ord(punct), None) for punct in string.punctuation)
def LemNormalize(text):
return LemTokens(nltk.word_tokenize(text.lower().translate(remove_punct_dict)))

Keyword matching

38

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Next, we shall define a function for a greeting by the bot i.e if a user’s input is a greeting,

the bot shall return a greeting response.

GREETING_INPUTS = ("hello", "hi", "greetings", "sup", "what's


up","hey",)GREETING_RESPONSES = ["hi", "hey", "*nods*", "hi there", "hello", "I am
glad! You are talking to me"]def greeting(sentence):

for word in sentence.split():


if word.lower() in GREETING_INPUTS:
return random.choice(GREETING_RESPONSES)

Generating Response

From scikit learn library, import the TFidf vectorizer to convert a collection of
raw documents to a matrix of TF-IDF features. Also, import cosine similarity module
from scikit learn library.

def response(user_response):
robo_response=''
sent_tokens.append(user_response) TfidfVec =
TfidfVectorizer(tokenizer=LemNormalize, stop_words='english')
tfidf = TfidfVec.fit_transform(sent_tokens)
vals = cosine_similarity(tfidf[-1], tfidf)
idx=vals.argsort()[0][-2]
flat = vals.flatten()
flat.sort()
req_tfidf = flat[-2] if(req_tfidf==0):
robo_response=robo_response+"I am sorry! I don't understand you"
return robo_response
else:

39

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

robo_response = robo_response+sent_tokens[idx]
return robo_response

With the help of above barebones code and adding other useful techniques such
as Sentiment analysis , similarity etc., a required chatbot can be formed. In the initial
stages, it will be very primitive but later with time and as more and more people
interact, it will learn and improve itself.

7.2 Details of Hardware & Software

Two types of platforms are here –

7.2.1 On which the Project is deployed

Hardware Requirements

 Will be fulfilled by Amazon Web Services Cloud based Solution for deploying
websites

Software Requirements

 A browser( Recommended Chrome)

7.2.2 On which Project is Built

Specific Hardware

 Intel i5 8th gen processor


40

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

 A Computing Device like a laptop

Specific Software

 Windows 10 OS

 Angular version 9

 Node.js runtime environment

 Express Server

 MongoDB

 Python Script runners

 Visual Studio Code

7.2.3 Tools & Technologies Used

Angular
Angular is a powerful and robust JavaScript based frameworks for front end
development. It works on MVC (Model-View-Controller) Architecture.It primarily uses
TypeScript which is a superset of JavaScript and is very useful to leverage the uses of
angular. It builds Single Page Applications which do not require reloading once all the
data is rendered giving the user a nice app like experience on their browser. For
designing the front end, bootstrap support is taken which is the most popular CSS
framework to design beautiful websites. Angular is backed by Google which further
41

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

guarantees the quality of service. Angular version 9 is used for the application front end
development.

NodeJS
Node JS is the runtime environment under which JavaScript runs. It is built on
top of Chrome V8 engine plus the underlying C++ support also make it fast.
Traditionally, JavaScript runs only in browser, but NodeJS provides a runtime
environment under which JavaScript can run even on the backend i.e., a desktop like
environment. This puts all the powerful functionalities from front end browser into a
user’s desktop and even on the back end.

Fig. 12 Architecture of NodeJS

ExpressJS
ExpressJS is a framework which is built on top of NodeJS runtime environment
which provides extensive backend management. When a client request is received from

42

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

the user's browser, it hits the ExpressJS web server first. ExpressJS runs on top of the
NodeJS platform, and it connects to the MongoDB database as needed.

MongoDB
MongoDB is a NoSQL based database which returns JSON objects when
queried. It contains user login data ,product information and everything the user or
admin requires to work with. E-commerce application is data intensive. Thus MongoDB
provides fast access to data. It is queried by the ExpressJS framework.

Fig. 13: MEAN stack

Python NLTK
NLTK stands for Natural Language Tool Kit. It is Python’s most extensively
used library for Natural Language Processing(NLP). It contains methods for
Vectorization, Lemmatisation and many more vital functionalities required for a chatbot.
It provides easy-to-use interfaces to over 50 corpora and lexical resources such as
WordNet, along with a suite of text processing libraries for classification, tokenization,
stemming, tagging, parsing, and semantic reasoning, wrappers for industrial-strength
NLP libraries.

43

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Advantages of MEAN Stack for e-commerce development :

 Performance.
 Scalability.
 Efficient Frontend (Fully Customizable)
 No Licensing (Truly Open Source)
 PWA (Progressive Web App) Ready.
 Real Time Response.
 Better User Experience.
 Proven Latest Technology.

Thus, MEAN Stack is one of the best technology stacks for e-commerce app
development.

Fig. 14 Anatomy of a chatbot

44

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Chapter 8
Screen Shots

Home Page

45

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Fig. 15 Home Page

About Page

46

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Fig.16 About Page

Contact Page

47

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Fig. 17 Contact Page

Sign In/ Sign Up Modal

48

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Fig.18 Sign Up/ Sign In Modal

Single Product View

49

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Fig.19 Single Product Page

Products View

Fig. 20 View Products

Shopping Cart

50

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Fig. 21 Shopping Cart

FAQ page

51

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Fig. 22 FAQ page

Paypal Interface

52

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Fig. 23 Paypal Interface

Payments Form

53

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Fig. 24(a) Payment form 1

54

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Fig. 24 (b) Payment form 2

Chatbot

55

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Fig. 25 Chatbot

Admin Login

56

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Fig. 26 Admin Login

MongoDB Interface

Fig. 27 MongoDB Interface

Admin Dashboard

57

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Fig. 28 Admin Dashboard

Chapter 9

58

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Testing

Nowadays, software applications are used everywhere -- hospital, traffic, shops,


business organizations, etc. So not testing the software at all is dangerous. It’s
dangerous in the sense that it can cause severe harm, such as security breach, loss of
money, and even deaths in some cases. Delivering or launching an application without
testing it very well will cause many small or big problems for the users.

Types of Software Testing

Software testing is generally classified into two main broad categories:


functional testing and non-functional testing. There is also another general type of
testing called maintenance testing.

1. Functional Testing

Functional testing involves the testing of the functional aspects of a software


application. When you’re performing functional tests, you have to test each and every
functionality. You need to see whether you’re getting the desired results or not.
There are several types of functional testing, such as-

 Unit testing

 Integration testing

 End-to-end testing

 Smoke testing

 Sanity testing

 Regression testing

59

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

 Acceptance testing

 White box testing

 Black box testing

 Interface testing

Functional tests are performed both manually and using automation tools. For
this kind of testing, manual testing is easy, but you should use tools when necessary.

2. Non-functional Testing

Non-functional testing is the testing of non-functional aspects of an application,


such as performance, reliability, usability, security, and so on. Non-functional tests are
performed after the functional tests.

With non-functional testing, you can improve your software’s quality to a great
extent. Functional tests also improve the quality, but with non-functional tests, you have
the opportunity to make your software even better. Non-functional testing allows you to
polish the software. This kind of testing is not about whether the software works or not.
Rather, it’s about how well the software runs, and many other things.

Non-functional tests are not generally run manually. In fact, it’s difficult to
perform this kind of tests manually. So these tests are usually executed using tools.
There are several types of non-functional testing, such as-

 Performance testing

 Security testing

 Load testing

60

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

 Failover testing
 Compatibility testing

 Usability testing

 Scalability testing

 Volume testing

 Stress testing

 Maintainability testing

 Compliance testing

 Efficiency testing

 Reliability testing

 Endurance testing

 Disaster recovery testing

 Localization testing

 Internationalization testing

Different Types of Software Testing

1. Unit Testing

61

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Testing each component or module of your software project is known as unit


testing. To perform this kind of testing, knowledge of programming is necessary. So
only programmers do this kind of tests, not testers.
2. Integration testing

After integrating the modules, you need to see if the combined modules work
together or not. This type of testing is known as integration testing. You need to perform
fewer integration tests than unit tests.

3. End-to-end Testing

End-to-end testing is the functional testing of the entire software system. When
you test the complete software system, such testing is called end-to-end testing. You
need to perform fewer end-to-end tests than integration tests.

4. User Interface Testing

User interface testing involves the testing of the application’s user interface. The
aim of UI tests is to check whether the user interfaces have been developed according to
what is described in the requirements specifications document.

By running UI tests, you can make the application’s user interfaces more user-
friendly and appealing to the eyes.

5. Accessibility testing

Testing whether your software is accessible to disabled people or not is termed


as accessible testing. For this type of tests, you need to check if disabled people such as
those who are color blind, blind, and deaf can use your application.

The right choice of color and contrast need to be made to make your software
accessible to color-blind people.

62

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

6. Alpha testing

Alpha testing is a kind of testing to look for all the errors and issues in the entire
software. This kind of test is done at the last phase of app development and is performed
at the place of the developers, before launching the product or before delivering it to the
client to ensure that the user/client gets an error-free software application.
Alpha testing is run before the beta testing, which means that after performing alpha
testing, you need to run beta testing.

Alpha testing is not performed in the real environment. Rather, this kind of tests
is done by creating a virtual environment that resembles a real environment.

7. Beta testing

As said earlier, beta testing takes place after alpha testing. Beta testing is done
before the launch of the product. It is carried out in a real user environment by a limited
number of actual customers or users, in order to be certain that the software is
completely error-free and it functions smoothly. After collecting feedback and
constructive criticism from those users, some changes are made to make the software
better.

8. Ad-hoc testing

As the name suggests, ad-hoc testing is a kind of testing that is performed in an


ad-hoc manner, without using any test cases, plans, documentation, or systems. Unlike
all other types of testing, this kind of testing is not carried out in a systematic manner.
Although finding errors can be difficult without using test cases, there are technical
issues that are easily detected through an ad-hoc test, but are hard to find through other
testing approaches that use test cases.

9. Compatibility testing

63

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Compatibility testing involves compatibility checking of the software with


different operating systems, web browsers, network environments, hardware, and so on.
It checks whether the developed software application is working fine with different
configurations.

10. Backward compatibility testing

Backward compatibility testing is carried out to test if a brand new or an updated


version of an application is compatible with the previous versions of the environments
(such as operating systems and web browsers) on which the software runs. Sometimes,
some application is updated specifically to match the standard and style of a newer,
more modern environment. In that case, support for backward compatibility is
necessary.

11. Browser compatibility testing

As the name says, browser compatibility testing checks a web application for
browser compatibility. More specifically, it is tested whether the web app can easily be
accessed from all versions of the major web browsers.
It is a specific form of compatibility testing, while compatibility testing checks for
general compatibility.

12. Performance testing

Performance tests are run to check if the software’s performance is good or not.
There are performance testing tools that analyze your app’s performance and show you
the performance issues. By fixing those issues, you’ll be able to increase the
performance of your software application.

13. Load testing

64

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Load testing is one kind of performance testing that tests how much load a
system can take before the software performance begins to degrade. By running load
tests, we can know the capacity of taking load of a system.

14. Recovery testing

Recovery testing involves the checking of whether the application can recover
from crashes and how well it recovers. In this kind of tests, testers observe how well the
software can come back to the normal flow of execution. Crashes can happen anytime.
Even if your software is of exceptional quality, crashes may happen. You don’t know
when they may take place and annoy the users.

So you have to implement mechanisms that will recover the software application
quickly and that will make the application run smoothly again.

15. Regression testing

If you need to make changes in any component, module, or function, you have
to see if the whole system functions properly after those modifications. Testing of the
whole system after such modifications is known as regression testing.

16. Agile testing

Carried out by the QA team, Agile testing is a type of testing that is conducted
according to the rules of agile methodology. This kind of testing is done from the actual
customers’ viewpoint.

17. API testing

Just like unit testing, API testing is also a code-level testing type. The basic
difference between unit testing and API testing is that unit testing is performed by the
development team whereas API testing is handled by the QA team.

65

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

18. Black box testing

Performed by the QA team of a company, black box testing is a testing technique


that involves the checking of the application’s functionality without having any
technical knowledge of the application, like the knowledge of the code’s logic, how the
code works, knowledge of the internal structure, etc.

19. White box testing

Performed by the development team, white box testing is a testing method that
requires a good understanding of the application’s code. It requires great knowledge of
the app’s internal logic.

20. Security testing

Security tests are performed to ensure the security of your application, in order
that security breaches can be prevented. Security experts run this kind of tests to see
how much your software is secure from attacks and to find security issues so that the
app’s security can be strengthened.

21. Usability testing

Testing the user-friendliness of an app is known as usability testing. It involves


the checking of how much usable or user-friendly the app is. It is tested whether any
user can easily use your software without getting stuck.

22. Scalability testing

Scalability testing verifies whether the software is scalable or not. In other


words, it checks if your app performs well when the number of users, amount of data, or

66

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

the number of transactions increases significantly. A software application that is not


scalable may cause great business loss.

23. Reliability testing

Reliability testing is a type of software testing that verifies if the software is


reliable or not. In other words, it checks whether the software runs error-free and that
one can rely on it.

24. Acceptance testing

The client who will purchase your software will perform acceptance testing (also
known as User Acceptance Testing) to see if the software can be accepted or not by
checking whether your software meets all the client’s requirements and preferences. If
your software doesn’t meet all the requirements or if your client doesn’t like something
in the app, they may request you to make changes before accepting the project

Features Tested

1. User Register

67

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Expected
S/N Input data Actual Results Pass Fail
Results
Display error Error: “Name is
Enter empty
1 value for First message to required, Please ✓
Name enter some Enter Correct
valid text. details”.
Enter empty
2 value for Last No error No error ✓
Name
Display error
3 Enter empty message to Error: “This Field ✓
value for User ID enter some is required”.
valid text.
4. Display error
Error Message:
message to the
Enter a “The input
user and he
username username is
should not be
already in use already taken ✓
allowed to
with an existing please enter
register for an
user some other
account with
username”.
that username.

Table 2 User Registration test cases

2. Add to cart
S/N Input data Expected
Actual Results Pass Fail
Results
Click “Add to
The product No Error. “The
Cart” Button for
should be product is
1. product not ✓
moved to wish successfully
already in the
list. added to Cart ”
cart.
If product No Error. “The
Click “Add to
already exists product quantity
Cart” Button for
2. then its quantity is successfully ✓
product already
is updated by increased by
in the cart.
1. one in the Cart ”

68

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

Table 3 Add to cart test cases

3. Place Order

S/N Expected
Input data Actual Results Pass Fail
Results
An empty
An appropriate
required field.
message
(First name and Error message:
should be
last name, Street “Please enter all
displayed and
1. address, city, the required ✓
the user should
state, zip code, details to place
not be allowed
email, credit card the order”
to place the
information,
order.
shipping address)
The user should The product
be able to place quantity should
No Error. The
an order and be updated or
2. redirected to the deleted product is ready ✓
to be shipped
order according to
within the week.
confirmation the specified
page. input number.

Table 4 Place Order Test Cases

4. Manage Order

S/N Expected
Input data Actual Results Pass Fail
Results
The product
price should be
Enter a Positive No Error. “The
updated
1. integer number in item is updated ✓
according to
the “Price” field successfully”
the specified
input number
Seller will enter
the date range,
number of orders
and type of order, The status of
69

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

to view the No Error. “The


that order is
existing orders in Details of the
updated, but
2. database. He/she Product is ✓
the status of all
will then select successfully
other orders
the order for Updated”
remains same
which the status
is to be updated
where its details
could be edited.

Table 5 Manage Order Test Cases

Chapter 10
System Security and Maintenance

System Maintenance

Maintenance is a necessary component of any Application over time. Each individual


Component of web application has needs that must be met to keep them running
optimally. It's easy to overlook this maintenance and as a result, systems can perform
slowly or have issues that seem to come out of nowhere. By regularly addressing the
70

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

many items that need attention on every device, performance and reliability can be
counted on over the life of each system.

We can create a schedule of maintenance tasks and implement them to keep you as
efficient with your systems as possible.

Security System

Security covers a lot of areas, the most important of which is protecting your systems
from internet borne attacks. They can come in many forms, and many believe that
"hackers" are the primary problem. While hacking certainly exists and is quite common
- many small business networks having hundreds of hack attempts per day that you may
not even know are happening - the more common form of infiltration is from the actions
of inside employees. These can come in the form of simply visiting web sites,
downloading files, or viewing movies and jokes emailed from family, friends, or co-
workers.

We can examine the systems, deploy protective software, and educate user on the ways
that he/ she can protect his/ her business, computers, and data from prying eyes and
modern-day vandals.

Chapter 11
Conclusion and Future Scope

The current system generated produces desirable results for all the stake holders
involved. It provides a single place for buyers and sellers to make purchase online and
manage the system respectively. Also an interactive chatbot is integrated which helps to
resolve common user queries on the go.

Although the system provides many useful functionalities but it still misses
many features which take full advantage of the MEAN stack such as Efficient Search.
71

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

MongoDB is known to be specially useful for search queries through database. Right
now, it provides only a simple search bar which uses brute force matching.

Also, tracking order features for customer, cancelling order, more payment
gateways like UPI and many more can also be included. Using better information
retrieval techniques targeted ads can also be shown to the user.

Chapter 11
Bibliography

These are few links which helped us at each & every step in completing this project-

 Angular official documentation - https://angular.io/docs


 MongoDB official documentation - https://docs.mongodb.com/

72

Downloaded by Stark walker (starkwalker1@gmail.com)


lOMoARcPSD|17742102

 W3Schools Node Js tutorial - https://www.w3schools.com/nodejs/


 https://www.oreilly.com/library/view/building-an-e-commerce/9781785286551/
 NLTK docs – https://nltk.org/
 https://medium.com/botsupply/chatbot/docs

73

Downloaded by Stark walker (starkwalker1@gmail.com)

You might also like