mfurqan26 / SYSC4806_Project

Amazin Online Bookstore
2 stars 1 forks source link

Requirements Documentation #27

Closed Sabin-Pla closed 1 year ago

SahilAgr commented 1 year ago

Are we splitting the requirements into functional and non-functional?

youhengzhou commented 1 year ago

I think we should, start with the functional requirements first, and then we can even incorporate our software architectural knowledge including splitting the requirement into components through the component identification process.

We can consider the component's granularity in that regard, and also the architectural characteristics we need to hit per the components.

Another thing I want to add is the general design philosophy of design for the user experience first, and work backwards to the technology, instead of designing the components and technologies first and try to build towards the user experience with the components we have.

For every class and every design choice we make, we start by asking the question of what do we want the user to feel when they log onto our website.

And from that feeling in mind, we work backwards to build the components that can serve that user work flow.

So the general process would be to:

  1. identify user work flow from requirements
  2. identity components from user work flow
  3. identify classes and implementations of architectural components and the architectural characteristics each components will need to have
  4. identify any other non-functional requirements we need to have in addition to the architectural characteristics we place onto the components

I hope that answers your question

mfurqan26 commented 1 year ago

If we are going for functional and non function requirements we can go for some requirements like this:

Functional Requirements:

Non-functional Requirements:

SahilAgr commented 1 year ago

Hey guys, just some requirements that I have listed here please go through them at your earliest convenience. Any feedback and additions are much appreciated.

Functional Requirements:

  1. The system must allow users to search for books using name, isbn and publisher
  2. The system must allow users to create an account
  3. The system must update inventory to have an accurate representation
  4. Users must be able to add items to their carts
  5. Users must be able to checkout their cart in a secure manner
  6. The system must provide recommendations to users based on their shopping history
  7. The system must allow Book Store owners to upload information about a book
  8. The system must allow Book Store owners to edit their book information

Non-Functional Requirements

  1. The landing page must not take longer than 5 seconds to load
  1. The system must be able to scale up to 5000 concurrent users
  1. The system must be compatible with chrome, safari and firefox
  1. The system must perform without a failure in 95 percent of the use cases
  1. All transactions must be done through secure channels
  2. The system must accurately protect user access depending on their account
  1. The error rate on the checkout page must not exceed 5%
Sabin-Pla commented 1 year ago

If we are going for functional and non function requirements we can go for some requirements like this:

Functional Requirements:

* The system should have a secure login mechanism for bookstore owners to upload and edit book information, including ISBN, picture, description, author, publisher, and inventory.

* The system should allow users to browse books by title, author, publisher, and genre.

* The system should enable users to search for books based on title, author, publisher, and genre.

* The system should allow users to sort and filter books by different criteria such as price, popularity, release date, and so on.

* The system should analyse user purchase history and recommend books based on the Jaccard distance measure and users whose purchases are most similar.

* The system should provide a shopping cart feature for users to add and manage books they want to purchase.

* Checkout: The system should allow users to proceed to checkout after reviewing their order details.

* The system should update inventory levels in real-time to prevent overselling.

Non-functional Requirements:

* The system should be secure and protect user information from unauthorized access.

* The system should be fast and responsive, with low latency and high throughput.

* The system should be able to handle large volumes of traffic and support a growing number of users and books.

I would rephrase the first requirement. Remember that publisher and title are described by ISBN, so they should not be able to be modified separately. Other than that lgtm

SahilAgr commented 1 year ago

Adding some stuff based off the feedback. I think this looks pretty good we can work off this for now and add and remove stuff as requirements do change as development happens

Functional Requirements:

The system must allow users to search for books using name, isbn and publisher The system must allow users to browse for books using name, isbn and publisher The system must allow users to filter books based off price, release date and popularity The system must allow users to create an account The system must update inventory to have an accurate representation Users must be able to add items to their carts Users must be able to checkout their cart in a secure manner The system must provide recommendations to users based on their shopping history using the Jaccard method The system must allow Book Store owners to upload information about a book The system must allow Book Store owners to edit their book information The system should have real time updating of the inventory Non-Functional Requirements

Performance Requirements The landing page must not take longer than 5 seconds to load The system must be able to handle high traffic Compatibility Requirements The system must be compatible with chrome, safari and firefox Reliability Requirements The system must perform without a failure in 100 percent of the use cases Security Requirements All transactions must be done through secure channels The system must accurately protect user access depending on their account The system should be secure and protect user information from unauthorized access.