Skip to content

User Stories

Laiba Afzal edited this page Aug 20, 2024 · 3 revisions

User Stories

Users

Sign up

  • As an unregistered and unauthorized user, I want to be able to sign up for the website via a sign-up form.
    • When I'm on the /signup page:
      • I would like to be able to enter my email, username, and preferred password on a clearly laid out form.
      • I would like the website to log me in upon successful completion of the sign-up form.
        • So that I can seamlessly access the site's functionality
    • When I enter invalid data on the sign-up form:
      • I would like the website to inform me of the validations I failed to pass, and repopulate the form with my valid entries (except my password).
      • So that I can try again without needing to refill forms I entered valid data into.

Log in

  • As a registered and unauthorized user, I want to be able to log in to the website via a log-in form.
    • When I'm on the /login page:
      • I would like to be able to enter my email and password on a clearly laid out form.
      • I would like the website to log me in upon successful completion of the lob-up form.
        • So that I can seamlessly access the site's functionality
    • When I enter invalid data on the log-up form:
      • I would like the website to inform me of the validations I failed to pass, and repopulate the form with my valid entries (except my password).
        • So that I can try again without needing to refill forms I entered valid data into.

Demo User

  • As an unregistered and unauthorized user, I would like an easy to find and clear button on both the /signup and /login pages to allow me to visit the site as a guest without signing up or logging in.
    • When I'm on either the /signup or /login pages:
      • I can click on a Demo User button to log me in and allow me access as a normal user.
        • So that I can test the site's features and functionality without needing to stop and enter credentials.

Log Out

  • As a logged in user, I want to log out via an easy to find log out button on the navigation bar.
    • While on any page of the site:
      • I can log out of my account and be redirected to a page displaying recent FauxTweets.
        • So that I can easily log out to keep my information secure.

1. Notebooks

Create Notebooks

  • As a logged-in user, I want to be able to create new notebooks.
    • When I'm on the /notebooks/new/ page:
      • I can enter a notebook title.
      • I can submit the form to create a new notebook.
        • So that I can organize my notes into different categories or topics.

Viewing Notebooks

  • As a logged in user, I want to be able to view my Notebooks.

    • When I'm on the /notebooks/ page:
      • I can see a list of all my notebooks, including the title and creation date.
        • So that I can quickly find and access the notebook I need.
  • As a logged in user, I want to be able to view a specific Notebook and its associated Notes.

    • When I'm on the /notebooks/:id/ page:
      • I can view the title and any description of the notebook.
      • I can see a list of all notes associated with the notebook, including their titles and creation dates.
      • I can click on a note title to view the full content of the note on a separate page.
        • So that I can understand the content within the notebook and see what notes are included, helping me stay organized and easily access the information I need.

Updating Notebooks

  • As a logged-in user, I want to be able to edit my notebooks by clicking an Edit button associated with the notebook.
    • When I'm on the /notebooks/, /notebooks/:id/, or /users/:id/notebooks/ page:
      • I can click "Edit" to change the notebook’s title.
      • I can submit the form to save the updated notebook.
        • So that I can update notebook details as needed.

Deleting Notebooks

  • As a logged-in user, I want to be able to delete my notebooks by clicking a Delete button associated with the notebook.
    • When I'm on the /notebooks/, /notebooks/:id/, or /users/:id/notebooks/ page:
      • I can click "Delete" to permanently delete a notebook.
        • So that I can remove notebooks that are no longer needed or were created by mistake.

2. Notes

Create Notes

  • As a logged-in user, I want to be able to create new notes inside a notebook.
    • When I'm on the /notebooks/:id/notes/new/ page:
      • I can enter a note title and content.
      • I can submit the form to create a new note inside the selected notebook.
        • So that I can add and organize information within specific notebooks.

Viewing Notes

  • As a logged-in user, I want to be able to view all notes within a notebook.

    • When I'm on the /notebooks/:id/notes/ page:
      • I can see a list of all notes inside the notebook, including the title and creation date.
        • So that I can quickly find and review the content within a specific notebook.
  • As a logged in user, I want to be able to view a specific Note.

    • When I'm on the /notebooks/:id/notes/:id/ page:
      • I can view the content of the Note.
        • So that I can review the details of the note and understand the information it contains within the context of the notebook.

Updating Notes

  • As a logged-in user, I want to be able to edit my notes by clicking an Edit button associated with the note.
    • When I'm on the /notebooks/:id/notes/, /notebooks/:id/notes/, or /users/:id/notebooks/:is/notes/ page:
      • I can click "Edit" to change the note’s title and content.
      • I can submit the form to save the updated note.
        • So that I can modify note details as needed.

Deleting Notes

  • As a logged-in user, I want to be able to delete my notes by clicking a Delete button associated with the note.
    • When I'm on the /notebooks/notes, /notebooks/:id/notes, or /users/:id/notebooks/:id/notes page:
      • I can click "Delete" to permanently delete a note.
        • So that I can remove notes that are no longer needed or were created by mistake.