User Stories - gmiddle/ignored GitHub Wiki

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 log-in form.
        • So that I can seamlessly access the site's functionality
    • When I enter invalid data on the log-in 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 the home page.
        • So that I can easily log out to keep my information secure.

Servers

Create a Server

  • As a logged in user, I want to be able to create an empty server.
    • When I'm on the dashboard: I can create an empty server and access it.
      • So that I can add a new server separate from my existing servers.

Viewing Servers

  • As a logged in user, I want to be able to view the existing servers I have created followed by the servers of which I am a member.

    • When I'm on the dashboard: I can arrange my servers freely.
      • So that I can view all of my servers in an organized way.
  • As a logged in user I want to be able to view a single server that I have created.

    • When I'm on the dashboard: I can view the content of the server and it’s members.
      • So that I can interact with the view channels, server members and the messages that have been posted.

Updating Servers

  • As a logged in user, I want to be able to edit my servers by clicking an Edit button associated with the server.
    • When I'm on a server’s page: I can click an "Edit" button to make changes to the server.
      • So that I can rename the server or change the 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 the server.
    • When I'm on the server's page: I can click "Delete" to permanently delete a server I have created.
      • So that when I am finished hosting a server, I can remove it.

Channels

Create a Channel

  • As a logged in user, I want to be able to create an empty channel within a server.
    • When I'm on the server page: I can create, name, and add an image to a new channel.
      • So that I can create specialized channels for topics in my server.

Viewing Channels

  • As a logged in user, I want to be able to view channels of which I am a member.

    • When I'm on the server page: I can view the channels from which I have been granted access..
      • So that I can move between channels when I want to view them.
  • As a logged in user, I want to be able to arrange channels that I have created.

    • When I'm on the server page: I can arrange my channels by topic or title.
      • So that I can identify channels with similar titles and topics.

Updating Channels

  • As a logged in user, I want to be able to edit my channels by clicking an Edit button associated with the channel.
    • When I'm on the task(s) page: I can click "Edit" to make changes to channels that I oversee.
      • So that I can change the titles and update images associated with that channel.

Deleting Channels

  • As a logged in user, I want to be able to delete my channels by clicking a Delete button associated with the channel.
    • When I'm on the task(s) page: I can click "Delete" to permanently delete a channel I have created.
      • So that when I realize I want to remove an old or unnecessary channel I can remove it.

Live Chat

Create a Chat

  • As a logged in user, I want to be able to create new chats.

    • When I'm on the server page: I can write, edit and submit chat messages.
      • So that I can effectively communicate with other members.
  • As a logged in user, I want to be able to reply to messages posted by thor members.

    • When I'm on the server page: I can write, edit and submit reply messages.
      • So that I can effectively respond to posts by other members.

Viewing Chat

  • As a logged in user, I want to be able to view messages I have sent.

    • When I'm on the server page: I can view messages I have sent.
      • So that I can follow the current communications as they evolve.
  • As a logged in user I want to be able to view messages that other members have created.

    • When I'm on the server page: I can view the content of other member’s messages.
      • So that I can view other people’s contributions to the common conversation.
  • As a logged in user I want to be able to view images and gifs that have been sent.

    • When I'm on the server page: I can view images and gifs on the posted messages.
      • So that I can expand the types of communication available.

Updating Chat

  • As a logged in user, I want to be able to edit my chat messages by clicking an Edit button associated with the message.
    • When I'm on the server page: I can click "Edit" to make changes to messages that I have posted.
      • So that I can fix any errors and update the content of the message.

Deleting Chat

  • As a logged in user, I want to be able to delete my messages by clicking a Delete button associated with the message.
    • When I'm on the server page: I can click "Delete" to permanently delete a message I have created.
      • So that when I realize I want to remove old, incorrect or unnecessary messages I can remove them.

Direct Messages

Create a Direct Message

  • As a logged in user, I want to be able to create a direct message.
    • When I'm on the direct message page: I can write, edit and submit a direct message.
      • So that I can effectively create a private chat to message only with friends of my choosing.

Viewing Direct Message

  • As a logged in user, I want to be able to view all direct messages that I have created.
    • When I'm on the direct message page: I can view all direct messages I have created.
      • So that I can choose who I would like to message privately.
  • As a logged in user I want to be able to view a single direct message that I have created.
    • When I'm on the direct messages page: I can view the content of the direct message and associated messages.
      • So that I can message privately with the friend(s) of my choosing.

Updating Direct Message

  • As a logged in user, I want to be able to edit my messages by clicking an Edit button associated with the message.
    • When I'm on the direct messages page: I can click "Edit" to make changes to messages that I have posted.
      • So that I can fix any errors and update details.

Deleting Direct Message

  • As a logged in user, I want to be able to delete my direct messages by clicking a Delete button associated with the message.
    • When I'm on the direct messages page: I can click "Delete" to permanently delete a message I have sent.
      • So that when I realize I want to remove old or unnecessary messages I can remove it.

Search

  • As a logged in user, I want to be able to search for a specified message or post.
    • When I'm on the direct messages page or a channel page: I can input individual words or phrases to find relevant or matching messages.
      • So that I can filter large groups of messages or locate messages that I am looking for.