Requirements - bounswe/bounswe2020group1 GitHub Wiki

View the requirements Requirements

Table of Contents

Glossary

  • Banning a user: Limiting the available actions of a user to the actions that can be taken by a guest.
  • Category: A type that denotes a grouping of products based on common features of the products in that group.
  • Comment: A text about a product written by a customer who purchased the product to explain the interaction between the product and the customer.
  • (Product) Description: A text written by a vendor, describing a product.
  • Location: The physical address of a vendor.
  • Order: A set of products purchased by a customer which will be delivered to the customer.
    • Active Orders: The orders that are pending delivery.
    • Delivering Stage: After processing stage product enters delivering stage in which the product is on the move to the customer and during this process, customers can keep track of the cargo.
    • Processing Stage: An ordered product comes to the processing stage and stays there before the vendor enters the unique cargo id.
  • Payment Failed: The end state of payment process where the transaction of money via provided payment information cannot be completed because of a problem.
  • Payment Successful: The end state of payment process where the transaction of money via provided payment information is completed with no problems.
  • Product: An item to be sold on the platform by a vendor.
    • Rating: An integer score from 0 to 5 which denotes the measurement of satisfaction about the product where higher scores shows a better level of satisfaction.
    • Rating a product: Providing a rating for a product.
    • Adding a product: An action taken by the vendor to display the item to be sold on the platform by providing the necessary information to the system.
  • Profile Page: A page displaying some(as much as allowed) information about a registered user.
  • Shipping Information: The address where the purchased products will be delivered to.
  • Shopping Cart: A set of products selected by a customer to be purchased.
  • Shopping List / List: A set of products which contains the products that a customer is interested in but not willing to buy soon.
  • Stock: Information about the available quantity of a product.
  • Tag: An entity denoting a feature or set of features about a product with a corresponding value of the entity.
  • User: A person using the e-commerce platform on any device possible.
    • Guest: A non-logged-in user that can search, display and read the comments of products.
    • Registered User : A person who completed registration process by providing necessary information including a unique email and a password to the system and who is able to login with the unique email and password provided beforehand.
      • Admin: A user type that has special privileges to manage and organize the platform.
      • Customer: A logged-in user profile with privileges of buying products, tracking orders, creating lists, etc.
      • Vendor: A logged-in user profile that sells products using the platform.
  • Verified Product: A product endorsed by admins.
  • Verified Vendor: A vendor endorsed by admins.

1. Functional Requirements

1.1. User Requirements

1.1.1. Sign Up

  • 1.1.1.1. Registered Users shall register to the system by providing an email and a username via creating a password.
  • 1.1.1.2. Registered Users should register to the system using their Google account.
  • 1.1.1.3. Registered Users shall provide information about whether they are a vendor or a customer while making registration.
  • 1.1.1.4. Registered Users shall provide a unique email address to register.
  • 1.1.1.5. A verification email shall be sent to the provided email address to complete the registration for both vendors and customers.
  • 1.1.1.6. Vendor users additionally shall provide:
    • 1.1.1.6.1. their IBAN to the system.
    • 1.1.1.6.2. the location of their store through Google Maps in registration.

1.1.2. Sign In

  • 1.1.2.1. Already registered users shall be able to sign in with their email and password.
  • 1.1.2.2. Already registered users should be able to sign in via Google account.
  • 1.1.2.3. Users should be able to reset their passwords in case they forget it.
  • 1.1.2.4. The resetting process should be started by sending an email to the address provided.

1.1.3. Guest Users

  • 1.1.3.1. Guests shall be able to search for products
  • 1.1.3.2. Guests shall be able to view the price of a product, but shall not be able to add them to their lists or carts.
  • 1.1.3.3. Guests shall be able to read user comments about products.
  • 1.1.3.4. Guests shall be able to discover categories.

1.1.4. Registered Users

1.1.4.1. Common Features

  • 1.1.4.1.1. Users shall provide a set of information according to account type.
  • 1.1.4.1.2. Users should be able to edit their information.
  • 1.1.4.1.3. Users shall be able to reset their password by using email authentication.

1.1.4.2. Vendor Profile

  • 1.1.4.2.1. Vendors shall have a rating voted by customers.
  • 1.1.4.2.2. In vendor profiles, one shall be able to see products of that vendor.

