Skip to content

User Stories

Taylor McClerin edited this page Jun 12, 2023 · 2 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, preferred password, region, and associated organization (if applicable) 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.

Soil Data (Partial CRUD, no update)

New Soil Data

  • As a logged in user, I want to make a fetch request to the International Soil Reference and Information Center (ISRIC) for soil data.
    • While on the make new soil requests page:
      • I can can plug in latitude/longitude data either manually or via a Google maps API, and receive soil information in return.
        • So that I can track soil data to aide in planting and get input from other users.
    • When I input invalid data in the form (lat/long out of bounds):
      • I would like the website to inform me of the validations I failed to pass.
        • So that I can try again without needing to refill forms I entered valid data into.

Read Soil Data

  • As a logged in user, I want to be able to view my soil data.
    • While on the soil data page:
      • I can view the list of every soil sample fetch made.
        • So that I can easily reference the data.

Delete Soil Data

  • As a logged in user, I want to be able to delete my soil data.
    • While on the soil data page:
      • I can delete any of my soil samples.
        • So that I can easily organize my data.
    • When I click delete:
      • I would like the website to ask me if I would like to delete the soil data.
        • So that I can verify if I really want to delete the data and minimize accidental deletions.

Posts (full CRUD)

New Post

  • As a logged in user, I want to make a post.
    • While on the make new soil requests page:
      • I can can make the fetch as I did under new soil data, and I have the option to post this data with context (post body) to the wider community.
        • So that I can track soil data to aide in planting and get input from other users.
    • When I input invalid data in the form (outside minimum or maximum character lengths):
      • 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.

Read Posts

  • As a logged in user, I want to be able to view my posts.
    • While on the soil data feed:
      • I can view the list of every soil sample fetch made and their associated posts.
        • So that I can verify if I've received any responses.

Update Posts

  • As a logged in user, I want to be able to update my posts.
    • While on the soil data feed:
      • I can click on the update button which brings up a modal, allowing me to adjust my input.
        • So that I can change my post if I've made a typo or wish to elaborate on a particular soil sample.

Delete Posts

  • As a logged in user, I want to be able to delete my posts.
    • While on the soil data page:
      • I can delete of my posts
        • So that I can easily organize my data.
    • When I click delete:
      • I would like the website to ask me if I would like to delete the post and the soil data or just the post.
        • So that I can keep the data if I'd like, but remove the post if it no longer adheres to reasonable community standards (i.e. overrun by bots).

Recommendations (full CRUD)

New Recommendation

  • As a logged in user, I want to make a recommendation on a post if I think I have valuable input.
    • While on the post's page:
      • I can can post my recommendations and input
        • So that I can support other users in their scientific of agricultural endeavors.
    • When I input invalid data in the form (outside minimum or maximum character lengths):
      • 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.

Read recommendations

  • As a logged in user, I want to be able to view recommendations made by other users.
    • While on the post's page:
      • I can view the list of recommendations of other users.
        • So that I can verify if my response may be redundant with other users' prior input, and would merely require a comment instead.

Update recommendation

  • As a logged in user, I want to be able to update my recommendations.
    • While on the post's page:
      • I can click on the update button which brings up a modal, allowing me to adjust my input.
        • So that I can change my recommendation if I've made a typo or wish to elaborate on my recommendation further.

Delete Recommendation

  • As a logged in user, I want to be able to delete my recommendation.
    • While on the post page:
      • I can delete any of my recommendations.
      • If it is my post, I can delete the recommendations of others
        • So that I can manage my online persona and keep my post clear of unwanted activity.
    • When I click delete:
      • I would like the website to ask me if I would like to delete the recommendation.
        • So that I have an opportunity to keep the recommendation if I'd like, or if I accidentally clicked the delete button.

Clone this wiki locally