You are on page 1of 17

Software Requirements

Specification

Price Gram
Version 1.0 approved

Prepared by

Affan Bin Faisal 370139

Muhammad Abdul Basit 375441

Muhammad Armaghan Shakir 380864

11/20/2022

Table of Contents
Table of Contents........................................................................................... ii
Revision History............................................................................................. ii

1. Introduction......................................................................................................... 4

1.1 Purpose.............................................................................................................. 4

1.2 Document Conventions...................................................................................... 4

1.3 Intended Audience and Reading Suggestions................................................... 4

1.4 Product Scope.................................................................................................... 4

1.5 References......................................................................................................... 4

2. Overall Description............................................................................................. 5

2.1 Product Perspective........................................................................................... 5

2.2 Product Functions.............................................................................................. 5

2.3 User Classes and Characteristics.................................... ................................. 5

2.4 Operating Environment...................................................................................... 6

2.5 Design and Implementation Constraints............................................................ 6

2.6 User Documentation.......................................................................................... 6

2.7 Assumptions and Dependencies....................................................................... 6

3. External Interface Requirements....................................................................... 7

3.1 User Interfaces.................................................................................................. 7

3.2 Hardware Interfaces.......................................................................................... 7

3.3 Software Interfaces........................................................................................... 7

3.4 Communications Interfaces.............................................................................. 7

4. System Features............................................................................................... 8

4.1 Dashboard......................................................................................................... 8

4.2 Navigation Bar................................................................................................... 9

4.3 Registration/Sign Up.......................................................................................... 9

4.4 Login......................................................................................................... 10

4.5 User Profile............................................................................................... 10

4.6 Categories................................................................................................. 11

4.7 Stores........................................................................................................ 11
4.8 Price Comparator...................................................................................... 12

4.9 Favourites................................................................................................. 13

4.10 History....................................................................................................... 13

4.11 Search Bar................................................................................................ 14

4.12 Popular .................................................................................................... 14

4.13 Data Gathering..........................................................................................15

5. Other Nonfunctional Requirements.......................................................... 16

5.1 Performance Requirements...................................................................... 16

5.2 Safety Requirements................................................................................ 16

5.3 Security Requirements............................................................................. 16

5.4 Software Quality Attributes....................................................................... 16

5.5 Business Rules......................................................................................... 17

6. Other Requirements.................................................................................. 17

Appendix A: Glossary............................................................................................ 17

Revision History
Name Date Reason For Changes Version

1. Introduction
1.1 Purpose
The product is called “PriceGram”. It fetches data from best selling e-commerce websites,
compares the prices, and recommends a product to the user based on his locality and
interests. We are building this platform from scratch, starting with the first revision. This
document specifies the requirement for this website.
1.2 Document Conventions
Following conventions have been applied to give a better and more convenient reading
experience.

● Bold words are the names of technologies and terms that are specific to the software
field.
● Underlined content is the summary of the topic or paragraph in one line. Users can
choose to read this line from each topic and gain a bird eye view of the document.
● Italic content is used where a foreign quote is used, from a website, paper, article on
the internet.

1.3 Intended Audience and Reading Suggestions


Users who are interested in buying and companies or sellers interested in selling their
products can use this platform. The website will be maintained by a front-end team, whose
job is to work on design and implementation of website layout, then back end developers will
ensure smooth flow of the data which will all be tested later by testers and given to
marketing staff.

Document is advised to be read in a sequence starting from top to bottom, without skipping a
part for better understanding of the requirements.

1.4 Product Scope


The product covers all the top notch selling and buying platforms, to provide users with every
possible option they can have before buying one. This product will provide a chance to new
sellers and store owners to gain some spotlight and use this platform as their own personal
e-store.

1.5 References
● Website PriceGram - https://pricegram.netlify.app
● Selenium (Web Scraping) - https://www.selenium.dev
● SQL (Database) - https://dev.mysql.com/doc/
● Python (Back-End) - https://www.python.org