1.1.4.3. Admin Profile

  • 1.1.4.3.1. Admin shall be able to verify products as only the verified products are for sale.
  • 1.1.4.3.2. Admin shall be able to ban any registered user from the platform.
  • 1.1.4.3.3. Admin shall be able to manage tags on a product.
  • 1.1.4.3.4. Admin shall be able to delete a comment.
  • 1.1.4.3.5. Admin shall be able to remove a product.
  • 1.1.4.3.6. Admin shall be able to accept/reject cancellation requests coming from vendors.

1.1.5. Commenting on & Rating Products

  • 1.1.5.1. Customers shall be able to comment on the products they have purchased.
  • 1.1.5.2. Customers shall be able to read user comments about products.
  • 1.1.5.3. Customers should be able to delete/edit an old comment they have committed.
  • 1.1.5.4. Customers shall be able to review their products after a transaction has been completed.
  • 1.1.5.5. Customers shall be able to rate a product from 1 to 5.
  • 1.1.5.6. Customers shall be able to see these rates when making a purchase decision.

1.1.6. Shopping Cart

  • 1.1.6.1. Customers shall be able to add products to their shopping carts to order.
  • 1.1.6.2. Customers shall be able to edit their shopping carts.
  • 1.1.6.3. Customers shall be able to view their shopping carts.
  • 1.1.6.4. Customers shall be able to add and remove products from their shopping carts.

1.1.7. List of Favorite Products

  • 1.1.7.1. Customers shall be able to create a list of products they would like to keep an eye on.
  • 1.1.7.2. Lists shall be private for each user.
  • 1.1.7.3. Customers shall be able to create their lists.
  • 1.1.7.4. Customers shall be able to delete their lists.
  • 1.1.7.5. Customers shall be able to name their lists.
  • 1.1.7.6. Customers shall be able to edit their lists.

1.1.8 Setting A Notification for A Product

  • 1.1.8.1. Customers shall be able to set an alarm for price changes of a specific product.
  • 1.1.8.2. Customers shall be able to set an alarm for a certain price, and choose to be notified if the price of the product goes below the chosen price.

1.1.9. Adding a Product

  • 1.1.9.1. Only vendors shall be able to add a product.
  • 1.1.9.2. When adding a product, vendor shall select a category for the product.
  • 1.1.9.3. The added product shall have a price.
  • 1.1.9.4. The added product shall have its description and details.
  • 1.1.9.5. Vendors shall specify the stock information of the added product.

1.1.10 Messaging Between Registered Users

  • 1.1.11.1. Vendors shall be able to message directly to admins about a certain product.
  • 1.1.11.2. Vendors shall be able to communicate with admins about a certain order.
  • 1.1.11.3. Customers shall be able to message directly to vendors about their orders.

1.2 System Requirements

1.2.1. Search

  • 1.2.1.1. The system shall provide product searching for all users.
  • 1.2.1.2. The system shall provide vendor searching for admin users.
  • 1.2.1.3. The system shall only list the verified products.
  • 1.2.1.4. The system shall support search with the id, name, category, vendor name or brand name of the product.
  • 1.2.1.5. The system shall support search with the id, name or location of the vendor.
  • 1.2.2.6. The system shall support semantic search based on the context of information, variation of words, synonyms and concept matching.

1.2.2. Filtering

  • 1.2.2.1. The system shall provide filtering for the searched products based on:
    • 1.2.2.1.1. Rating of the product
    • 1.2.2.1.2. Price range of the product
    • 1.2.2.1.3. Vendor of the product
    • 1.2.2.1.4. Brand of the product
    • 1.2.2.1.5. Category of the product

1.2.3. Sorting

  • 1.2.3.1. The system shall provide sorting the searched products based on:
    • 1.2.3.1.1. Bestsellers
    • 1.2.3.1.2. Newest arrivals
    • 1.2.3.1.3. Prices
    • 1.2.3.1.4. Rating
    • 1.2.3.1.5. Number of comments

1.2.4. Categories

  • 1.2.4.1. The admin users shall be able to manage (add/delete/update) product categories.
  • 1.2.4.2. The added product shall have a category.
  • 1.2.4.3. The system shall support searching for products categorically.

1.2.5. Distinguishability of Products

  • 1.2.5.1. Two products are considered different if any of the following is different:
    • 1.2.5.1.1. Names of the products
    • 1.2.5.1.2. Vendors of the products
    • 1.2.5.1.3. Categories of the products
  • 1.2.5.2. Each product that is considered different by the criteria mentioned in requirement 1.2.5.1 shall be given a unique ID by the system.

