-
Notifications
You must be signed in to change notification settings - Fork 0
User Stories
As an unauthorized user, I want to login, so that I can access my profile, create stories, like stories, comment on stories, follow other profiles.
- Will the user enter a username or an email address to login?
- User will login via email and password
- What routes should we use for login?
- User will login via
/login
route
- User will login via
- Where should the user be redirected after login?
- User will be redirected to the
/
homepage without header
- User will be redirected to the
- What happens if the user doesn't exist yet?
- Displays the message "Please enter a valid login"
- What happens if the user enters the wrong password?
- Displays the message "Please enter a valid login"
- Should this story include allowing a user to reset their password?
- Not yet, maybe, possibly if we have time
- Should logging in use session-based or use token-based authentication?
- Session-based authentication
- Given that I'm a logged-out user and
- When I'm on the /login route
- Then there will be a login form with an email and password field and a "Login" button to submit the form.
- When I try to fill out the form with an invalid email and password combination and press Enter or press the "Login" button
- Then at the top of the form, I will see a red message Invalid Login :( please try again.
- When I try to fill out the form with an email that doesn't exist in the system and press Enter or press the "Login" button
- Then at the top of the form, I will see a red message Invalid Login :( please try again.
- When I try to fill out the form with a valid email and password and press press Enter or press the "Login" button
- Then I will be redirected to the homepage at the / route.
- Given that I am a logged-in user
- When I refresh the homepage at the / route
- Then I will still be logged in
- Given that I am a logged-out user
- When I try to navigate to the homepage at the / route
- Then I will be redirected to the /login route
As an unauthorized user, I want to be able to sign up for the website via a signup form, so that I can access Infinium.
- Will the user enter a username and an email address to signup?
- Will we confirm their password during signup?
- What routes should we use for signup?
- Where should the user be redirected after signup?
- Will we allow OAuth authentication via a third party?
- What happens if the user with the username or email already exists?
- What happens if the user enters the wrong password confirmation?
- Given that I'm a user who has not signed up yet and
- When I'm on the /signup route
- Then there will be a signup form with an email, username, and password field and a "Sign Up" button to submit the form.
- When I try to fill out the form with an email or username that already exists with a valid password and press Enter or press the "Sign Up" button
- Then at the top of the form, I will see a red message User with that email or username already exists.
- When I try to fill out the form with a password shorter than 6 characters and press Enter or press the "Sign Up" button
- Then at the top of the form, I will see a red message Password must be at least 6 characters long.
- When I try to fill out the form with a valid email, username, and password and press Enter or press the "Sign Up" button
- Then I will be redirected to the homepage at the / route.
- Given that I am a user that just signed up
- When I refresh the homepage at the / route
- Then I will still be logged in
- Given that I am a logged-out user
- When I try to navigate to the homepage at the / route
- Then I will be redirected to the /login route
As a logged in user, I want to write a story, so that I can demonstrate my imagination to the world.
- How do I access writing a story?
- A link under user profile for "New Story" to
/new-story
gets you there, and... - A "Write a story" button at the top of "Your Stories" page gets you there.
- A link under user profile for "New Story" to
- What does the story composition page look like?
- A Title at the top with a faded placeholder saying "Title"
- A Story area below the title with a faded placeholder saying "Tell your story..."
- A Publish button in the upper right nav (but to the left of other elements), faded until something is written
- A note in the upper left nav saying "Draft in [user name]" and to the right of that the state of the story ("Saving..." or "Saved")
- What is required of a new story?
- A Title (1-100 characters)
- A Story (100+ characters)
- Can I put images in my story?
- One image for the header can be linked to from an available cross-site platform (done in the options afterwards)
- Do I need to save my story?
- Your story is automatically saved as a draft very soon after every edit, so no need to explicitly save it.
- This draft will already be assigned a pre-publication, hexadecimal number (the url will look like
/p/<someLongHexNumber>/edit
) that serves as a unique identifier both before and after publication
- How do I publish my story?
- Press the "Publish" button at the top of the story creation page
- Does the story get published immediately?
- No, there is an intermediary page to verify publication and set some optional additions.
- What are the options for the story?
- A Picture at the top
- An optional subtitle
- POSSIBLE BONUS: A Tag for a category
- So how do I actually get my story to publish?
- At the bottom of the verification/options page, another "Publish now" button actually publishes it immediately.
- Can I save the publication for later?
- Yes, you can click the link next to the "Publish now" button that says "Schedule for later" that allows you to set a time within 5 minutes of which the story will publish
- Set a time for the publication
- Then press the "Schedule to publish"
- Can I cancel my publication?
- Yes, you can (1) cancel from scheduling of the publication (and return back to immediate publication screen) and...
- You can (2) cancel from the verification screen with the 'X' to close in the top right, and...
- You can (3) choose to "Delete my story" (which is another story...)
-
Given that I'm logged-in as a user and
- When I click on the "New Story" link in my profile OR the "Write a story" button at the top of my story listings
-
Then I am directed to the
/new-story
page, capable of writing and publishing my story.
-
When I type (or paste) my story
- Then I see the response in the header every time it saves, which is after every few seconds, and
- Then the "Publish" button becomes solid and active
-
When I am composing my story
- Then I am able to navigate my cursor within the title or story body to position it as needed, and
- Then I can choose to delete words from the story.
-
When I attempt to publish without writing anything
- Then an error message appears, "Oops, did you mean to write something so short? Please write more and try publishing again."
-
When I select to publish my story
- Then I have the option to set a header image, tweak my title, add a subtitle, and either "Publish now" or "Schedule for later".
- Then I have the option to close the publication box with the 'X' in the upper right corner.
-
When I choose to "Publish now"
- Then my story gets immediately published
-
When I choose to "Schedule for later"
- Then I am able to select the date/time and
- Then I am able to select "Schedule to publish"
-
When I publish for the first time
- Then I am prompted to fill out some additional profile information if it wasn't already and
-
Then I am required to set a unique publication name
https://infinium.com/unique-publication-name/
-
When I publish any story
- Then it gets put under my publication name, with the title hyphen separated, and
-
Then the original draft number is appended to the end to create the final URL, e.g.
https://infinium.com/unique-publication-name/my-cool-title-b4f523ac7
As a logged in user, I want to edit my story, so that I can correct issues with my original writing.
- Can I edit my story?
- Yes, editing is really no different that creating. From a user perspective, the process is exactly the same.
- How do I get into editing my story?
- For Drafts, either
- Click the title under "Your stories" or...
- Select the drop down on the notes under the title and "Edit draft"
- For Published, either
- Click the menu within the story itself and select "Edit story", or...
- From the "Your stories" listing, select the drop down on the notes under the title and "Edit story"
- For Drafts, either
-
Given that I have already logged-in and have either begun writing a story or have previously written stories.
- When I navigate to my "Your stories" page
- Then I can click on the title of a Draft story, or
- Then I can click on the dropdown menu below either a Draft or Published story and choose "Edit [Draft or Story]" and
- Then I am taken to the same editor screen as when I first wrote the story.
-
When I navigate to my Published story page
- Then I can click a dropdown menu and choose "Edit Story" to also be take to the same story editor as when I first wrote the story.
As a user, I want to see a list of stories available for reading, so that I can choose one to read.
- Where do I find a list of stories to read?
- On the home page (whether logged in or not)
- Can I see a list of new stories?
- Sort of—a list toward the bottom of the home page offers a selection of recently published stories, but that is not the entirety of what has been published recently.
- Can I see a list of highlighted stories?
- Yes, on the home page, at the top, is a single, larger highlighted story and four other smaller highlighted stories.
- Can I see a list of trending stories?
- Yes, on the home page there is a trending section just after the highlights.
-
Given that I am on the home page
/
- When logged-in or not,
- Then I am able to see various listings of stories to read.
-
When I scroll the page
- Then I see highlighted stories at the top
- Then I see trending stories next
- Then I see a general listing of some recent stories in descending publication date order below
As a logged in user, I want to see a list of my stories, both drafts and published, so that I can choose to edit them.
- How do I find a list of my stories?
- Under your profile, click the "Stories" link to see "Your Stories"
- Are both my in progress and published stories available in the list?
- Yes, there are two tabs, one for each of "Drafts" and "Published" available on the listing
- How do I get to my stories?
- Clicking on the title will send you to the story, either a Draft to continue editing or a Published story to read.
- Can I tell how many stories I have as drafts and published?
- Yes, there is a number count if it is more than zero next to the "Drafts" and "Published" tabs
- Is any date data tracked on my list?
- Yes, Drafts have a "last saved" date/time and Published have a published date.
- Is there a word count available for my stories?
- Yes, below the title, after the date/time, a word count can be found.
-
Given that I am logged-in
- When I go to my profile area and click on "Stories" to
-
Then go to a "Your stories" page at
/me/stories/drafts
or/me/stories/public
(tabs on the page put me on one or the other; default ispublic
if stories are published, elsedrafts
)
-
When I am on the "Your stories" page,
- Then it shows the list of stories, and how many of each type I have, and when those stories were last published or, for drafts, last saved.
As a user, I want to see a single story, so that I can read and interact with it.
- How do I get to a story to read?
- Click on the title of the story in a listing, or if it has a picture in the listing with it, you can click on that also.
- Does the story indicate a read time?
- Yes, an estimated read time is given
- Does the story indicate a publication date?
- Yes, a publication date is given
- Does the story indicate the author?
- Yes, the author's name is given, which is a link to that author's public profile
- How can I interact with the story?
- If you log in, you can leave a comment
- If you log in, you can give it likes
- If you log in, you can follow the author
-
Given that I am viewing a list of stories available to read,
- When I click on a title or image associated with that story
- Then I am taken to that story's page to read
-
When I am on the story's page
- Then I can see the read time estimate, and
- Then I can see the publication date, and
- Then I can see the author's name and avatar
- Then I can read comments
- Then I can see likes
-
When I am logged in,
- Then I can leave a comment, and
- Then I can add likes, and
- Then I can choose to follow the author
As a logged in user, I want to delete my story, so that I can exercise my rights to my content.
- How do I delete a published story?
- For Drafts, either
- In "Your stories" listing, select the drop down on the notes under the title and "Delete draft"
- For Published, either
- Click the menu within the story itself and select "Delete story", or...
- From the "Your stories" listing, select the drop down on the notes under the title and "Delete story"
- For Drafts, either
- Will the story be immediately deleted?
- A confirmation dialog box will pop up to confirm the deletion or allow a cancellation; if confirmed, the story is immediately deleted.
-
Given that I have a story either published or in progress,
- When I am on my "Your stories" page OR I am on a published story's page
- Then I can click on available dropdown menus to choose a "Delete" option.
-
When I press a "Delete" option,
- Then a confirmation dialog appears to confirm my choice to delete.
-
When I have confirmed my choice to delete,
- Then the story is immediately removed and is irreversibly destroyed.
As a logged in user, I want to be able to click on a 'like' button a number of times, up until a certain number limit, so that I can provide feedback to the writer as to my level of enjoyment whilst reading their story.
- How am I able to gain access to the 'like' button?
- There are two ways in which you can access the 'like' button for a particular story
- You can click on a particular story. The 'like' button will be affixed to the bottom of the story, next to the comments section, for viewing and interaction. It will also be available on the left-side nav bar.
- You can click on another user to be redirected to a page to view all stories written by that user. A section of each of this user's stories is presented on this page, with a 'like' button affixed at the bottom of each story section.
- There are two ways in which you can access the 'like' button for a particular story
- How can I interact with the 'like' button?
- You will be able to press the 'like' button to generate a 'like'. Generating a 'like' is simply incrementing the total count of 'likes' by the number of times you click the 'like' button.
- How many times can I click the 'like' button to create a 'like'?
- The 'like' button will have a maximum number of likes of 50.
-
Given that I am a logged-in user
- When I navigate to a user story by clicking on a story on my home page, or by clicking on a particular user
- Then I will be able to access the 'like' button for that particular story
- When I click on the button, I will be able to create a 'like', up to a maximum of 50 likes to show my enjoyment level whilst reading the story.
As a logged in user, I want to be able to edit the number of 'likes' I had previously given sometime after I did it the first time, up until a certain limit, so that I can provide updated feedback to the composer of this particular story as to my level of enjoyment whilst reading their story.
- Will the 'like' button for the particular story have in memory the previous time(s) I clicked on the button?
- The 'like' button will recognise the user if they have previously clicked the button. The 'like' button will have changed color scheme (shaded black) to communicate that it has previously been clicked. Once you begin clicking again, the number of 'likes' will continue incrementing by one from the previous amount of clicks you had given.
- Can I remove the number of likes I previously gave to the 'like' button?
- Yes. You have the option to reset the number of 'likes' you previously gave to the story back to 0. Irrespective of how many 'likes' you previously
gave, the number will reset to 0. You can remove your 'likes' given by clicking on an icon to the right that pops-out a menu for editing 'likes'.
- Yes. You have the option to reset the number of 'likes' you previously gave to the story back to 0. Irrespective of how many 'likes' you previously
-
Given that I am a logged-in user
- When I revisit a user story, I will be able to edit the number of 'likes' given for that particular story.
- When I click on the button, I will be able to add more 'likes' to the previous amount of 'likes' I had given. Alternatively, I will be able to remove all 'likes' I had previously given.
As a logged in user, I want to be able to view the 'like' button, so that I can see how popular a story is based on the number of 'likes' other users have given said story.
- Will the 'like' button for a particular story provide a number of 'likes' on the same page as the associated story?
- The 'like' button will be affixed to the bottom of the story and show the number of 'likes' it has accumulated. There will be two distinct views. You will be able to view ONLY the 'likes' button and the associated number of 'likes' without being on the page of a particular story. You will be able to view both the number of 'likes' as well as the list of users who have given at least one 'like' to the story.
- Will the 'like' button dynamically update as other users view and react to the story?
- The 'like' button is expected to provide updated number of 'likes' as other users interact with it, which is shown in real time on the user's page.
-
Given that I am a logged-in user
- When I go to the page of a user or I am on the home page, I will be able to view the number of 'likes' given for that particular story, as well as be able to see if I have previously interacted with a particular 'like' button
- When I go to the page of a particular story, I will be able to view both the number of 'likes' for that story as well as view the other users that have given 'likes' to that story
- When I am browsing on Infinium
- Then the number of 'likes' will continue to update as other users interact with the button and show in real-time on my page
As a user, I want to be able to view the 'like' button, so that I can see how popular a story is based on the number of 'likes' other users have given said story. I will have all the same levels of functionality as a logged in user when it comes to viewing. In other words, the number of 'likes' that a particular story has will be able to be viewed by anyone.
**As an unauthorized user, I want to create an account with Infinium so, as an authorized user, I would be able to edit, view, or delete my own profile.
- What information will need to be provided in order to create an account?
- they will be prompted to provide: first name, last name, desired username, email address, and a password
- Where will the unauthorized user have the ability to create an account?
- Our homepage will have a 'create account' link which will prompt the user for their required information
- What will happen after a user creates a profile?
- after a user creates a profile, they will be redirected to their homepage of stories
- How will users who created profiles be able to sign in?
- already authorized users will be provided a sign in button separate to the create user button and there will be a link to the sign in page from the create user link
- When a user clicks the 'Create account' button
- a pop up menu will appear requesting the required info, this will not be a link redirecting us to another page but rather a pop up on the same page
- after a user creates a profile
- they will be redirected to their homepage and an 'profile' link will become accessible in our header that will have multiple links to edit their profile
- after clicking the "profile' page in the header
- a user will be able to sign out of their account, edit their profile, create a new story, and view all of their stories
** as an authorized user, I want to navigate to the "edit profile" page so I can then alter my profile information
- Where will the navigation link to edit profile be provided?
- The link will be part of a drop down menu that will be opened when clicking on the users profile icon in the top right of the home screen
- What information will be able to be altered when the user is editing their information?
- The user will be able to change their email, name, username and password
- Will there need to be some sort of confirmation before completing this change?
- After changing the desired information, in order to confirm the changed the user will be prompted to provide their password
- When a user clicks their profile icon
- the drop down menu will appear with the edit profile navigation
- After filling out the desired changes in the edit profile link and confirming their password
- (with correct password) The user will be navigated back to their stories profile with a pop up stating that their changes have been made
- (with incorrect password) The confirm password button will turn red asking to re-enter the correct password
**As an authorized user, when I click the "my profile" page, I will be redirected to my personal page
- Where will the my profile link be?
- it will be under the drop down menu available on the top right of the homepage
- What will consist of a users profile?
- A profile will contain a users stories, followers, following, responses, and likes
- When I click on my profile
- All of the information such as stories, followers, following, responses, and likes will be displayed
As an authorized user, I want to be able to become a follower of people I like, so I can see their stories and interact with their page
- How will the user follow a person?
- User will click on the Follow button which will turn into Following
- Where will the follow button appear?
- Follow button will appear at the top of a users page
- Follow button will also appear at the top of an article page
- What routes should we use for a user page?
- User pages should use a
${user}.medium.com
route
- User pages should use a
- When I try to follow a person
- Then the Follow button will change from Follow to Following
- When I look at the page
- Then the Follow button will be at the top
- It will also be at the top of each article next to the person's picture (optional)
- Given that I am a logged-in user
- When I'm on the
${user}.medium.com
page - Then I will see their personal profile picture and recent stories
- When I'm on the
As an authorized user, I want to be able to view my followers so I can see their stories and interact with their page
- How will the user view their followers?
- Not sure this can be done, still trying to find out
- How will the user view other people's followers?
- A user can see the number of followers of another user but not who is following
- When I try to view my followers
- Then I'm not sure where I need to go
- When I try to view other people's followers
- Then I can only see the amount of followers on the other user's page
- Following feed
As an authorized user I want to be able to view who I am following so I can see their stories and have them appear in my homepage feed
- How will the user view who they're following?
- The profile page has a number of following but not a who
- A user can only view this once they reach more than 8 following and click on "All from following" below the pictures
- The following are listed on a separate page with path
/me/following/people
where I can also follow and unfollow people
- How will I access more articles by who I'm following?
- A user can go to the "Latest from Following" and click on a picture
- Users with new stories will be placed at the top left corner of the following
- When I try to view who I'm following
- Then I go to my profile page to see how many people I'm following, although not who
- Then if I have more than 8 following I click on the "All from following" link below the "Latest from Following" section
- Then I view everyone I'm following on a separate page with path
/me/following/people
- When I try to access more articles from the users I am following
- Then I go to my home page and look at "Latest from Following"
- Then in this section the people with the newest articles appear in the top left corner
- Then I go to my home page and look at "Latest from Following"
As an authorized user, I want to be able to unfollow who I am following so I can view and interact with contact more in line with my current interests
- How will the user unfollow someone?
- A user can unfollow someone at the top of a news article of someone they are following
- The following are listed on a separate page with path
/me/following/people
- What happens when a user unfollows someone?
- The following count in their personal profile decreases
- The user they are following dissapears from their "Latest from Following" and their "Customize your ineterests" section at
/me/following/people
- When I try to unfollow someone
- Then I go to my profile page and click unfollow or click unfollow at the top of one of their published stories
- Then I go to my "Customize your interests" page and click unfollow
- When I unfollow someone
- Then the count of following on my profile page decreases by one
- Then they are removed from my "Latest from Following" on my home page
- THen they are removed from my "Customize your interests" section