Sprint 3 Test Driven Development - Fatima-Essa/Wits-Social-SDP GitHub Wiki

Sprint 1 User Acceptance Criteria

User Stories User Acceptance Criteria
1. As a user with no pre-existing account, I should be able to click the “Create Account” hyperlink which will direct me to the registration page so that I may register and create an account. Given that an un-registered user is on the login page, when the user clicks the “Register” hyperlink they should be able to navigate to the login page, then they may use the app and register.
2. As a user I should be able to register on the app by entering their username, email, password, and confirming said password and finally clicking the register button. This allows, me as a user, to have a personal account on the app. Given that a new user goes to the register page and when they register they enters a username, email password and confirms said password and clicks on the register button, then the user should be successfully registered and able to log in with their chosen credentials
3. As a user, with a preexisting account, I should be able to log into the app by entering my email and password correctly and clicking the “Log in” button so that I may be directed to the home page where I can access the full functionality of the app. Given that a registered user is logged out, when they go to the log in page and enter their email and password and click the “Log in” button, then the data associated to the user should be accessible and the user should be taken to the home page.
4. An authenticated user I should be able reset my password if I have forgotten so that I can create a new password and subsequently use it for my new login. Given that a registered user has forgotten their password when they click forgot password and enter their email address, an email should the be sent to them to reset their account password which they can then user to login in with.
5. As an authenticated user I should be able to use the navigation bar once logged in so that I may access the different features and relevant pages that the app provides. Given that a registered user has logged into the app, when the user is successfully logged in, then the user should be able to access the navigation bar so that they may make full use of the functionalities and switching between relevant pages.
6. As an authenticated logged in user I should be able to upload a post consisting of an image and caption to my account so other users may view(and interact with) and so that it is visible on my account page. Given an authenticated logged in user, when the user attempts to upload a post consisting of an image and caption it should then be stores and displayed under said post.
7. As authenticated, logged in user I should be able to logout of my account via my account page so that I am no longer logged into the application. Given that a logged in user is on their account page and wishes to logout, when the user logs out then they should be redirected to the login page.

Sprint 2 User Acceptance Criteria

User Stories User Acceptance Criteria
1. As an authenticated logged in user I should be able to view all posts on my homepage so that I can view and interact with them. Given an authenticated logged in user, when the user is on their designated home page then all posts should be displayed for viewing and interaction.
2. As an authenticated logged in user I should be able to comment on my own posts as well as posts of others so that others users can view my comments and I can interact with various users. Given an authenticated logged in user, when the user clicks on a post to comment the user should be able to type a comment and post it under the said post then the comment should appear beneath said post and be viewable by all.
3. As an authenticated logged in user I should be able to like my own posts as well as posts of others so that others users can gain likes upon their posts. Given an authenticated logged in user, when said user clicks on the heart(like) button under a post, then the post should have an additional like thus resulting in the tally of likes for specific post to go up.
4. As an authenticated logged in user I should have users suggested to me upon the homepage so that I can view their profiles and possibly follow them. Given an authenticated logged in user, when the user is on their designated home page then a list of suggested users should be displayed allowing the user to view their profiles and follow.
5. As an authenticated logged in user I should be able to view other users account pages so that I can follow accounts, view their posts and interact with them. Given an authenticated logged in user,, when the user clicks upon another user, then the clicked on users account profile page should be available for viewing and interaction.
6. As an authenticated user, I should be able to follow other authenticated users so that I can interact with them as well as view, comment and like their posts Given an authenticated logged in user, when the user clicks upon another user, then the logged in user should be able to follow the accounts they wish to follow.

Sprint 3 User Acceptance Criteria

User Stories User Acceptance Criteria
1. As an authenticated logged in user I should be able to view my account/profile page with all my posts being viewable, the amount of followers and following I have, my bio and my profile picture so that I can know all information about my social media profile. Given an authenticated logged in user, when the user is in their designated profile page then the user should be able to view their posts as well as the number of users there follow and have following them.
2. As an authenticated logged, with or without an already existing profile picture, in use I should be able to upload a new profile picture to my account so that it add extra description and other users can see my pictures. Given an authenticated logged in user, when the user is in their designated profile page then the user should be able to upload a profile picture.
3. As an authenticated logged in user I should be able to change my bio in the settings page, so that it will be different than the default and add additional description to my profile page. Given an authenticated logged in user, when the user is in their designated settings page then the user should be able to change their bio.
4. As an authenticated logged in user I should be able to change my full name, via the settings page, so that it will change to my newly preferred name and be displayed in the profile page. Given an authenticated logged in user, when the user is in their designated settings page then the user should be able to change their full name.
5. As an authenticated logged in user I should be able to save posts that I view so that I can view it later under my saved posts for future reference. Given an authenticated logged in user, when the user is viewing posts then the user should be able to save this post via a press of a button.
6. As an authenticated logged in user I should be able to view my saved posts so that I can see all the posts that I have previously saved or my viewing. Given an authenticated logged in user, when the user is in the designated saved post page then the user should be able to view their saved posts.