User Stories - RyanGC93/Worldly GitHub Wiki
As an unauthorized user, I want to be able to create an account, so that I can use the application's services.
- Will the user enter a username and an email to signup?
- Both a username and email will be required
- Will we confirm their password during signup?
- Yes
- What routes should we use for signup?
- None, the signup form will be a modal that pops up when called upon
- Where should the user be redirected after signup?
- The user will be redirected to the main page
- What happens if the user with the username or email already exists?
- The form will render the error upon submission.
- What happens if the user enters the wrong password confirmation?
- The form will render the error upon submission.
-
Given that I'm a user who has not signed up yet and
- When I first want to Register
- I will see a form within the initial splash page with an email/username and password field with a "Log In" button to submit the form.
- When I first want to Register
-
Given that I'm a user trying to make an account,
- 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 "Register" button
- At the top of the form, I will see a message that says, "User with that username already exists or User with that email already exists."
- 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 "Register" button
-
Given that I'm a user trying to make an account,
-
When I try to fill out the form with a valid email, username, and * password and press Enter or press the "Register" button,
- I'll be redirected to the Homepage at "/"
-
-
Given that I'm a user that just signed up
- When I refresh the homepage at the / route
- I'll be logged in
- When I refresh the homepage at the / route
As an unauthorized user, I want to be able to login to the website via a form, so that I can access my private information.
- Will the user use a username or email address to log in?
- User can use either their username or email address to log in.
- What routes should we use for log in?
- User will log in via the log in modal that will pop up when called upon.
- Where should the user be redirected after login?
- User will be redirected to / route home page.
- Will we allow OAuth authentication via a third party?
- Nope.
- What happens if the user doesn't exist yet or the user enters a field with the wrong credentials?
- Display the message Invalid Login with the wrong credentials.
- Will the user be able to reset their password?
- Maybe.
- Should logging in use session-based or token-based authentication?
- Token-based authentication.
-
Given that I'm a logged-out user:
-
When I access the Splash page
- There will be a login form with a "Username or Email" field, a password field, and a "Login" button to submit the form.
-
When I try to fill out the form with an invalid email/username and * password combination and press Enter or press the "Login" button
- Then at the top of the form, I will see the message: Invalid Login.
-
When I try to fill out the form with a valid username/email and * password combination and press Enter or press the "Login" button
- Then I will be redirected to the '/' route homepage
-
-
Given that I'm a logged in user
- When I refresh the homepage at the / route
- Then I will be logged in
- When I refresh the homepage at the / route
As an authorized user, I want to be able to log out of my account, so that I can hide my account information from others using a public device.
- What happens when the user logs out?
- User will be redirected to the splash page.
- How will the user log out?
- User will click the Log out button in the User menu that is accessible from the profile picture circle button on the NavBar.
-
Given that I'm a logged-in user and
-
When I'm on any route
- Then I should be able to access the home, direct messages, explorer feed, likes, profile buttons in the NavBar and log off whenever.
-
When I click the Log out button
- Then I will be redirected back to the splash page to login or create a new account.
-
As a prospective user who wants to demo the functionality of Worldly, I want access as a demo user by a single click on the splash page.
- Will the user enter a username or an email address to login?
- User will can login via the "Demo User Login" button if they want.
- What routes should should we use for login?
- User will log in via splash page login forms.
- Where should the user be redirected after login?
- User will be redirected to /.
- Given that I am a logged-out user
- When I'm on the splash page
- There will be a button that will let me login as a demo user
- When I'm on the splash page
- Given that I am logged in as the demo user
- When I refresh any page
- Then I should be logged in as the demo user
- When I refresh any page
- What route will show a bowsing overview of events to book
- /
- What route will show all past/future events I booked
- /profile/
-
Given that I am a logged in user
-
What I will see on all routes
- i will see a nav bar that has a logo that redirect to the '/' route, a search bar that directs to '/event/"id"' upon a successful search, and navlinks to different routes
-
When I'm on the '/' route
- Then I will see different categories of events displayed in a carousel with cards that I can choose from. Upon selection I will be redirected to '/category/'
-
When I'm on the '/category' route I will be able to see cards of the different events matching that category sorted by closest to the current date
- In each card I will be able to see the event title, the description, photo for the event, total review count and the number of reviews
- when i click the event I will be redirected to the '/event/' route
-
As a logged in user, I want to be book an event and have it be added to my 'itenary; for my profile
On what route will I be able to book an event?
- On the '/event/' route
-
Given that I am a logged in user
-
When I navigate to /event/id to book an event
- I'll see a three dot on the top right to be able to book.
-
When I successfully book an event
- Then I will be redirected to the 'event/id' but a confirmation will be available .
-
As a logged in user, I want to be able to unbook an event as long as it is 48hrs before the event.
- How will a user unbook one of their events?
- On the user profile there will be upcoming events and on the top right there will be option to unbook
- Where will the app redirect to when a post is deleted successfully?
- The app will redirect to the back to the profile page and the event unbook shouldn't be displayed
- What is the criteria of being unable to unbook an event
- the event has to be more than 48 hrs away
-
Given that I am a logged in user and and I want to unbook an event
-
When I navigate to my profile
- Then I will see all upcoming booked event with the option to delete them if it is more than 48hrs before the event
-
When I click on the delete button on the post
- Then I will get rerouted my profile page with a message notifying me that the event was unbooked.
-
As a logged in user, I want to be able to change the booking.
- How will a user change therir booking?
- On the user profile there will be upcoming events and on the top right there will be option to unbook as well as an option to change the booking
- Upon click a modal will apear listing date that the event can be booked for
- Where will the app redirect when the booking is changed ?
- The user will remain on profile page,but the upcoming events shouuld be updated to reflect the changes in booking
- What is the restrictions of changing a booking
- The event ahs
-
Given that I am a logged in user
-
When I navigate to my profile page
- Then I will see the option to edit it on the events card.
-
When I click on the edit button on the post
- Then I will see a calendar and able to change the date as long as it is 48hrs before the event and the changed date is at least 48hrs away .
-
When I submit the change in the event
- i will see a confirmation dialog appear and then i will be redireccted to the profile page where my upcoming events will be updated to reflect the change in the event booking
-
As a logged in user whom attended an event, I want to be able to leave a review on the event
- How will a logged in user make a review for the event?
- On the profile page in past events, there will be an option to leave a review for an attended event.
- What is the constraints of leaving a review
- The event must have must be in the past
-
Given that I am a logged in user
-
When I navigate to a user profile
- On the card for the past events there will be an option to leave a review
-
When I click the "leave a review" button an event card, a modal will appear
- A star review system will appear and I will be able to leave a review based out of how many stars
- Then I will see an input field that lets me type out my comment and submit.
-
When I submit my review
- Then I will see my review on that post
-
*As a logged in user, I want to be able to see all the reviews on an event, so I can see how other people enjoyed the event.
- Where will all the reviews be shown for a event?
- On that event card
- The reviews will be displayed as an average of all reviews of the event
- Given that I am a logged in user
- When I navigate to a event detail page
- Then I will be able to see all comments made on a events.
- I will be able to see an average of all the reviews on the event
As an unauthorized embassador, I want to be able to create an account, so that I can create events that embassadors can attend
- Will the embassador enter a embassadorname and an email to signup?
- Both a embassadorname and email will be required
- Will we confirm their password during signup?
- Yes
- What routes should we use for signup?
- None, the signup form will be a modal that pops up when called upon
- Where should the embassador be redirected after signup?
- The embassador will be redirected to the main page
- What happens if the embassador with the embassadorname or email already exists?
- The form will render the error upon submission.
- What happens if the embassador enters the wrong password confirmation?
- The form will render the error upon submission.
-
Given that I'm a embassador who has not signed up yet and
- When I first want to Register
- I will see a form within the initial splash page with an email/embassadorname and password field with a "Log In" button to submit the form.
- When I first want to Register
-
Given that I'm a embassador trying to make an account,
- When I try to fill out the form with an email or embassadorname that * already exists with a valid password and press Enter or press the "Register" button
- At the top of the form, I will see a message that says, "embassador with that embassadorname already exists or embassador with that email already exists."
- When I try to fill out the form with an email or embassadorname that * already exists with a valid password and press Enter or press the "Register" button
-
Given that I'm a embassador trying to make an account,
-
When I try to fill out the form with a valid email, embassadorname, and * password and press Enter or press the "Register" button,
- I'll be redirected to the Homepage at "/"
-
-
Given that I'm a embassador that just signed up
- When I refresh the homepage at the / route
- I'll be logged in
- When I refresh the homepage at the / route
As an unauthorized embassador, I want to be able to login to the website via a form, so that I can access my private information.
- Will the embassador use a embassadorname or email address to log in?
- embassador can use either their embassadorname or email address to log in.
- What routes should we use for log in?
- embassador will log in via the log in modal that will pop up when called upon.
- Where should the embassador be redirected after login?
- embassador will be redirected to / route home page.
- Will we allow OAuth authentication via a third party?
- Nope.
- What happens if the embassador doesn't exist yet or the embassador enters a field with the wrong credentials?
- Display the message Invalid Login with the wrong credentials.
- Will the embassador be able to reset their password?
- Maybe.
- Should logging in use session-based or token-based authentication?
- Token-based authentication.
-
Given that I'm a logged-out embassador:
-
When I access the Splash page
- There will be a login form with a "embassadorname or Email" field, a password field, and a "Login" button to submit the form.
-
When I try to fill out the form with an invalid email/embassadorname and * password combination and press Enter or press the "Login" button
- Then at the top of the form, I will see the message: Invalid Login.
-
When I try to fill out the form with a valid embassadorname/email and * password combination and press Enter or press the "Login" button
- Then I will be redirected to the '/' route homepage
-
-
Given that I'm a logged in embassador
- When I refresh the homepage at the / route
- Then I will be logged in
- When I refresh the homepage at the / route
As an authorized embassador, I want to be able to log out of my account, so that I can hide my account information from others using a public device.
- What happens when the embassador logs out?
- embassador will be redirected to the splash page.
- How will the embassador log out?
- embassador will click the Log out button in the embassador menu that is accessible from the profile picture circle button on the NavBar.
-
Given that I'm a logged-in embassador and
-
When I'm on any route
- Then I should be able to access the home, direct messages, explorer feed, likes, profile buttons in the NavBar and log off whenever.
-
When I click the Log out button
- Then I will be redirected back to the splash page to login or create a new account.
-
As a prospective embassador who wants to demo the functionality of Instantaneous Gramme, I want access as a demo embassador by a single click on the splash page.
- Will the embassador enter a embassadorname or an email address to login?
- embassador will can login via the "Demo embassador Login" button if they want.
- What routes should should we use for login?
- embassador will log in via splash page login forms.
- Where should the embassador be redirected after login?
- embassador will be redirected to /.
- Given that I am a logged-out embassador
- When I'm on the splash page
- There will be a button that will let me login as a demo embassador
- When I'm on the splash page
- Given that I am logged in as the demo embassador
- When I refresh any page
- Then I should be logged in as the demo embassador
- When I refresh any page
- What route will show a bowsing overview of events to book
- /
- What route will show all past/future events I booked
- /profile/
-
Given that I am a logged in embassador
-
What I will see on all routes
- i will see a nav bar that has a logo that redirect to the '/' route, a search bar that directs to '/event/"id"' upon a successful search, and navlinks to different routes
-
When I'm on the '/' route
- Then I will see different categories of events displayed in a carousel with cards that I can choose from. Upon selection I will be redirected to '/category/'
-
When I'm on the '/category' route I will be able to see cards of the different events matching that category sorted by closest to the current date
- In each card I will be able to see the event title, the description, photo for the event, total review count and the number of reviews
- when i click the event I will be redirected to the '/event/' route
-
As a logged in embassador, I want to be create an event and have it be added to owned events for my events
On what route will I be able to create an event?
- On the '/create>' route
-
Given that I am a logged in embassador
-
When I navigate to /create to book an event
- I'll will see a multiform with required input fields to have to create
-
When I successfully create an event
- Then I will be redirected to the 'event/id' but a confirmation will be available .
-
As a logged in embassador, I want to be able to delete an event as long as it is there is no future attendies.
- How will a embassador delete one of their events?
- On the embassador profile there will be owned events and on the top right there will be option to delete that even
- Where will the app redirect to when a event is deleted successfully?
- The app will redirect to the back to the profile page and the event deleted shouldn't be displayed
- What is the criteria of being unable to delete an event
- the event has no future attendies
-
Given that I am a logged in embassador and and I want to delete an event
-
When I navigate to my profile
- Then I will see all owned event with the option to delete them if there are no future attendies for the event
-
When I click on the delete button on the event
- Then I will get rerouted my profile page with a message notifying me that the event was delete.
-
As a logged in embassador, I want to be able to change the booking.
- How will a embassador change their event?
- On the embassador profile there will be owned events and on the top right there will be option to change the booking
- Upon click a modal will appear and the forms can be changed
- Where will the app redirect when the booking is changed ?
- The embassador will remain on profile page,but the owned events shouuld be updated to reflect the changes in booking
- What is the restrictions of changing a booking
- There is none however it may reflect in your rating
-
Given that I am a logged in embassador
-
When I navigate to my profile page
- Then I will see the option to edit it on the events card.
-
When I click on the edit button on the post
- a modal will appear and in the forms you can change the event
-
When I submit the change in the event
- i will see a confirmation dialog appear and then i will be redireccted to the profile page where my upcoming events will be updated to reflect the change in the event booking
-