Skip to content

User Stories

Bryant Del Toro edited this page Jan 16, 2023 · 3 revisions

Sign up

  • As an unregistered and unauthorized user, I want to be able to sign up for the website using a sign-form up.
    • When Im on the /signup page:
      • I would like to be able to enter my email, username, and password.
      • I would like the website to log me in once the form is successfully submitted.
    • When I enter invalid data on the sign-up form:
      • I would like the website to notify me of my failed validations.

Log in

  • As a registered 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 username or email and password.
      • I would like the site to log me in upon successful completion of the log-in form.
    • When I enter invalid data on the log-in form:
      • I would like the site to notify me of my failed validations
      • I would like the form fields to repopulate with my valid entries (except for the password fields)
        • So that I can re-login without having to fill in every field again.

Logout

  • 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 the splash page.
        • So that I can easily log out to keep my information secure.

Demo User

  • As a registered user, I would like a button on both the signup and login pages that allow me to visit the site as a guest.
    • I want to be able to click on Demo User button to log me in and allow me access as a normal user so that I can test and navigate the sites' features without needing to stop and enter credentials

Server

  • As a user that has just logged in, I want to be redirected to Direct Messages /

    • I want to be able to see all text conversations with other users
    • I want to be able to search for a user to initiate a conversation with them.
  • As a user that has just logged in, I want to be able to see and select a server that I created or pertain to

    • I want to be able to see all text conversations within a text channel.
      • I want to be able to see who posts on a text channel
      • I want to be able to scroll up and down to see past posts in a channel
    • I want to be able to post to any channel that is a part of the server.
    • I want to be able to see who is in the server.
    • I want to be able to see what text channels exist within the server.
  • As a user that is logged in, I want to be to create a public server when I’m on /servers/create

    • I want to be able to add/delete/edit text and voice channels.
    • I want to be able to add and remove users from the server.
    • I want to be able to delete and edit posts in any of the channels in my server.
    • I want to be able to assign different roles to users who are authorized to be in my channel.
    • I want to be able to make my server private

Channels

  • As a user who is logged in and created the server (server owner), I want to be able create channels when I am on /api/channels/create
  • As a user who is logged in and authorized to be on the server, I want to see all the channels available within the server. /api/channels/${channelId}
    • I want to be able to click on a channel and see all of the posts made to that specific channel.
    • I want to be able to add my posts in every channel.
    • I want to be able to see who posted on a channel.

Messages

  • As a logged-in user, I want to be able to direct message anyone on my friends list and see all of my direct messages when im on /direct-messages
    • I want to be able to see a list of conversations I have ongoing.
    • When I am on /direct-messages/create, I want to be able to create a new direct message with someone
      • Only friends who are in the conversation can see the conversation.
    • I want my private conversation to exist outside of and apart from a server.