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