Software Requirment Specification - abdulmukit98/techshopJU GitHub Wiki

[Final Version] (https://github.com/abdulmukit98/techshopJU/blob/main/TechshopJU_SRS.pdf)

Introduction

From the beginning of civilization, man is trying to develop science and technology to reduce effort. In this way human invented difference device and tools for the betterment of life. Invention of electricity make our life dynamically upgraded. Diference electronic component is used to work in a integrated platform. Internet of things make the life better. In this project we create an e-commerce site to make these component avail to users doorstep.

Purpose

Basic purpose of TechshopJu is to make electronic component such as Arduino, Raspberry pi, NodeMCU, available to remote users. So that they can make their own Iot environment themselves.

Intended Audience

This system audience may vary in different form. Typical audience are:

  • Developers / Admin
  • Project Manager
  • Tester
  • General User

Intended Use

  • Developers: Developers are the team that organize the overall management of the project. As user's requirement the create create the interface of the projects, make it effective and perform future maintenance.

  • Project Manager: Product manager communicate with business analyst and configure the requirements of the products.

  • Tester: In each iteration of software development life cycle, after developer developer a version of the product, tester perform test in the product and check the functionality of the products.

  • General User: General user are the end-user of the software. They use the SRS to specify what they need the developer to do. They use the final outcome of the software and get benefited from it.

Product Scope

Basically this is Mobile application e-commerce system. We build this application in android framework for the availability of most of the users. Benefits of this application are:

  • User can order product from online.
  • User can monitor latest information of products.
  • User can search for a product
  • User can order their PCB.

Objective of this application are:

  • Inspire user to develop Internet of Things projects.
  • Simplify user's daily work.

Risk Definition

  • Product is lost in the shipment
  • User provide an incorrect PCB schematic.
  • User authentication interrupt.

Overall Description

We are going to build an e-commerce mobile platform inspired from techshopbd.com. Initially user need to authenticate this application. The Login page appear for users verification. If user dont hava an account, they can create one in the create_account section. After successful authentication, user is redirected to product catalogue. It display a list of product along with Image and Price. By clicking in the product item, user will send to Product_Detail_Activity where he can place order of the product. User can also save a product to wish list & cart for future reference. User can also order PCB for his project int the PCB section If Admin is logged in, He will go to CURD section where he can

  • add a product
  • view catalogue
  • update product information
  • remove a product from database

Firebase is used to govern the database of this project.

User Classes and Characteristics

Different kind of use can use this app.

  • Students of Computer Science or Electrical Department for performing his projects.
  • It firm executive.
  • Research Assistant in IoT fields.
  • General use who is interested to make his home smart.

Operating Environment

  • Operating System: Windows, Linux, Mac
  • Database: Firebase
  • Platform: Android

Constraints

  • We have to develop the application in Java language.
  • The system must operate clearly in users environment (Android).
  • We have to finish this project within January 2022 \end{itemize}

Assumptions

  • User can read and write in English
  • User must have internet access to get data from cloud.
  • User must be familiar in operating android application.

Functional Requirements}

Create Account

As a new user, I want to register an account to the system so that I can access the system.
Confirmation / Acceptance

  • User have to input a his personal Gmail id, user name, contact no to register.

  • Password must be at least 8 character along with letters and numbers and special character.

  • After registration, user will redirect to product catalogue.

Failure Criteria

  • User provide an invalid email.
  • Password is failed to follow the criteria.
  • User already have existing account on that email, redirect to login page.

Login

As a registered user I want to login to the system at first so that I can view my dashboard.

Confirmation / Acceptance

  • User have to input his registered mail, password.
  • After verification, Dashboard view will be available to the user.

Failure Criteria

  • User have slow network connection.
  • Internet connection failed
  • User give wrong id or password as input.

Admin CRUD

As a admin, I want to Add a new product, Read product from database, Update product information, and Delete a product

Confirmation / Acceptance

  • After authentication, admin is redirected to add product page
  • Admin input product name, price, product description, and Image of product.
  • admin can view list of products in catalogue
  • admin can update any info of product
  • admin can remove a product from database.

Failure Criteria

  • Admin input invalid price for the product.
  • Communication error occurred.
  • Admin has no internet access

Product Details

** As a user,** I want to go to product detail page where I can place order. Confirmation / Acceptance

  • After clicking a product in the catalogue user is redirected to this page.
  • User can pace order by clicking order button

