User Stories - ARGON90/BadReads GitHub Wiki

User Stories

Users

Sign Up

  • As a new user, I want to sign up for Badreads using a signup form so that I can access user features on Badreads.
    • When I'm on the /signup page:
      • I would like to be able to enter my email, username, and password into a form.
      • I want to be logged in after successful completion of the sign-up form.
    • When I enter invalid data I want the form to intelligently clear and error-handle.

Log in

  • As an existing user, I want to log in for Badreads using a login form so that I can access user features on Badreads.
    • When I'm on the /login page:
      • I would like to be able to enter my email or username, and password into a form.
      • I want to be logged in after successful completion of the login form.
    • When I enter invalid data I want the form to intelligently clear and error-handle.

Demo User

  • As a new user, I want to log in as a demo user for Badreads using a demo button so that I can access user features on Badreads with ease.
    • When I'm on the /signup page:
      • I would like a link saying "login as demo" to redirect me to the login page.
    • When I'm on the /login page:
      • I would like to be able to click the "login as demo" button and log in as a predetermined user.

Log Out

  • As a logged in user, I want to log out via a log out button in the dropdown from the user icon in the nav bar.
    • I want to be able to do this on any page and be redirected to the homepage.

Books

Create a Book

  • As a logged in user, I want to be able to post a new Book.
    • When I’m on the /new-book page:
      • I can fill out and submit a form with details of a new Book.
        • So that I can share a banned book with the BadReads community.

View Books

  • As a logged in or logged out user, I want to be able to view all Books.

    • When I’m on the /books page:
      • I can view all banned books available on BadReads.
        • So that I can see what books have historically been banned.
  • As a logged in or logged out user, I want to be able to view the details of a specific Book.

    • When I’m on the /books/:book_id page:
      • I can view the cover page, name, author, year published, and description of the Book, as well as the associated Reviews left by other users.
        • So that I can get more detail to decide if I want to read the Book, or if I have read the book and want to leave a Review with my experience to share with other users.
      • I can choose to add the Book to one of my Bookshelves.
        • So that I can keep track of which Books I would like to read or have already read.
  • As a logged in user, I want to be able to view my Books.

    • When I’m on the /my-books page:
      • I can view all the Books I have created on BadReads.
        • So that I can keep track of which Books I have created.

Update Books

  • As a logged in user, I want to be able to edit my Books.
    • When I’m on the /my-books page:
      • I can click an “Edit” button associated with the Book to make and save changes.
        • So that I can fix any errors in my Book details.

Delete Books

  • As a logged in user, I want to be able to delete my Books.
    • When I’m on the /my-books page:
      • I can click a “Delete” button associated with the specific Book to remove the Book from the BadReads database.
        • So that when I realize the book has never been banned, I can easily remove it.

Bookshelf

Create Bookshelves

  • As a logged in User, I want to be able to create a Bookshelf, so I can organize books by my preference.
    • When I’m on the /books/:book_id page:
      • I can click a "create bookshelf" link/button on the book details page to create a bookshelf (only when logged in).
        • Redirected to a new page form to create the bookshelf name.
        • If the information is valid, a new bookshelf is created, and I will be redirected to the all bookshelves pages.

View Bookshelves

  • As a logged in user, I want to be able to view all my Bookshelves, so I can see all my bookshelves.
    • When I'm on the /my-bookshelves page:
      • I can view all the default bookshelves ( Read, Currently Reading, Want to Read) and my created bookshelves.
      • I can also click on the name of the bookshelves to be redirected to the specified bookshelves page.

Update Bookshelves

  • As a logged in user, I want to be able to update my Bookshelves, so I can edit my Bookshelf.
    • When I'm on the /my-bookshelves page:
    • I can click an "edit" link/button on the specified bookshelves (only user-created bookshelves).
      • Redirected to a new page form to update the bookshelf name.
        • If the information is valid, an updated bookshelf is created, and I will be redirected to the all bookshelves page.

Delete Bookshelves

  • As a logged in user, I want to be able to delete my bookshelves, so I can remove specific bookshelves I don't need or want anymore.
    • When I'm on the /my-bookshelves page:
      • A "delete" link/button appears with my specified bookshelves (only user-created bookshelves).
      • When the link/button is clicked, the specific bookshelf is deleted, and I am redirected to the all bookshelves page.

Add Books to Bookshelves

    • As a logged in user, I want to be able to add books to my bookshelves, so I can categorize the books I am interested in.
    • When I'm on the /my-bookshelves page or the /books/:book_id page:
      • There will be an interface allowing me to add a book to a bookshelf.

Remove Books from Bookshelves

    • As a logged in user, I want to be able to remove books from my bookshelves, so I can change book groupings.
    • When I'm on the /my-bookshelves page or the /books/:book_id page:
      • There will be an interface allowing me to remove a book from a bookshelf.

Read Books from Bookshelves

    • As a logged in user, I want to be able to see books in my bookshelves, so I can look at how I have grouped my books.
    • When I'm on the /my-bookshelves page or the /books/:book_id page:
      • There will be a grid showing the books in each bookshelf.

Reviews

Create a Review

  • As a logged in user I would like to be able to leave a review on a banned book so that I can let other users know my thoughts and influence the rating.
    • When I am on the /books/:book_id page I would like to be able to leave a review on a book.
    • I can only leave one review per book.

Read a Review

  • As a user I would like to be able to see reviews on a banned book so that I can get an idea of how good a banned book is.
    • When I am on the /books/:book_id page I would like to be able see all of the reviews for that book.

Delete a Review

  • As a logged in user I would like to be able to delete my review of a banned book so that it will be gone from the list of reviews for that book.
    • When I am on the /books/:book_id page I would like to be able to delete my review.

Edit a Review

  • As a logged in user I would like to be able to edit my review of a banned book so that it will be updated to a new review.
    • When I am on the /books/:book_id page I would like to be able to edit my review.

Search

Get Search Results

  • As a user, I would like to be able to search BadReads for book titles so that I can find banned books.
    • When I am on any page of the website, I can access the search bar at the top of the page.
    • The result of my search will return a list of banned books associated with my search terms.