User Stories - PeterMace/topmtg GitHub Wiki
TopMTG
This website is designed to help create, share, and edit Commander(Elder Dragon Highlander) decks. A user will be able to create a deck and description. Add and remove cards from a search input of 29000 cards+.
Stakeholders
Our users are going to MTG players, particularly those who play the game format Elder Dragon Highlander also known as Commander. This site doesn't cater to professional players but does have features useful for beginners and competitive EDH players.
Replace default README File User Story As a Project Manager, I want to see a completed Readme file so that I can understand more about your project. Acceptance Criteria
- Readme located at the root of your project has been updated with info from the wiki. See https://github.com/PeterMace/CommanderDeckBuilder/blob/main/README.md for an example.
Replace default favicon File User Story As a Project Manager, I want to see an updated favicon so that I can easily identify your application in a list of tabs. Acceptance Criteria
- Favicon has been updated from the default icon provided by the project starter. See https://www.favicon-generator.org/ for a simple favicon generator
Deploy for the first time User Story As a Developer, I want to deploy my starter app to Heroku so that I can make sure I can deploy changes consistently. Acceptance Criteria
- The cloned starter app has been deployed to Heroku.
Create About Links on the Home Page User Story 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 my project. Acceptance Criteria
- Links to your LinkedIn and GitHub profiles should appear on the homepage of your application
Sign Up Functionality User Story As a User, I want to create an account so I can use the website. Acceptance Criteria
- A link/button appears in the navigation for Sign Up (only when not already logged in)
- When clicking the link/button the user is redirected to a sign up form.
- After filling out the form and clicking a Submit button an account is created.
- A message is displayed to the user indicating that the account has been created. (optional)
- The user is redirected to an appropriate page (determined by the developer)
- The user has some indication that the user is now logged in.
Login Functionality User Story As a User, I want to login with my previously created account so I can use the website. Acceptance Criteria
- A link/button appears in the navigation for Log In (only when not already logged in)
- When clicking the link/button the user is redirected to a login form.
- After filling out the form with username and password and clicking a Login button the user is logged in.
- A message is displayed to the user indicating that the user has successfully logged in (optional)
- The user is redirected to an appropriate page (determined by the developer)
- The user can visually identify they’ve been logged in by having their username displayed in the navigation bar.
Error handling Complete User Story As a Developer, I want to validate the LogIn/Signup forms being submitted so my users have a good experience when using my application. Acceptance Criteria
- (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 Functionality Complete User Story As a Logged In User, I can log out of my account so I can ensure it isn’t used without my permission. Acceptance Criteria
- 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 Functionality Complete User Story As a Project Manager, I can use a Demo Account so that I can use the application without having to use the signup form. Acceptance Criteria
- A link/button appears in the navigation form and/or Login Form titled “Demo Login” (only when logged out)
- When clicking this button/link 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.
Auth Styling Complete User Story As a User, I would like to see at least basic styling on the signup and login forms so that the application doesn’t appear too similarly to the default application provided. and wireframes. Acceptance Criteria
- Sign up and Login forms have been styled appropriately.
Card Data for Search User Story As a User, I would like to be able to select a card from any of the 28000+ magic cards allowed in the commander decks. It is important to be able to view the images of the cards. This information can be pulled from the Scryfall bulk data files. This is recommended in their API documentation to circumvent their API request limit. Acceptance Criteria
- All cards are pulled from the data files and stored into the database/CDN
- All card images are pulled from the data files and stored into the database/CDN
Search Card Functionality User Story As a User, I would like to be able to search for any card from any of the 28000+ magic cards allowed in commander decks. This would give the user the ability to quickly select one card based on it’s name. Acceptance Criteria
- An input field shows cards with names matching the search string from the user.
Styling Search Card Input User Story As a User, I would like to see at least basic styling on the search card input so that the application shows no default styling and is up to modern web standards. All functionality should be accessible on mobile and desktop. Acceptance Criteria
- Card search input has been styled appropriately.
- The same information is displayed on mobile and desktop.
Create Deck Functionality User Story As a User, I need a way to create a new deck with a name. This will allow me to have more than one deck. Acceptance Criteria
- A form allows a user to enter a deckname and description.
View Decklist functionality User Story As a User, I would like to be able to select a deck from a list. Acceptance Criteria
- The deck names are displayed in a list.
- When one deck is selected, its description and its corresponding cards are displayed on a deck specific page.
Update Deck Functionality User Story As a User, I would like to be able to change the name and description of the deck. Acceptance Criteria
- An edit form allows the user to update the name and description of the deck.
Delete Deck Functionality User Story As a User, I may need to delete a deck. Acceptance Criteria
- A user can delete the decks they have created by hitting the delete button..
- A user then must confirm the delete via a secondary model delete confirmation.
Styling deck functionality User Story As a User, I would like to be able to view the cards in the deck. Acceptance Criteria
- All html has been upgraded from default to modern web standards..
Add Card to Deck Functionality User Story As a User, I would like to be able to search for any card from any of the 28000+ magic cards allowed in the commander decks and instantly add it to my current deck. Acceptance Criteria
- Selecting a card from the search input field automatically adds it to the current deck.
Remove Card to Deck Functionality User Story As a User, I would like to remove cards from my deck. Acceptance Criteria
- The user can hit an x ro delete button on any listed card in the current decklist to remove it.
Card Decklist - Styling + Images User Story As a User, I would like to be able to search for any card from any of the 28000+ magic cards allowed in the commander decks. This would give the user the ability to quickly select one card based on it’s name. Acceptance Criteria
- All card images in a deck are displayed.
- The decklist page doesn’t have any default html displayed.