Requirements - acersoz/Fall2017Swe573-ace GitHub Wiki

1) User Sign Up:

  • 1.1) The user shall provide his/her first name, last name, username, e-mail and password information to sign up.
  • 1.2) The system shall control the other users with the same username and e-mail.
  • 1.3) The system shall give warning to the user that the username or e-mail provided is used.
  • 1.4) The user shall get a confirmation e-mail after s/he provided his information to sign up if the username and e-mail provided is appropriate.
  • 1.5) The system shall create user profile after the user confirmed the confirmation e-mail.
  • 1.6) The user shall be able to sign in to the website as a standard user with his/her user account after s/he confirmed the confirmation e-mail.

2) User Types:

  • 2.1) The developers of the software shall be able to create administrator user.

3) Book Profile:

  • 3.1) The administrator shall be able to create new book profiles.
    • 3.1.1) The administrator shall provide the name of the book to create a new book profile.
    • 3.1.2) The administrator shall provide the author of the book to create a new book profile.
      • 3.2.2.1) The administrator shall select or multi-select related author profile/s if related author profile/s is/are available.
      • 3.2.2.2) The administrator shall provide the name of the author/s if related author profile/s is/are not available.
    • 3.1.3) The administrator shall provide the publisher of the book to create a new book profile.
    • 3.1.4) The administrator shall be able to select Google Books reference when s/he is creating a new book profile.
    • 3.1.5) The system shall set name to the book profile when the administrator selects Google Books during the creation of the book profile.
    • 3.1.6) The system shall set author to the book profile when the administrator selects Google Books during the creation of the book profile.
    • 3.1.7) The system shall set publisher to the book profile when the administrator selects Google Books during the creation of the book profile.
    • 3.1.8) The system shall prevent the creation of the book profiles with the same name, author and the publisher.
    • 3.1.9) The administrator shall be able to add information about the available editions to the book profile.
    • 3.1.10) The administrator shall be able to add information about the content to the book profile.
    • 3.1.11) The administrator shall be able to update the information of the book profile information except the name, author and publisher of the book.
  • 3.2) The user shall be able to request new book profiles that are not available on the website.
    • 3.2.1) The user shall provide the name of the book to request a new book profile.
    • 3.2.2) The user shall provide the author of the book to request a new book profile.
    • 3.2.3) The user shall provide the publisher of the book to request a new book profile.
    • 3.2.4) The user shall be able to select Google Books reference when s/he is requesting a new book profile.
    • 3.2.5) The system shall set name to the book profile when the user selects Google Books during the request of the book profile.
    • 3.2.6) The system shall set author to the book profile when the user selects Google Books during the request of the book profile.
    • 3.2.7) The system shall set publisher to the book profile when the user selects Google Books during the request of the book profile.
    • 3.2.8) The administrator shall be able to see all book profile requests.
      • 3.2.8.1) The administrator shall be able to sort book profile requests.
      • 3.2.8.2) The administrator shall be able to filter book profile requests.
      • 3.2.8.3) The administrator shall be able to approve book profile requests.
        • 3.2.8.3.1) The administrator shall be able to edit the book profile information before the approval.
        • 3.2.8.3.2) The system shall create the book profile after the approval.
        • 3.2.8.3.3) The system shall create the author profile after the approval if the profile is not available.
      • 3.2.8.3) The administrator shall be able to reject book profile requests.
  • 3.3) The user shall be able to comment on the book profile.
  • 3.4) The user shall be able to rate the book profile.
  • 3.5) The user shall be able to tag the book profile.
  • 3.6) The user shall be able to see the comments of the book profile.
  • 3.7) The user shall be able to see the average rating of the book profile.
  • 3.8) The user shall be able to see the tags of the book profile with their counts.
  • 3.9) The user shall be able to see the related ads with the book profile.
    • 3.9.1) The user shall be able to sort these ads.
    • 3.9.2) The user shall be able to filter these ads.
  • 3.10) The user shall be able to see the Google Books reference of the book profile if it is available.
  • 3.11) The user shall be able to search book profiles using book name, author name and publisher name.

4) Author Profile:

  • 4.1) The system shall create the author profile/s when the first book profile of the author is created.
    • 4.1.1) The administrator shall be able to add information about the biography of the author to the author profile.
    • 4.1.2) The administrator shall be able to update the biography of the author.
  • 4.2) The user shall be able to comment on the author profile.
  • 4.3) The user shall be able to rate the author profile.
  • 4.4) The user shall be able to tag the author profile.
  • 4.5) The user shall be able to see the comments of the author profile.
  • 4.6) The user shall be able to see the average rating of the author profile.
  • 4.7) The user shall be able to see the tags of the author profile with their counts.
  • 4.8) The user shall be able to see the related ads with the author profile.
    • 4.8.1) The user shall be able to sort these ads.
    • 4.8.2) The user shall be able to filter these ads.
  • 4.9) The user shall be able to search author profiles using author name.

5) Posting a New Ad:

  • 5.1) The user shall be able to post a book ad.
    • 5.1.1) The user shall provide book information to create a new ad.
      • 5.1.1.1) The user shall select related book to create a new ad if the book profile is available.
      • 5.1.1.2) The user shall provide the book name to create a new ad if the book profile is not available.
    • 5.1.2) The user shall provide the author name to create a new ad if the book profile is not available.
    • 5.1.3) The user shall provide the publisher name to create a new ad if the book profile is not available.
    • 5.1.4) The user shall provide the publisher name to create a new ad if the book profile is not available.
    • 5.1.5) The user shall select whether the book is for sale or rent to create a new ad.
    • 5.1.6) The user shall provide price to create a new ad.
    • 5.1.7) The user shall provide possible delivery types to create a new ad.
    • 5.1.8) The user shall provide his/her location to create a new ad.
    • 5.1.9) The user shall be able to add Google Books reference to new ad.
    • 5.1.10) The user shall be able to upload pictures to new ad.
    • 5.1.11) The user shall be able to add description to new ad.
    • 5.1.12) The user shall be able to tag the new ad.
  • 5.2) The user shall be able to mark the ad of another user that s/he is interested on the ad if the owner did not accept any interest.
  • 5.3) The owner of the ad shall be able to accept the request of the interested user.
    • 5.3.1) The owner and the interested user shall be able to complain each other after the acceptance of the interest.
      • 5.3.1.1) The owner shall be able to complain the interested user for non-payment.
      • 5.3.1.2) The owner shall be able to complain the interested user for not returning back the rented book.
      • 5.3.1.3) The interested user shall be able to complain the owner for not sending the book.
  • 5.4) The owner of the ad shall be able reject the request of the interested user.

6) User Profile:

  • 6.1) User shall be able to update all information on his/her user profile except the username and e-mail.
  • 6.2) User shall be able to add favorite books to his/her user profile.
  • 6.3) User shall be able to add favorite tags to his/her user profile.
  • 6.4) User shall be able to add comments to other user profile pages.
  • 6.5) User shall be able to reply the added comments on user profile pages.
  • 6.6) User shall be able to rate other user profiles if they have previous shopping relationship.
  • 6.7) User shall be able to see the related ads of another user.

7) Tag Request:

  • 7.1) The administrator shall be able to create new tags.
  • 7.2) The user shall be able to suggest new tags that are not available on the website.