Skip to content

User Stories

Somorovd edited this page Jul 7, 2023 · 11 revisions

User Stories

Users

Signing 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, birthday 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
      • 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.

Logging 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 Users

  • As an unregistered and unauthorized user, I would like easy to find and clear buttons on the /login page to allow me to visit the site as one of two guests without signing up or logging in.
    • When I'm on the /login page:
      • 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.
      • There are two different demo users.
        • So that I can send messages between them.

Logging Out

  • As a logged in user, I want to log out by pressing a button on the user menu.
    • On the application page:
      • I can log out of my account and be redirected to a the login page.
        • So that I can easily log out and keep my information secure.

Servers

Creating Servers

  • As a logged in user, I want to be able to create a new server and become the owner of that server.
    • When I click the add button on the server sidebar:
      • I can fill out a form with server name and image.
        • So that I can create a space for people who share my interests.

Joining Servers

  • As a logged in user, I want to be able to join new servers.
    • When I click the explore button on the server sidebar:
      • I am navigated to a page with a list of joinable servers.
        • So that I can find a space for people who share my interests.

Viewing Servers

  • As a logged in user, I want to see the servers that I am a member of.
    • On the application page:
      • I can see a sidebar that shows the icon for each server I am a member of.
        • For easy navigation.

Updating Servers

  • As a logged in and authorized owner of a server, I want to update the servers information.
    • In the server menu drop down:
      • I can click a button to display a server editing form.
        • So that I can fix any errors I make.

Deleting Servers

  • As a logged in and authorized owner of a server, I want to delete the servers I have created.
    • In the server menu drop down:
      • I can click a button to delete the server after confirming my decision.
        • So that I remove servers no longer in use.

Channels

Creating Channels

  • As a logged in and authorized owner of a server, I can create channels within the server.
    • When I click on a + icon next to the channel section heading:
      • A modal pops up to create a new channel with channel type and name.
        • So that I can better organize different conversations and topics.

Viewing Channels

  • As a logged in and authorized member of a server, I want to see the channels within that server.
    • When I click on a server's icon:
      • A server navigation sidebar shows the list of channels.
        • For easy navigation within the server.

Updating Channels

  • As a logged in and authorized owner of a server, I can edit the channel details with that server.
    • When I click the edit button next to the channel name:
      • An inline form pops up is displayed to edit the channel.
        • So that I can fix mistakes.

Deleting Channels

  • As a logged in and authorized owner of a server, I can delete a channel from that server.
    • When I click the delete button next to the channel name:
      • I can delete the channel after confirming my decision.
        • So that I can remove channels that are no longer required

Messages

Viewing Messages

  • As a logged in and authorized member of a server, I can view messages in that server's channels.
    • On a channel page:
      • There is a list of all messages sent showing the user, time, and content of the messages
        • So that I can communicate with other members of the server

Sending Messages

  • As a logged in and authorized member of a server, I can post messages in that server's channels.
    • On the channel page:
      • I can submit text from the message input at the bottom.
        • So that I can communicate with other members of the server.

Updating Messages

  • As a logged in and authorized of a server, I can edit messages I have sent in that server's channels.
    • On my sent messages:
      • I can press the edit button to update the content of my message.
        • So that I can correct what I want to say.

Deleting Messages

  • As a logged in and authorized member of a server, I can delete messages I have sent in that server's channels.
    • On my sent messages:
      • I can press the delete button and confirm my decision to delete.
        • So that I can remove messages I should not have sent.

Direct Messages

Viewing Direct Messages

  • As a logged in and authorized user, I can view my direct messages with other users
    • On the direct messages page:
      • There is a list of all users with whom I am direct messaging.
        • So that I can find my previous conversations.
    • On an active direct message:
      • There is a list of all previous messages sent between me and the other user.
        • So that I can communicate with individual users.

Sending Direct Messages

  • As a logged in and authorized user, I can send messages to other users.
    • On an active direct message:
      • I can submit text form the message input at the bottom.
        • So that I can communicate with individual users

Updating Direct Messages

  • As a logged in and authorized user, I can update direct messages I have sent.
    • On my sent direct message:
      • I can press the edit button to update the content of my message.
        • So that I can correct what I want to say.

Deleting Direct Messages

  • As a logged in and authorized user, I can delete direct messages I have sent.
    • On my sent direct message:
      • I can press the delete button and confirm my decision to delete.
        • So that I can remove messages I should not have sent.