1.2.6. E-Mail Verification

  • 1.2.6.1. For registration, an e-mail shall be valid and unique for each user.
  • 1.2.6.2. For e-mail verification, a link shall be sent to the users' e-mail account. Users shall be able to validate their e-mail addresses by visiting the link.

1.2.7. Order Page

  • 1.2.7.1. The system shall enable customers and vendors to see the status of their orders.
  • 1.2.7.2. Status of the orders shall include sufficient information such as but not limited to order date, product price, cargo information and delivery date.
  • 1.2.7.3. The system shall enable customers to cancel their active orders.
  • 1.2.7.4. The system shall enable vendors to send cancelling requests to admin for cancelling their orders during the processing stage.
  • 1.2.7.5. The system shall enable customers to return their delivered orders within 14 days by providing the reason of return.
  • 1.2.7.6. The system should enable customers to see the total amount of points they have achieved on the platform by placing orders.

1.2.8. Notification System

  • 1.2.8.1. The system shall enable customers and vendors to use the notification system.
  • 1.2.8.2. The system shall send a notification to the vendor when the vendor sold a product.
  • 1.2.8.3. The system shall enable customers to get notifications about price changes for products that they already set an alarm for.
  • 1.2.8.4. The system shall enable customers to set an alarm on the price of a certain product to be notified when the price of the product goes below that price.
  • 1.2.8.5. The system shall enable customers to get notifications when a vendor cancels an order.

1.2.9. Recommendation System

  • 1.2.9.1. The system shall provide product recommendations to users.
  • 1.2.9.2. Recommendation system shall take information such as but not limited to the search history, the products that are viewed and the products that are bought by the users into consideration for recommendations.

1.2.10. Payment Page

  • 1.2.10.1. The system shall enable customer users to complete the purchases of the products in their shopping carts after they fill their payment information.
  • 1.2.10.2. The system shall support payment via credit card and IBAN.
  • 1.2.10.3. The system shall take payment information of the customer to process the payment.
    • 1.2.10.3.1. The system should be able to use the payment information of the customer stored in the system if customer provided any payment information to be stored beforehand.
  • 1.2.10.4. The system shall take shipping information of the customer.
    • 1.2.10.4.1. The system should be able to use the shipping information of the customer stored in the system if customer provided any shipping information to be stored beforehand.
  • 1.2.10.5. The system shall provide links to the Terms and Conditions and Privacy Policy documents.
  • 1.2.10.6. The system shall ask customer to approve the “Terms and Conditions“ and the Privacy Policy.
  • 1.2.10.7. The system shall ask customer to confirm the order and proceed with the payment.
  • 1.2.10.8. The system shall show the status (successful, pending, failed) of the payment to the customer.

2. Non-Functional Requirements

2.1. Availability

  • 2.1.1. The application shall be available as a native web site in browsers.
  • 2.1.2. Users shall be able to reach a product by URL.
  • 2.1.3. The application shall be available as a native mobile application on Android platforms.
  • 2.1.4. The application shall be deployable on a remote and manually configurable server.
  • 2.1.5. The application shall be dockerized, to make the development and deployment process easier.
  • 2.1.6. The application shall support the Turkish and English characters.

2.2. Security

  • 2.2.1. The system shall use the HTTPS protocol to transfer encrypted data over the web.
  • 2.2.2. To ensure that sensitive information shall be unreadable to everyone but the destination server, the system shall use SSL Certificates.
  • 2.2.3. To quickly identify potential hacking activity the website shall be monitored periodically.
  • 2.2.4. The system shall be secure against SQL injection and cross-site scripting.
  • 2.2.5. The system shall regularly scan for malware.

2.3. Performance

  • 2.3.1. The system shall respond to up to 1000 users without a crash.
  • 2.3.2. The system shall respond to each user in less than 2 seconds.

2.4. Privacy

  • 2.4.1. The system shall follow the W3C Activity Stream Protocol.
  • 2.4.2. The system shall follow the standards of Wide Web Consortium.
  • 2.4.3. Personal data shall be processed in a manner that ensures GDPR and KVKK requirements.
  • 2.4.4. The system shall seek, consent to use personal data in research.