-
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' icon a number of times, up unto a certain 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?
- The 'like' button will be affixed to the bottom of the story for viewing and interaction.
- How can I interact with the 'like' button?
- I will be able to press the 'like' button to generate a 'like'.
- 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, 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 add more clicks on a 'like' icon sometime after I did it the first time, up unto a certain limit, so that I can provide updated feedback to the writer 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. They will still have a maximum of 50 likes in total, and their previous 'likes' given will be accounted for in that total.
- Can I remove the number of likes I previously gave to the 'like' button?
- Unsure. This needs to be further investigated. If so, the minimum number would be reset to 0 if all likes were removed by the user.
- 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. I will also be able to remove the number of likes 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 the particular story provide a number on the same page as the associated story?
- The 'like' button will be affixed to the story and show the number of 'likes' it has accumulated.
- 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 story, I will be able to view the number of 'likes' given for that particular story.
- The number of 'likes' will continue to update as people interact with the button and shown this on my page.
As a unauthorized 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, 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