2. Overall Description
2.1 Product Perspective
“PriceGram” provides its users a platform where they can search for their product at the best
price. It includes the algorithms which compare the price of the required product and show
the user the results. It is a new self-contained project.

2.2 Product Functions


The product will perform the following functions.
● Data Collection from different websites using Web Scraping.
● Storing and Updating data in our database.
● Front-End will fetch this data through an API from the Back-End.
● The user will land on the dashboard, from where he may choose to compare prices
of a product or search through different categories or stores.
● Sellers on the other side of the website can upload their content as well.

2.3 User Classes and Characteristics


2.3.1 Users:

This product will be used by customers as part of the primary web application.

2.3.2 Maintenance:

This product will be used by the maintenance team in future versions.

2.3.3 Management:

This product will be used by management for insights into product performance.

2.3.4 Marketing:

This product will be used by the marketing team for advertisement purposes. The user
classes are mentioned in their order of priority assigned.

2.3.5 Security:

Handling security issues with the website on deployment and transfer phases to secure data
of different classes.

2.4 Operating Environment


Since it is a web application it can be operated on every system having any OS of any
version. It is compatible with modern ICP’s (Internet Communications Protocols).

2.5 Design and Implementation Constraints


1) Scraping Constraints:
a) One of the main features of this product is to scrape data from different
websites. But
b) Not all the websites allow scraping of data.
c) It is very difficult to scrape data because each website has its own way to
organize
d) Different websites have their own way to organize data in the front end. So it
is very difficult to scrape data at once from multiple websites.
e) We have to write separate scraping algorithms for different websites.
2) Storage and Hardware Constraints:
a) We don't have large servers to store large amounts of data and multiple
hardwares to perform multiple tasks at the same time.
b) Also the server might overload when multiple scraping algorithms are running.

2.6 User Documentation


● A comprehensive and easy to understand user manual will be released on
deployment of the website.
● For basic understanding, the dashboard is divided into 2 parts.
○ The users can compare a product provided by different stores and see the
differences in price and features.
○ Users can search for a product, store, keep items in their wishlist and find
items recommended to them based on their history and interests.

2.7 Assumptions and Dependencies


● The website is collecting data from different e-commerce platforms, therefore the
data is dependent on these sources and may change as the sources manipulate their
data.
● Data will be stored in a database that will be independent of the front-end and the
back-end.
● Data Scraping will be done by the bots that may not necessarily be hosted on the
same server as our back-end.

3. External Interface Requirements


3.1 User Interfaces
1. Registration interface where users sign up for the website gathering all of their
required details.
2. Login interface where users sign in to their accounts for further authentication and
authorization processes to maintain the basic required security and privacy
procedures.
3. Searching interface where users can search the product of their choice followed by
the process that fetches data from several online stores using efficient web scraping
algorithms.
4. Recommended Results interface where users can see the most relevant and
appropriate results regarding the searched product.
5. Price Comparator interface where users can view the comparison between the prices
of a particular product among various online stores.

3.2 Hardware Interfaces


There are no specific hardware interfaces and requirements. All the data will be
uploaded to the cloud. Front-end, back-end and the database will be hosted on
servers.
3.3 Software Interfaces
Different components of software are

● Front-end
● Back-end
● Database

Some other integrations are

● Google Analytics API


● Google OAuth
● Front-end frameworks like Bootstrap, jQuerry

3.4 Communications Interfaces


● API is used to communicate data between front-end and database server.
● HTTP protocol is used to request data and receive responses in JSON format. This
includes several HTTP methods like GET, POST, PUT, PATCH and DELETE, etc,
● Back-end is also communicating with the server holding the database.
● Data flows as follows
○ Front-end requests data from the back-end.
○ Back-end communicates with the database and fetches the required data.
○ Backend the sends this data, as a JSON response to the front end.
○ Front-end then converts the data into HTML to display it on the webpage.

4. System Features
All the system requirements are organized below from top to bottom in order of their priority
and importance.

● Dashboard
● LogIn
● SignUp
● User Profile
● Comparison
● Products
● Stores
● Favorites
● Popular
● Data Gathering

