User Stories - aivnerrad/Viora GitHub Wiki
Readme
As a Project Manager, I want to see a completed Readme file so that I can understand more about Viora.
- Readme located at the root of your project has info on how to use Viora, and what the user can expect when using Viora.
Favicon
As a person who uses multiple tabs, I want to see an updated favicon so that I can easily identify your application in a list of tabs.
- Favicon has is a red V.
Heroku
As a Developer, I want to deploy my starter app to Heroku so that I can make sure I can deploy changes consistently.
- Viora has been deployed to Heroku.
About Me Links
As a Developer, I want to display links to my GitHub and LinkedIn profiles so that prospective hiring managers can learn more about me after looking at Viora.
- Links to your LinkedIn and GitHub profiles appear on the homepage of your application
Sign up
As a User, I want to create an account so I can use Viora.
- A button appears in the navigation for Sign Up (only when not already logged in)
- When clicking the button the user opens a sign up modal.
- After filling out the form and clicking a Submit button an account is created.
- The user is redirected to the Viora home page.
- The user can see that they are logged in.
Login
As a User, I want to login with my previously created account so I can use Viora.
- A button appears in the navigation for Log In (only when not already logged in)
- When clicking the button the user opens a login modal.
- After filling out the form with username and password and clicking a Login button the user is logged in.
- The user is redirected to the Viora home page.
- The user can see that they are logged in.
Error handling
As a Developer, I want to validate the LogIn/Signup forms being submitted so my users have a good experience when using my application.
- (Log In) If the username/password combination is wrong, or the user does not exist the login fails.
- (Log In) A message is displayed to the end user indicating which fields are invalid.
- (Sign Up) If the username/email already exists, the signup form fails
- (Sign Up) A message is displayed to the end user indicating which fields are invalid.
Logout
As a Logged In User, I can log out of my account so I can ensure it isn’t used without my permission.
- A link/button appears in the navigation for Log Out (only when logged in)
- When clicking this button/link the session ends and the user is logged out.
- When refreshing the page or traveling to other pages the user does not appear to be logged in
- The logged out user can log in with a separate account without issue.
Demo Login
As a Project Manager, I can use a Demo Account so that I can use the application without having to use the signup form.
- A button appears in the Login Form titled “Demo Login” (only when logged out)
- When clicking this button the user is automatically logged in as a Demo User (a previously created account for testing) without the need to fill out the signup/login form.
- The user is redirected as if they successfully completed the Log In form.
Create/Update/Delete - Posts, Comments
As a logged in user, I can create, update, and/or delete any posts or comments I have created. If it is not a post or comment that I own, I will only be able to read it.
- A button for creating a post will appear on the home page and topic page.
- A button for creating a comment will appear on every post.
- A 'settings' button, represented with 3 small dots, will appear on all of my created posts, and comments, allowing me to choose to edit or delete the comment or post.
- When editing a post, a text area will appear allowing you to edit the contents of your post or comment. The appropriate button shows beside the text area allowing a user to submit their edit.
Create/Delete - Questions, Answers, Likes
- A button for creating a question will appear on the questions page.
- A button for creating an answer will appear on every question that I have not created.
- A small 'X' button appears at the top right of every question or answer that I have created that will allow me to delete my question or answer.