Professional Documents
Culture Documents
Final Year Project Report
Final Year Project Report
Session 2019-20
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.
Signature
Mrs. Durga Puja
H.O.D.
CS Department
ii
CERTIFICATE OF APPROVAL
Guided by
Signature
Mrs. Durga Puja
H.O.D.
CS Department
iii
DECLARATION
Aadish Jain
1606510001
Akash Agrawal
1606510006
Rahul Agrawal
1606510042
Chandra Shekhar Shukla
1606510014
Date: 30 April 2020
ACKNOWLEDGEMENT
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
8. SCREEN SHOTS……………………………………………………………..44
9. TESTING……………………………………………………………………...57
12. BIBLIOGRAPHY…………………………………………………………….70
LIST OF FIGURES
LIST OF TABLES
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
business exchanges trading goods and services between corporations. It is currently one
of the most important aspects of the Internet to emerge.
Chapter 2
Theoretical Background
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.
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.
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.
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.
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)”.
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.
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:
Do the proposed equipments have the technical capacity to hold the data
required to use 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.
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.
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.
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
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
Chapter 5
System Analysis
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.
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
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
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 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
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.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.
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
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
• Shopping Cart
User Characteristics
2. Sellers
3. Administrator
Design Implementation
The following software and hardware frameworks are required to develop the
system:
15
Front End
Framework: Angular
Back End
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
Operating Environment
Software Requirements
▪ Any Browser(Chrome is recommended)
Hardware Requirements
▪ Mobile device or Laptop with Internet Connection
Assumptions
The customer and seller must have a basic knowledge of computers and English
Language. Browser is already installed in the device.
Functional Requirements
• Multiple payment methods( Cash on Delivery, UPI, Debit Card, Credit Card)
17
• Customer support
• ChatBot etc.
Non-Functional Requirements
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.
User Interface
• Payment Interface
• Seller dashboard
18
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.
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.
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
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
20
21
Symbols Description
Data Flow: Data flow are pipelines through the packets
of
information flow.
Process: A Process or task performed by the system
22
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.
23
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
25
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.
26
Fig. 10 ER diagram
27
Chapter 7
System Implementation, Coding
&
Details of Hardware and Software
Defining how the information system should be built (i.e., physical system
design),
Ensuring that the information system meets quality standard (i.e., quality
assurance).
To create the best possible modular system, we planned out the development process
into four parts-.
28
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:
29
To create this project’s basic structure simply type at the command prompt, the
following command :
Then to view the basic contents, run the following command on the prompt
inside the ShopOn Project :
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
title = 'ShopOnProject';
}
30
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 :
31
isAuthenticated = false;
getAuthStatus() {
return this.authStatus.asObservable();
32
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() {
return;
return {
token: token,
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
bcrypt.hash(req.body.password, 10)
.then(hash => {
email: req.body.email,
password: hash
});
user.save()
.then(result => {
res.status(201).json({
result: result
});
})
.catch(err => {
res.status(500).json({
});
});
});
};
The following lines of code help to understand the mongoose way of modelling
data :
35
});
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
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.
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.”
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
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
Next, we shall define a function for a greeting by the bot i.e if a user’s input is a greeting,
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
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.
Hardware Requirements
Will be fulfilled by Amazon Web Services Cloud based Solution for deploying
websites
Software Requirements
Specific Hardware
Specific Software
Windows 10 OS
Angular version 9
Express Server
MongoDB
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
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.
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
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.
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
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.
44
Chapter 8
Screen Shots
Home Page
45
About Page
46
Contact Page
47
48
49
Products View
Shopping Cart
50
FAQ page
51
Paypal Interface
52
Payments Form
53
54
Chatbot
55
Fig. 25 Chatbot
Admin Login
56
MongoDB Interface
Admin Dashboard
57
Chapter 9
58
Testing
1. Functional Testing
Unit testing
Integration testing
End-to-end testing
Smoke testing
Sanity testing
Regression testing
59
Acceptance 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
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
Failover testing
Compatibility testing
Usability testing
Scalability testing
Volume testing
Stress testing
Maintainability testing
Compliance testing
Efficiency testing
Reliability testing
Endurance testing
Localization testing
Internationalization testing
1. Unit Testing
61
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.
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
The right choice of color and contrast need to be made to make your software
accessible to color-blind people.
62
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
9. Compatibility testing
63
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.
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.
64
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.
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.
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.
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.
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
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.
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.
66
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
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.
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
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.
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
Chapter 10
System Security and Maintenance
System Maintenance
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
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-
72
73