4.1 Dashboard
4.1.1 Description and Priority

It is the most essential feature. When the user visits the website it is the first UI to
appear in front of him/her. It contains all the other important features users can
access. Without this other features can not be accessed. Features/components are
as follow:
● Log in / Sign up button.
● Search Bar.
● Navigation Bar.
● List of Latest Products in an organized way.
● Contact Information.

4.1.2 Stimulus/Response Sequences

Stimulus Response

User clicks on any button of the Navigation System will open the corresponding page.
bar.

User clicks on the Search bar. System activate the Search bar.

User clicks on any product icons/buttons System will open that page.
that are listed.

4.1.3 Functional Requirements

● The system must allow users to access and click on all the buttons/icons on
Dashboard.

4.2 Navigation Bar


4.2.1 Description and Priority

It is an important feature on Dashboard. It contains the following features:

● Profile icon
● Products icon/button
● Categories icon/button
● Stores icon/button
● Comparison icon/button
● Favorites icon/button
● History icon/button

4.2.2 Stimulus/Response Sequences

Stimulus Response

User presses the Profile icon. System will open the User Profile page.

User presses the Categories button. System will open the Categories page.

User presses the Stores button. System will open the Stores page.

User presses the Comparison button. System will open the Comparison page.

User presses the Favourites button. System will open the Favourites page.

User presses the History button. System will open the History page.
4.2.3 Functional Requirements

● Before opening the History and Favourite pages System will check whether the
user is registered or not.

4.3 Registration / Sign Up


4.3.1 Description and Priority

It is not a very important feature because users can access the website without
making an account. However, to access additional features like Favourite, History
etc Registration is a must step.

4.3.2 Stimulus/Response Sequences

Stimulus Response

User enters his/her valid gmail id in the System will register it and put it in the
specified field. database.

User enters his/her name (only alphabets), System will register it and put it in the
date of birth. database.

User enters account invalid password. System will register it and put it in the
database.

User enters any invalid info. System will prompt “Invalid Entry”.

4.3.3 Functional Requirements

● System will first check in its own database whether the gmail is already registered or
not.
● Then System will send a query to google API to validate gmail.
● Then System will check all the fields for validation.

4.4 Log In
4.4.1 Description and Priority

This feature is only for registered users. It allows them to access their account using
login credentials.

4.4.2 Stimulus/Response Sequences

Stimulus Response

User enters a valid username and System will be authenticated


password.

User enters invalid username or password. System will show an “Invalid Credentials”
error.
4.4.3 Functional Requirements

● The system must look up the username and password combinations in the database.
● If a combination is found then authenticate users else show error.

4.5 User Profile


4.5.1 Description and Priority

This part falls in the list of low priority features but it is a basic protocol in every
software dealing with countless users every hour.

4.5.2 Stimulus/Response Sequences

Stimulus Response

User clicks on the Profile button on All the required details of the user are
Dashboard.. visible on the page.

User clicks on the Edit Profile button Users can change the details of the profile.

User clicks on History button The history of the items viewed by the user
appear on the page

4.5.3 Functional Requirements

● The user must be able to view his profile and correct details
● The user must be able to edit his details on the user profile
● When the user is editing the profile make sure all the fields are filled correctly.
Account name cannot be changed. Rest can be changed.

4.6 Categories
4.5.1 Description and Priority

This Features allows users to access or view the products available on the website
according to the categories. This page contains the list of categories name like:

● Laptops
● Mobiles
● GPU
● etc.

4.2.2 Stimulus/Response Sequences

Stimulus Response

Users click on any category. System will open that page.

4.2.3 Functional Requirements


● System must allow the user to access all links/buttons etc.

4.7 Stores
4.6.1 Description and Priority

● This feature is of low priority. The website can work without adding this particular
feature.
● Different stores, selling their products, have their HTML pages, providing information
of that store and the products they are selling.

4.6.2 Stimulus/Response Sequences

Stimulus Response

The user searches for a store Names and basic information of different
stores are provided that are most relevant
to the search