Failure Criteria

  • Connection interrupt.
  • Product is not available anymore.

Order

As an user, I want} to Order a product so that I can get it in my hand. Confirmation / Acceptance

  • User need to provide his contact no , address, email, and other information.
  • User need to choose payment methods (Cash-on-delevary / bkash)

Failure criteria

  • User provide wrong address or contact no.
  • User provide wrong Txn Id if he choose bKash

Order PCB

As a user, I want to order PCB for my projects

  • User need to define the layer of the pcb (single / double).
  • User need to choos if he want green masking in his PCB.
  • User need to define the dimension of the PCB
  • User need to upload his PCB schematic in PDF format

Failure Criteria

  • Schematic malfunctioning
  • PCB is not rectangular sized.

Shopping Cart

As a user, I want to keep product in a shopping cart so that I can buy them in a package.

  • In the product detail page, user press add to cart button to store it to cart.
  • User can modify product quantity in the cart.
  • User can store multiple product simultaneously in the cart.
  • User can confirm order or remove an item from cart.

Failure Criteria

  • Product not available.
  • Cart reach maximum 5 item.

Search product / Category

As a user, I want to search product by name or category so that I can find them easily.

  • In the product catalogue, user need to insert product name, or select which category of product user need.
  • A list of product that match this criteria will be visible for browsing.
  • User can view product detail by clicking them.

Failure Criteria

  • Product not available.
  • Wrong keyword inserted.
  • Database error.

Wish list

As a user, I want to save the product in the wish list so that I can get them next time.

Confirmation / Acceptance

  • In the product detail page user can click wish-list button and store it for future browsing.
  • User can view the product in his wish-list next time.
  • User can add product to cart from wish-list.

Failure Criteria

  • Product out of stock.
  • Database error.

Item availablity remainder

As a user, I want to get notified when quantity of a product in my wish-list less than 5 so that I can buy it before it run out of stock.

Confirmation / Acceptance

  • When a product quantity is less than 5, It will notify the customer who save it to their wish list.
  • User can by check the notification in the notification-bar.
  • User can buy it then.

Failure Criteria

  • Any other user buy all the product available at once. It can not send notification then.
  • User remove the product from his wish-list.

Non Functional Requirements

Performance Requirments

  • System must not accumulate with large number of users.
  • Response to any kind of interaction must take no longer than 5 seconds to appear on the screen.

Security Requirments

  • System will use secure database
  • Normal users can just read or write information but they can not edit or modify existing information.
  • Admin have full access to the system

Safety Requirements

  • System use must not cause any harm to human users.

Appendices A ( Glossary )

SRS

A software requirements specification (SRS) is a detailed description of a software system to be developed with its functional and non-functional requirements. The SRS is developed based the agreement between customer and contractors. It may include the use cases of how user is going to interact with software system.

Software Tester

Software tester involve in the quality assurance stage of software development and deployment. Bugs in software are found by tester and resolved before it gets deployed to users.

CRUD

Create, Read, Update, and Delete (CRUD) are the four basic functions that models should be able to do, at most. The model must be able to Create, Read, Update, and Delete resources. Computer scientists often refer to these functions by the acronym CRUD.

PCB

A printed circuit board, or PC board, or PCB, is a non-conductive material with conductive lines printed or etched. Electronic components are mounted on the board and the traces connect the components together to form a working circuit.

Schematic

A schematic diagram is a fundamental two-dimensional circuit representation showing the functionality and connectivity between different electrical components. It is vital for a PCB designer to get familiarized with the schematic symbols that represent the components on a schematic diagram.

IoT

The Internet of Things (IoT) describes the network of physical objects—“things”—that are embedded with sensors, software, and other technologies for the purpose of connecting and exchanging data with other devices and systems over the internet.

TXN

TXN means the transaction number assigned to every transaction in the ISSUING BANK online system. Every transaction is issued this unique number. Using this number in notes to cross reference a transaction to a credit is highly recommended.

NodeMCU

NodeMCU is a low-cost open source IoT platform prototyping board. The name "NodeMCU" combines "node" and "MCU" (micro-controller unit). It initially included firmware which runs on the ESP8266 Wi-Fi.

Firebase

Google Firebase is a Google-backed application development software that enables developers to develop iOS, Android and Web apps. The Firebase Realtime Database is a cloud-hosted NoSQL database that enables data to be stored and synced between users in real time.