PokéDrafts
A customized deck builder app for the Pokémon Trading Card Game.
Built for the 100Devs 100 Hours ProjectApp Link
This app aims to accomplish the following:
SERVER-SIDE
- Utilize MVC architecture to organize all server-side code. --COMPLETED
- Enable Google Authentication for user logins. --COMPLETED
- Ensure that each user has access to their own individual deck. --COMPLETED
- Connect each user's deck to a separate database (MongoDB).
- Arrange the user's deck as an object on MongoDB.
- Create a relational database called "Cards" that links from the "Decks" database for each user.
- Successfully deploy app on Heroku. --COMPLETED
FRONT-END
- Create customizable decks for each user.
- Establish dynamic carousels to accommodate all card results.
- Create tab views for Search, Search Results, and Deck. --COMPLETED
UI
- Highlight the button of whichever tab is active.
- When a user deletes a card, remove the slide it is on as well. --50% COMPLETE
- When the user hits the submit button on Card Search, switch the tab to Search Results. --COMPLETED
- Add radio inputs for Pokemon Type and Card Type. --COMPLETED
- Add checkbox inputs for Card Set. --COMPLETED
- Add a card counter on the Deck panel. --COMPLETED
- Show how much of each card is in a deck.
- When a user is typing in the name of a card, have the search bar offer suggestions.
DECK RULES
- A completed deck must have exactly 60 cards. --COMPLETED
- A deck cannot exceed 60 cards. --COMPLETED
- No more than 4 of each card can be added to a deck, with the exception of energy cards.
FUTURE GOALS
- Allow users to manage more than one deck.
- Allow users to toggle their decks as public or private.
- If a deck is made public, allow other users to view them.
- Render a limited number of files initially, and have the carousel render more as it goes on.
- Provide an option for users to sort the deck in various ways.
- Enable more avenues of authentication
MISC
- Card object on mongoDB should appear as the following:
deck {
--card 1:
----id: 35346346
----img: 354345345
----createdAt: Date
----createdBy: Name
--card 2:
----id: 35346346
----img: 354345345
----createdAt: Date
----createdBy: Name
--card 3:
----id: 35346346
----img: 354345345
----createdAt: Date
----createdBy: Name
}
CHALLENGES:
- How do you add information from an API's dataset to your own database? --COMPLETED
- How do you connect a user's ID to a card they added into the database? --COMPLETED
- How can I remove a user's entire deck without affecting the cards in another user's deck? --COMPLETED
LOGS: 9/10/2022
- Restructured server-side code to include controllers.
- Renamed router directories to better relate to their functions.
- Enabled object name displays on mongoDB by linking it from the front-end code.
- Fixed user first name display on the profile page.
- Connected user ID's to each card that is added to the deck.
- Fixed redirects when re-loading the site as current user. (/decks -> /profile in /middleware/auth.js)
9/11/2022
- Delete Deck button now only deletes individual user's deck, and not everyone's deck
9/12/2022
- Implemented Card Counter to show how many cards exist in each user's deck.
- Implemented dynamic counter to update card count number each time user adds a card to their deck.
- Enabled single card deletion to also update the card counter appropriately.
- Blocks users from adding cards to their deck once the card counter has reached 60.
9/15/2022
- Added update bar on Search Results to show the names of cards added to the user's deck.