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.