User Stories - stili87/Better-Reads GitHub Wiki

Books

Conditional Authorization

Unauthorized

  • As an unregistered and unauthorized user when an individual goes to the /books url then we will be met with an instant login
    • Redirected to /login

Authorized

  • As a registered user, when I head to the /books url, then we will have a collection of books.

    Read

    • The user will be able to go to /books and be able to see
      • There would be a collection of bookshelves on the right to be selected and displaying all the books inside the collection.
      • The user will also have the ability to click a button that redirects to the addition of a new book.

    Creation

    • When the user redirects the new book will have fields that include:
    | Parameter | Type     | Description                       |
    | :-------- | :------- | :-------------------------------- |
    | `title`      | `string` | user can write the title of the book | 
    | `author`      | `string` | user will have field to enter author name|  
    | `subheading`      | `string` | user will have field to enter subheading|  
    | `description`      | `string` | user will have field to enter description |  
    | `coverUrl`      | `string` | user will have field to enter the pictureUrl | 
    | `publishDate`      | `date` | user will have selection date field.|  

Delete

  • The user will have an option in the /books url to delete the book by pressing an X on the right side of it

Update

  • The user will have the option to edit a book's information when clicked on the book. The redirect will head to /books/:id
    • When the user redirects the new book will have fields that include:
    | Parameter | Type     | Description                       |
    | :-------- | :------- | :-------------------------------- |
    | `title`      | `string` | user can write the title of the book | 
    | `author`      | `string` | user will have field to enter author name|  
    | `subheading`      | `string` | user will have field to enter subheading|  
    | `description`      | `string` | user will have field to enter description |  
    | `coverUrl`      | `string` | user will have field to enter the pictureUrl | 
    | `publishDate`      | `date` | user will have selection date field.|   

Bookshelves

View Bookshelves

  • As a logged in user, I want to be able to view custom bookshelves I've created, and also view the default bookshelves (Read, Want to Read, Currently Reading)
    • When I'm on the /bookshelves page:
      • I can view ALL my books
      • I can click to get more details about a specific book
      • I can edit my rating for a book
      • I can write/edit a review for a book (link to /reviews)

View A Specific Bookshelf (including defaults)

  • As a logged in user, I can view a specific bookshelf to see all the books added to it
    • When I'm on the /bookshelves/:id page:
      • I can view all my books added to this bookshelf
      • I can click to get more details about a specific book

Create Bookshelves

  • As a logged in user, I want to be able to create custom bookshelves to add books to
    • When I'm on the /bookshelves page:
      • I can add and create a new bookshelf to view

Update Bookshelves

  • As a logged in user, I want to be able to update the books that are added to the bookshelf
    • When I'm on the /bookshelves and /bookshelves/:id pages:
      • I can remove books from my bookshelf(es)
      • I can change which bookshelf the book belongs to

Delete Bookshelves

  • As a logged in user, I want to be able to delete my custom bookshelves
    • When I'm on the /bookshelves page:
      • I can delete a bookshelf I've created

Reviews

Viewing Reviews

  • As a logged out or logged in User, I want to be able to reviews of Books.
    • When I'm on a Book page I can see other users reviews and ratings of a book.
      • So that I can see other's opinion on the book.

Creating Reviews

  • As a logged in User, I want to be able to post a review of a book.
    • When I am on a book page, I want to be able to leave a review and rating on a book.
      • So that others can see my opinion on the book.

Updating Reviews

  • As a logged in User, I want to be able to edit my Reivew by clicking an Edit button assoicated with the Reiview.
    • When I am on the book page I can click "Edit" to make permanent changes to my Reivew I have posted.
      • So that I can fix errors or update my opinion.

Deleting Reviews

  • As a logged in User I want to be able to delete my Reiview by clicking a "Delete" button associated with that Review.
    • When I am on the book page, I can click the "Delete" button to permanently delete a Review I have posted.
      • So that if I change my mind about posting, I can do so.

ReadStatus

Not logged in User

  • As a user that has not logged in yet.
    • I can not see the read status drop down.

Logged in User

Mark as Read.

  • As a logged in user, I want to be able to mark a book as read.
    • When I'm on the /:bookId page:
      • I can mark and unmark books as read.
        • So that I can keep track of which books I have read.

Mark as currently reading it.

  • As a logged in user, I want to be able to mark a book as currently reading it.
    • When I'm on the /:bookId page:
      • I can mark and unmark books as currently reading it.
        • So that I can keep track of which books I'm currently reading.

Mark as want to read.

  • As a logged in user, I want to be able to mark a book as want to read.
    • When I'm on the /:bookId page:
      • I can mark and unmark books as want to read.
        • So that I can keep track of which books I want to read.

Switch between read status.

  • As a logged in user, I want to be able to switch the read status on the books.
    • When I'm on the /:bookId page:
      • I can switch the read status on the books.
        • So that I can keep track of my books.