User Stories Channels - walkeradkins/slick-app GitHub Wiki

Users

Sign Up

  • As an unregistered and unauthorized user, I want to be able to sign up for Slick via sign-up form:
    • When I'm on the /signup page:
      • I would like to be able to enter my email, first name, last name, and preferred password on a clear laid out form
      • I would like for Slick to log me in upon a successful completion of the sign-up form
    • When I enter invalid data onto the sign-up form:
      • I would like Slick to inform me of the validations I have failed to pass, and repopulate the form with my valid entries (except for my password)
      • This way I can refill the invalid fields while also not having to refill the valid fields

Log in

  • As a register and unauthorized user, I want to be able to log into Slick via a log-in form page:
    • When on the /login page:
      • I would like to able to enter my email and password on a clear laid out form
      • I would like for Slick to log me in upon successful completion of the log-in form
    • When I enter invalid data onto the log-in form:
      • I would like Slick to inform me of the validations I have failed to pass, and repopulate the form with my valid entries
      • This way I can refill the invalid fields while also not having to refill the valid fields

Demo User

  • As an unregister and unauthorized user, I would like an easy to find and clear button on the /login page to allow me to visit and access Slick as a guest without signing up or logging in.
    • When I'm on the /login page:
      • I can click on a Demo User button to log me into Slick 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
        • Demo user's credentials will be different upon multiple users accessing the site to avoid live chat issues

Log out

  • As a logged in user, I want to log out via an easy to find log out button located in the navigation bar inside the dropdown that appears when clicking on the user's profile image
    • While on any page of Slick:
      • I can log out of my account and be redirected to Slick's splash page
        • So that I can easily log out to keep my information secure

Channels

Create Channels

  • As a logged-in user, I want to be able to create new channel
    • Logged-in user can create new channel by clicking on "Add Channel" button
    • Upon clicking on "Add New Channel" button, a modal will appear and user can provide channel's title and its description.
      • "Create Channel" button won't work if the logged-in user doesn't fill out channel's title

View Channels

  • As a logged-in user, I want to view the channel that I join and the posts in other channel created by other users
    • Logged-in user can see the channel that he is joined on the channel's navigation list
    • At the very bottom of channel's navigation list, logged-in user will see "Brose Channel" button. When the user click on that button, it will lead them to a new page of all the channels. Logged-in user will have the option to join the channel with the "Join" button.

Edit or Delete Channels

  • As a logged-in user, I want to be able to edit or delete channel
    • Only channel owner can edit or delete channels' title and description
    • When channel owners click on "edit channel" button, a modal will pop up and it allows them to update channel's name and description

Direct Messaging

Create Direct Message

  • As a logged-in user, I want to be able to create new direct message(DM)
    • Logged-in user can create a new DM by clicking on "Open a new DM" button
    • Upon clicking on "Open a new DM" button, a modal will appear and the user can search other user/s to send a direct message.
    • "Open an new dm" button won't work if the logged-in user doesn't specify who the direct message is going to
  • As a logged-in user I want to create a message in the DM chat room by filling out the chat field and pressing send

View DMs

  • As a logged-in user, I want to view all DM chat rooms that I am apart of and be able to view all the chats for the specific room.
    • Logged-in user can see the DM chat rooms that they are apart of on the side navigation bar under "Direct Messages"
  • As a logged-in user, I want to view all members of a specific chat room displayed under "Direct Messages" in the side navigation bar
  • As a logged-in user, I want to be able to view live chats in the chat room and have messages from other users live update

Edit or Delete DMs

  • As a logged-in user, I want to be able to edit or delete DM chat rooms and DMs
    • Only the user who created the DM chat room can edit or delete the room's members or the room itself
    • When the room's owner clicks the "Edit" button a model will appear where that user can add or remove members from the chat room, or delete the room entirely with the delete button
  • In a chat room, only the owner of the specific chat can choose to edit or delete that chat
    • In the chat feed when a user hovers over his own post, buttons for "Edit" and "Delete" should appear
    • The owner can choose to edit a post and changes it's contents and when submitted the post will reflect the changes with the text "(edited)" added to the end of the post
    • The owner can choose to delete a post and remove that chat from the chat room

Messaging

Create Messages

  • As a logged in user, I want to be able to create and send messages.
    • When I'm on the /users/user:id page:
      • I can create and send a direct message to another user or message all members of a channel directly.
        • So that I can communicate with with people I work with or know.

Read Messages

  • As a logged in user, I want to be able to read all the messages that I have sent and received
    • When I'm on the /users/user:id page:
      • I can select a channel, or direct message, that I am a part of to view all communication between the parties involved
        • So that I can keep in touch with people that I need to and reference prior communication.

Updating Messages

  • As a logged in user, I want to be able to edit all the messages that I have sent.
    • When I'm viewing a chatbox that I have contributed to:
      • I can click an edit button associated with the messages that I have sent and change the content of the message.
        • So that I can fix errors or update information as it changes.

Deleting Messages

  • As a logged in user, I want to be able to delete any of the messages that I have sent.
    • When I'm viewing a chatbox that I have contributed to:
      • I can click an delete button associated with that message. I will be prompted with a confirmation message and a submit button before deletion.
        • So that I can remove messages that are no longer relavant or inappropriate.

Search (bonus feature)

  • As a logged in user, I want to be anle to search any of the messages in any channels
    • When I search the message on my search bar:
      • It should lead to a new message and it will display channels that contain the messages that I am looking for
      • When I click on the display result, I should be redirected back to that channel which displays that specific message