Battle other Pokemon, build your team, and become a pokemon master! You will signin as a unique user and pick a starter Pokemon. As you defeat pokemon, you will catch them and add them to your roster so that you may use them in your next battle!
See planningStuff/Wireframes.dio
- When I first visit the site, I see a home page with a description of the site and links to signup and login.
- When I try to login without an existing account, it doesn't let me login.
- When I try to signup by using an existing email address or username, it doesn't let me create the account.
- After signing up, I'm greeted with an option to choose a starter pokemon.
- Once I've picked a starter pokemon - or upon successful re-login - I'm taken to a page with all of my pokemon.
- When I click on one of my pokemon I can choose to resume a previous battle, start a new one, or close those menu options.
- When I enter a battle, I see my pokemon, it's name and health, and a random enemy pokemon, along with it's name and health.
- While battling, I have the option to fight, or quit (, or save & quit - Stretch Goal).
- When I defeat an enemy pokemon, it is added to My Pokemon.
- When I leave the site without logging out, upon return I am still logged in.
- When I logout, I have to re-login to be able to see my pokemon and start battles.
- '/user/signup' - Create a new user.
- '/user/login' - Login to an existing user account.
- '/user/verify' - Verify a user that currently has an auth token stored.
- '/myPokemon' - Get all of the currently logged-in user's pokemon.
- '/myPokemon/add' - Add a pokemon to the currently logged-in user's pokemon.
- (Stretch)'/myPokemon/saveBattle' - Save the logged-in user's current pokemon's battle.
- Create Backend Express App
- npm init
- npm installs (express, nodemon, pg, sequelize, dotenv, bcrypt, jsonwebtoken, cors, rowdy-logger)
- sequelize init
- .gitignore (node_modules, config, .env)
- Create DB models
- Use singular names
- Migrate models
- Create routers and controllers for backend
- Create controller functions
- Hook-up server.js with routers and routers with controllers
See planningStuff/ERD.jpg
See planningStuff/FrontendComponents.dio
- '/' - Home page.
- '/signup' - Signup as a new user.
- '/login' - Login to an existing user account.
- '/selectStarter' - Page to select the logged-in user's starter pokemon.
- '/myPokemon' - Page to see all of the signed-in user's caught pokemon as well as initiate a new battle (or resume a saved one - Stretch Goal).
- '/battle' - Page that will hold the most fun part of the app/site - BATTLING!!!
- Create React App (use '.' to specify that it should be made directly in frontend folder)
- Create all Component and Page folders, .js files, and .css files
- Create AppContext
- Wrap the App in BrowserRouter and AppContext
- Complete Components and Pages
- Will need "https://pokeapi.co/api/v2/" calls
- More complex game mechanics
- Mechanics do include move choices rather than just coin flips.
- Could expand furhter with pokemon stats incorporation beyond just the selected move's power.
- Could expand furhter with assigning more 'classic' pokemon moves for each pokemon, and not just the first 3 moves in the list of moves the pokemon can learn.
- Pokemon Damaged Animations
- Ability to filter/search My Pokemon
- Implement Battle saving
- Select the enemy pokemon you want to battle