User clicks a store element User is redirected to the store’s page,


where every information about the store in
the database is provided, including the
products showcased by the store.

User bookmarks the store Store is saved in the user's favourites.

User clicks a product User is redirected to the product page

4.6.3 Functional Requirements

● This Store page can access data from the database using the backend as an API.
● The store can have basic user data to keep an analytics on which users are visiting
the store.

4.8 Price Comparator


4.7.1 Description and Priority

● It is the most important part of the process. It will compare the prices of the product in
different webstores. All the processes prior to it lead to this process.

4.7.2 Stimulus/Response Sequences

Stimulus Response

The user clicks on the button Compare the The system shows a graphical model or any
prices on the product icon. sort of statistical model to display the
comparison to the user.

4.7.3 Functional Requirements


● It must take into account all the prices of the products most relevant to the searched
product.
● It must compare the prices of the searched product and show which store is selling
the cheap products. It can also be a list of stores in descending order of price.
● It must display the results in a graphical or statistical model which is user-friendly and
visually appealing.

4.9 Favourites
4.8.1 Description and Priority

● This feature is of low priority.


● System can work without this feature.
● This feature is used by users to save some products or stores.

4.8.2 Stimulus/Response Sequences

Stimulus Response

Users choses and item to be added to The product is added in user’s favourites in
Favourite the database.

Users visits his Favourites All the products and stores that users have
added in this list are previewed here.

User clicks on any record. System will open that page.

4.8.3 Functional Requirements

● System will check user credentials and then give corresponding data.

4.10 History
4.9.1 Description and Priority

This feature is only available for registered users. Users can view their history by
clicking the History button on the Navigation Bar. This contains the list of products
they have viewed.

4.9.2 Stimulus/Response Sequences

Stimulus Response

User clicks on an item in History. System will open it.

User clicks on the Clear History button System will delete that particular amount of
and selects the amount of time. time of history.

User ticks the check box corresponding to System will delete that record.
the record and presses the Delete button.

4.9.3 Functional Requirements


● Users can access any record in history.
● Before Accessing the record clicked by the user system will check whether it is
present in the database anymore or not.

4.11 Search Bar


4.10.1 Description and Priority

It is one of the most important Features. It will fetch the product most relevant to the
searched product. It is the most complex process in the application which involves
heavy web scraping algorithms to fetch data..

4.10.2 Stimulus/Response Sequences

Stimulus Response

User searches for the product in the The app fetches data from the websites of
search bar. several popular online stores.
The app displays the details of the products
in tiles for the user.

4.10.3 Functional Requirements

● The images, prices and names of the product and also names of the stores from
where the product belongs should be displayed.
● The ability to filter the results according to the requirements of the user must be
provided to it.

4.12 Popular
4.11.1 Description and Priority

● This feature is of medium priority.


● System can work without this feature, but adding the feature will add a lot of value by
giving a better smooth user experience.

4.11.2 Stimulus/Response Sequences

Stimulus Response

Recommend products based on popularity Products getting more clicks and ratings are
returned on response.

Recommend products based on the user's After all the products are filtered, they are
interest. sorted in order of user’s preference by
studying the user's past experience and
clicks.

Recommendation on dashboard When a user is on the home page, products


and stores are shown based on the user's
preference.
Recommendation on search When a user searches for a particular
product, the products that are filtered from
the database based on their similarity to the
searched query, they are further sorted
based on the user's preferences.

4.11.3 Functional Requirements

● The back-end should implement proper robust algorithms for computing these
recommendations that might involve latest technologies of machine learning as per
need.

4.13 Data Gathering


4.12.1 Description and Priority

● Data Gathering is the most important part of our system


● Data is collected and stored in database, which is used by different components

4.12.2 Stimulus/Response Sequences

Stimulus Response

Collecting Data from different websites Applying the techniques of web scraping
and requesting data from APIs

Validate the data Dealing with missing values and removing


irrelevant data

Data Formatting Data collected from different sources is in


different shapes. Data has to be brought in
a unique format with the same keys and
columns.

