User Stories - Twprcntmlk/discord-clone GitHub Wiki

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

Servers

Creating Servers

  • As a logged in user, I want to be able to create my own servers.
    • While I am on the home page:
      • I can create my own servers

Viewing Servers

  • As a logged in or logged out user, I want to be able to view all the servers I have joined
    • When I'm in a server:
      • I can view all the channels in that server.
      • I can select any channel in that server to view the messages posted in that channel.
      • I can view all the users in that server.

Updating Servers

  • As a logged in user, I want to be able to edit my servers by clicking an Edit button associated with each server.
    • In the server menu:
      • I can click "Edit" to make permanent changes to the servers I own.
        • So that I can change the name and server icon.

Deleting Servers

  • As a logged in user, I want to be able to delete my servers by clicking a Delete button associated with that server.
    • in the server menu:
      • I can click "Delete" to permanently delete a server.

Channels

Creating Channels

  • As a logged in user, I want to be able to create channels in my servers.
    • While I am in any of my servers:
      • I can create named channels where users will be able to post messages

Viewing Channels

  • As a logged in or logged out user, I want to be able to view all the channels in each of my servers.
    • When I'm in a server:
      • I can view all the channels in the server.
      • I can select any channel in a server to view the messages posted in that channel.

Updating Channels

  • As a logged in user, I want to be able to edit the channels in my server by clicking an Edit button associated with each channel.
    • In the channel menu:
      • I can click "Edit" to make permanent changes to the channels in my servers.
        • So that I can change the name and channel icon.

Deleting Channels

  • As a logged in user, I want to be able to delete my channels by clicking a Delete button associated with that channel.
    • in the channel menu:
      • I can click "Delete" to permanently delete a channel.

Messages

Sending Messages

  • As a logged in user, I want to be able to send new messages.
    • When I'm in a channel:
      • I can post messages in that channel.

Viewing Messages

  • As a logged in user, I want to be able to view the latest messages posted in any channel I select in the servers I am in.
    • When I'm in a channel:
      • I can view the ten most recently posted messages
        • So that I can read and interact with the thoughts and memes of my fellow server members.

Updating Messages

  • As a logged in user, I want to be able to edit my messages by clicking an Edit button associated with a message.
    • When I am in a channel:
      • I can click "Edit" to make permanent changes to messages I have posted.
        • So that I can fix any errors I made in my messages.

Deleting Messages

  • As a logged in user, I want to be able to delete my messages by clicking a Delete button associated with a message.
    • When I am in a channel:
      • I can click "Delete" to permanently delete a message I have posted.
        • So that when I realize I shouldn't have publicly said something, I can easily remove it.