Update As information changes, and the data


expires, it is removed from the database

4.12.3 Functional Requirements

● Automating the procedure of data collection.


● Cleaning and processing the data to make sense out of it.
● Bringing all the data from different sources in a similar format.
● Data is then stored in the database from where it is available to the back-end.

5. Other Nonfunctional Requirements


5.1 Performance Requirements
● Back-end is to be hosted on a strong server which supports multiple API requests at
a time.
● Databases should be robust and have enough storage to accommodate all the data.
● Front-end files should be optimized and kept small in size, for a smooth user
experience, lesser load on user’s machine and fast flow of data by the API.

5.2 Safety Requirements


● Only the required data of the users should be stored in the databases. Data that has
no use in the above mentioned procedures shall not be stored on server end.
● The data which is sensitive and personal shall not be received from the user. It can
cause a lot of privacy issues leading to many intellectual and financial losses.
● The privacy laws must be acted upon and they should not be violated at all costs.
Any violation can cause complete ban of the application and critical financial
penalties.
● The data of the user shall not be sold or made accessible to any third-party
organization. This data is only relevant to the respective web application and
therefore it should be kept private at all costs.

5.3 Security Requirements


● The data of the user should be properly secured from third-party entities, hackers
and breachers.
● This means that the sensitive data should be properly encrypted, hashed and be
passed through all sorts of security procedures.
● The web application must be hosted on a secure server that is immune to all sorts of
third-party attacks like DDOS attacks.
● There should be proper content distribution networks and load balancing
procedures.

5.4 Software Quality Attributes


● Website will be available on all platforms, from any device that supports a browser.
● Website is flexible and adaptable to changes in the database.
● Website is built responsive, that supports it for different screens, mobiles, tablets,
laptops and big screen computers as well.
● All the data is saved in the cloud, with the use of CDNs, therefore guaranteeing
reliability.

5.5 Business Rules


● As a normal user, you can search for different stores, products, compare items for
prices and features.
● You can register your store on the website to run your business online.

6. Other Requirements
6.1 Glossary
Terms Definitions

A method which fetches large amounts of


Web Scraping data from any webpage(s) for further
processing or use.

Front-end is a graphical user interface of a


Front-End website or any application

The backend communicates with the


Back-End frontend, sending and receiving
information to be displayed as a web
page.
Application Programming Interface allows
API two applications to communicate with each
other

Storage in Cloud for storing data


Database

Internet Communication Protocols


ICPs

OAuth allows users to share specific data


Google OAuth with an application while keeping their
usernames, passwords, and other
information private.

A framework is a real or conceptual


Framework structure intended to serve as a support or
guide for the building of something

Hypertext Transfer Protocol (HTTP) is an


HTTP Protocol application-layer protocol for transmitting
hypermedia documents, such as HTML.

JavaScript Object Notation (JSON) is a


JSON standard text-based format for representing
structured data based on JavaScript object
syntax. It is commonly used for transmitting
data in web applications.

HTTP stands for HyperText Transfer


HTTP Method Protocol which is about communication
between web clients and servers

Authentication is the act of proving an


Authentication assertion, such as the identity of a computer
system user.

Filtering is the process of selecting


Filters particular content of interest.

Encryption is the method by which


Encryption information is converted into secret code
that hides the information's true meaning.

Hashing is the process of transforming any


Hashing given key or a string of characters into
another value. This is usually represented
by a shorter, fixed-length value or key that
represents and makes it easier to find or
employ the original string.

A server is a computer program or device


Server that provides a service to another computer
program and its user, also known as the
client.

A CDN (content delivery network), also


CDN called a content distribution network, is a
group of geographically distributed and
interconnected servers. They provide
cached internet content from a network
location closest to a user to speed up its
delivery.

A distributed denial-of-service (DDoS)


DDoS Attacks attack is a malicious attempt to disrupt
the normal traffic of a targeted server,
service or network by overwhelming the
target or its surrounding infrastructure
with a flood of Internet traffic.

You might also like