"Choose your Pokemon" is a Webpack project meant to fetch data from two different APIs: PokéAPI and Involvement API

Overview

Choose Your Pokemon

"Choose your Pokemon" is a Webpack project meant to fetch data from two different APIs: PokéAPI and Involvement API. Here we display a list of 20 Pokemons for whom one can like, display more info, and comment; all based on the data from these two external resources.

Preview)

Got to code them all! The ultimate fan database is now available. Go through the list of Pokemons, pick the best ones (including evolution), comment, like, and see which one is the best among the community of Trainers!

Built With

  • HTML/SCSS, JavaScript.
  • WebPack, Jest, External APIs.
  • Visual Studio Code, Polypane.

Live Demo

Live Demo Link

Getting Started

To get a local copy up and running follow these simple example steps.

  • Clone this repository with git clone[email protected]:carloshs1994/choose-your-pokemon.git using your terminal or command line.
  • Change to the project directory by entering :
    cd choose-your-pokemon in the terminal

Prerequisites

You need to make sure to have installed the latest version of Node.js and npm on your computer.

Setup

You can clone this repository or simply download the files as a .zip If you want to set up a personal repository based on this one, you can as well fork it.

Install

After clone it and before working on it, you have to run npm install so that all the dependencies of the project get downloaded in your pc locally. Such dependencies include webpack and linters checks, for which you have to either generate your own config file or get one.

Note: If you're a Microverse's Student, you should use the config files provided by the program. Linters Config HTML/CSS and JS

About WebPack deploy to Github Pages

The dependencies and configuration are all set to deploy the dist folder to a gh-pages branch. The only thing you need to do is to change the publicPath inside webpack.config.js to match the one of your project.

Usage

You're free to use this project however you like it for educational purposes. Just keep in mind the acknowledgment described below

Run linters checks

Linter Checks are automatically run with Github actions when there's a pull request. If you want to run them locally, remember to have the config file in the root of the local project.

Deployment

The deployment can be found in the Github Pages of this repository or through the link provided above

Authors

👤 Carlos Herver Solano

👤 Andrés Felipe Arroyave Naranjo

Acknowledgments

Show your support

Give a ⭐️ if you like this project!

📝 License

This project is MIT licensed.

Comments
  • Set up of Kanban Board

    Set up of Kanban Board

    Hello 👋🏻

    Here's the link to our Github project:

    https://github.com/carloshs1994/choose-your-pokemon/projects/1

    There are two people in this team project.

    Cheers!

    opened by JohnFTitor 2
  • Choose Pokemon V1.0

    Choose Pokemon V1.0

    Hi there 👋🏻

    Thanks for taking the time to review the project. Here are some things important to note about it:

    Sass

    The project was built using Sass. The only difference was that we needed to add an additional loader to webpack, but the result is overall the same (A CSS output). Additionally, we used MiniCssExtractPlugin to generate an external CSS file in the dist folder instead of the styles in the head of the document. It has the same dynamic response, it's just that the output looks more organized.

    Video

    Here's a video describing the project requirements and contains a demo of it: Presentation Video

    Now into the project...

    Changes implemented in "display-list" task 💻

    • ✅ Add Function to retrieve a list of 20 Pokemons and their data.
    • ✅ Add Function that displays a list of cards containing basic Pokemon info: Name and Image.
    • ✅ Add Mocks for API Handler Function and SVG images.
    • ✅ Add test for DOM manipulation (Inserting cards li elements).

    Changes implemented in "popup" task 📄

    • ✅ Create a comments popup only with the top section
    • ✅ When the popup loads, the web app retrieves data from the Pokeapi
    • ✅ Shows details about the selected pokemon
    • ✅ Add event listener to the comments buttons
    • ✅ Resolve merge issues with development

    Changes implemented in "display-add-likes" task 💯

    • ✅ Create getLikes function to retrieve an array of objects containing the like info for each card.
    • ✅ Create displayLikes function to set the likes of the cards that have like info.
    • ✅ Create addLike function to post like info to the API
    • ✅ Add event listener to the heart button to call addLike.
    • ✅ Allow the user to link only once. That way it's kept a more consistent Dataset. (Trick: To like again, you can reload the page)

    Changes implemented in "Show-comments" task ☄️

    • ✅ When the popup loads, the web app retrieves data from the Involvement API to show the item comments.
    • ✅ Implement the "add new comment" form on the Comments pop up according to the wireframe

    Changes implemented in "items-counter" task 🔄

    • ✅ Add tests for itemsCounter function
    • ✅ Call itemsCounter to display the number of Pokemons next to the tag in the Navbar

    Changes implemented in "test-comments" task 🧪

    • ✅ My code follows the style guidelines of this project.
    • ✅ Add test for the commentCounter function
    • ✅ Implement the function to count the number of comments

    Final notes

    Is expected that this project meets the requirements. Please let us know if anything is left to be done or can be improved. Again, thanks for the review.

    Note: My partner and I waiting for review enhancement 
    opened by JohnFTitor 1
  • Comment counter function fix

    Comment counter function fix

    Excellent and beautiful project guys! I only have one minor issue.

    Issue

    https://github.com/carloshs1994/choose-your-pokemon/blob/7ffcf1d5bb1ff194b3399b715fceb6ad032000b6/src/scripts/modules/comments.js#L23-L26

    The name of the commentCounter function does do not reflect its functionality, because it gets from the very beginning the value that it is supposed to return, in this case, the length of the comment array. What it is actually doing is checking that the length of the comment array is valid.

    Suggestion

    To fix this issue I would recommend that in the commentCounter function put as a parameter the array of comments, and then return the length of the array.

    enhancement 
    opened by Yothu 1
  • Set up files and assets

    Set up files and assets

    Hi there 👋🏻

    Thanks for taking the time to review the project. Here are some things important to note about it:

    Sass

    The project was built using Sass. The only difference was that we needed to add an additional loader to webpack, but the result is overall the same (A CSS output). Additionally, we used MiniCssExtractPlugin to generate an external CSS file in the dist folder instead of the styles in the head of the document. It has the same dynamic response, it's just that the output looks more organized.

    Now into the project...

    Changes implemented in "set-up" branch

    • ✅ Add Webpack and Jest.
    • ✅ Add Assets.
    • ✅ Structured styling.

    Final notes

    Is expected that this project meets the requirements. Please let us know if anything is left to be done or can be improved. Again, thanks for the review.

    documentation enhancement 
    opened by JohnFTitor 1
  • Style refactor

    Style refactor

    Hi there, @carloshs1994

    Thanks for taking the time to review the project

    I was stepping by and thought about refactoring the color scheme we previously chose for the project. I've been learning a bit about material guidelines for these colors and thought about giving it a try here. Please let me know what you think!

    Sass

    The project was built using Sass. The only difference was that we needed to add an additional loader to webpack, but the result is overall the same (A CSS output). Additionally, we used MiniCssExtractPlugin to generate an external CSS file in the dist folder instead of the styles in the head of the document. It has the same dynamic response, it's just that the output looks more organized.

    Now into the project...

    Changes implemented in "Style Refactor" branch

    • ✅ This PR solves #51
    • ✅ Included new color scheme in _variables.scss
    • ✅ Applied new color scheme to webpage

    Final notes

    Is expected that this project meets the requirements. Please let me know if anything is left to be done or can be improved. Again, thanks for the review.

    enhancement 
    opened by JohnFTitor 0
  • Pokedex

    Pokedex

    Hi @JohnFTitor 👋🏻

    Thanks for taking the time to review the project. Here are some things important to note about it:

    Sass

    The project was built using Sass. The only difference was that we needed to add an additional loader to webpack, but the result is overall the same (A CSS output). Additionally, we used MiniCssExtractPlugin to generate an external CSS file in the dist folder instead of the styles in the head of the document. It has the same dynamic response, it's just that the output looks more organized.

    Now into the project...

    Changes implemented in "pokedex" branch

    • ✅ My code follows the style guidelines of this project.
    • ✅ The popup is responsive using grid.
    • ✅ Add simple Pokedex to desktop size.

    Final notes

    Is expected that this project meets the requirements. Please let us know if anything is left to be done or can be improved. Again, thanks for the review.

    enhancement 
    opened by carloshs1994 0
  • About page

    About page

    Hi there 👋🏻

    Thanks for taking the time to review the project. Here are some things important to note about it:

    Sass

    The project was built using Sass. The only difference was that we needed to add an additional loader to webpack, but the result is overall the same (A CSS output). Additionally, we used MiniCssExtractPlugin to generate an external CSS file in the dist folder instead of the styles in the head of the document. It has the same dynamic response, it's just that the output looks more organized.

    Now into the project...

    Changes implemented in "about-page" branch

    • ✅ Add About page section.
    • ✅ Add Spinner that displays while the data is being fetched.

    Final notes

    Is expected that this project meets the requirements. Please let us know if anything is left to be done or can be improved. Again, thanks for the review.

    enhancement 
    opened by JohnFTitor 0
  • See more feature

    See more feature

    Hi there 👋🏻

    Thanks for taking the time to review the project. Here are some things important to note about it:

    Sass

    The project was built using Sass. The only difference was that we needed to add an additional loader to webpack, but the result is overall the same (A CSS output). Additionally, we used MiniCssExtractPlugin to generate an external CSS file in the dist folder instead of the styles in the head of the document. It has the same dynamic response, it's just that the output looks more organized.

    Now into the project...

    Changes implemented in "see-more-feature" branch

    • ✅ Add "See More" Button that retrieves 10 pokemon from the API and displays them on the page, Limit allowed 500 Pokemon.
    • ✅ Add test case for the Button feature and an additional function to simulate events.
    • ✅ Add PokeLogo to page

    Final notes

    Is expected that this project meets the requirements. Please let us know if anything is left to be done or can be improved. Again, thanks for the review.

    enhancement 
    opened by JohnFTitor 0
  • Docs and fixes

    Docs and fixes

    Hi there 👋🏻

    Thanks for taking the time to review the project. Here are some things important to note about it:

    Sass

    The project was built using Sass. The only difference was that we needed to add an additional loader to webpack, but the result is overall the same (A CSS output). Additionally, we used MiniCssExtractPlugin to generate an external CSS file in the dist folder instead of the styles in the head of the document. It has the same dynamic response, it's just that the output looks more organized.

    Now into the project...

    Changes implemented in "docs-and-fixes" branch

    • ✅ Fix minor bugs.
    • ✅ Add project documentation.

    Final notes

    Is expected that this project meets the requirements. Please let us know if anything is left to be done or can be improved. Again, thanks for the review.

    documentation 
    opened by JohnFTitor 0
  • Popup style

    Popup style

    Hi @JohnFTitor 👋🏻

    Thanks for taking the time to review the project. Here are some things important to note about it:

    Sass

    The project was built using Sass. The only difference was that we needed to add an additional loader to webpack, but the result is overall the same (A CSS output). Additionally, we used MiniCssExtractPlugin to generate an external CSS file in the dist folder instead of the styles in the head of the document. It has the same dynamic response, it's just that the output looks more organized.

    Now into the project...

    Changes implemented in "popup-style" branch

    • ✅ Color and style have changed
    • ✅ Add transitions to buttons
    • ✅ Change layout so it's more responsive

    Final notes

    Is expected that this project meets the requirements. Please let us know if anything is left to be done or can be improved. Again, thanks for the review.

    enhancement 
    opened by carloshs1994 0
  • Home page styling

    Home page styling

    Hi there 👋🏻

    Thanks for taking the time to review the project. Here are some things important to note about it:

    Sass

    The project was built using Sass. The only difference was that we needed to add an additional loader to webpack, but the result is overall the same (A CSS output). Additionally, we used MiniCssExtractPlugin to generate an external CSS file in the dist folder instead of the styles in the head of the document. It has the same dynamic response, it's just that the output looks more organized.

    Now into the project...

    Changes implemented in "home-page-styling" branch

    • ✅ Add Styles to the layout.
    • ✅ Add media query for small devices.
    • ✅ Add Preconnect link to HTML to speed up page loading.

    Final notes

    Let me know if anything needs to be changed per good practices, readability, performance or if a feature implemented may break your current work. Again, thanks for the review!

    enhancement 
    opened by JohnFTitor 0
  • [0.5pt]Fix vertical layout in the Pokedex

    [0.5pt]Fix vertical layout in the Pokedex

    The Pokedex looks bad when you are on a wide but short screen. The comments sections overlap with the Pokedex and the pokemon's image is too big for its container.

    opened by carloshs1994 0
  • Game page

    Game page

    Hi @JohnFTitor 👋🏻

    Thanks for taking the time to review the project. Here are some things important to note about it:

    Sass

    The project was built using Sass. The only difference was that we needed to add an additional loader to webpack, but the result is overall the same (A CSS output). Additionally, we used MiniCssExtractPlugin to generate an external CSS file in the dist folder instead of the styles in the head of the document. It has the same dynamic response, it's just that the output looks more organized.

    Now into the project...

    Changes implemented in "game-page" branch

    • ✅ My code follows the style guidelines of this project.
    • ✅ The mix and match game follows Fisher-Yates Shuffle Algorithm
    • ✅ We use the pokeapi to create the images for the cards inside the board
    • ✅ We added animations and transitions to the cards to make them more interactive
    • ✅ We used a class to store all the game's logic

    Final notes

    Is expected that this project meets the requirements. Please let us know if anything is left to be done or can be improved. Again, thanks for the review.

    enhancement 
    opened by carloshs1994 0
  • [3pt]Add see more information inside Pokedex

    [3pt]Add see more information inside Pokedex

    When the user opens the popup, the Pokedex offers the option to retrieve more information about the pokemon. When the user clicks the button 'see more' the Pokedex shows other attributes to the user

    opened by carloshs1994 0
Owner
Carlos HerverSolano
Front-End Software Developer with a love for React and Redux. Stack: Next.js | React | Redux | JavaScript | SASS | MUI
Carlos HerverSolano
Kyrillos Hany 14 Aug 10, 2022
Rent-A Movie is a website based on movie renting. The user can leave likes, comments or make reservations for movies they would like to rent. Made using tvMaze API, Involvement API, HTML, SASS and JavaScript

Rent-A Movie "Rent-A Movie" is a website for movie renting where you can make reservations, add comments & likes or just get details about movies that

Zeeshan Haider 19 Aug 23, 2022
This project is built with JavaScript, Webpack, HTML & CSS, Leaderboard api. When user clicks on Refresh button it hits the api and responds with the data, The user can also post data to the api

leaderboad Description the project. this project is about the leaderboad i did during Microverse to build a website for adding Data to the API and fet

Emmanuel Moombe 4 May 30, 2022
The leaderboard website displays scores submitted by different players. It also allows you to submit your score. All data is preserved thanks to the external Leaderboard API service. Build with Html, CSS, JS, API, and Webpack.

The leaderboard website displays scores submitted by different players. It also allows you to submit your score. All data is preserved thanks to the external Leaderboard API service. Build with Html, CSS, JS, API, and Webpack.

Kyrillos Hany 9 Mar 11, 2022
Zero Two Bot,A fully Modular Whatsapp Bot to do everything possible in WhatsApp by Team Zero Two

?? ???????? ?????? ???? ?? A Moduler WhatsApp Bot designed for both PM and Groups - To take your boring WhatsApp usage into a whole different level. T

Sam Pandey 69 Dec 25, 2022
This project provides a React-powered web experience using the PokeAPI. It also is a creative space to hone frontend skills.

pokedex-nova This project provides a React-powered web experience using the PokeAPI. It also is a creative space to hone frontend skills. Available Sc

Anthony Williams 2 Feb 1, 2022
🦢 A public CS:GO Clicker cheat! (Not meant to be used in a bad way)

WetBird Strongly inspired by: https://greasyfork.org/en/scripts/446977-mopsek-csgo-mtsl-2-mod-menu/ Information Wetbird is a cheat for Case Clicker 2.

Lapide 1 Nov 13, 2022
This repo is accompanying a tutorial that is meant to be a simple introduction to vector search JavaScript engineers who use MongoDB Atlas.

hello-vector-search A simple JavaScript program to run from your computer to vectorize the sample_mflix.movies collection: vectorize_collection.js. A

Marcus 7 Oct 23, 2022
This simple project aims to connect to an API to fetch score data and display it on a LeaderBoard box, as well as provide the tool to submit a new score.

Leader Board: Hit the API! This simple project aims to connect to an API to fetch score data and display it on a LeaderBoard box, as well as provide t

Andrés Felipe Arroyave Naranjo 12 Apr 6, 2022
This website displays scores submitted by different players. It also allows you to submit your score. All data is preserved thanks to the external Leaderboard API service. Built with Webpack and ES6

Leaderboard This website displays scores submitted by different players. It also allows you to submit your score. All data is preserved thanks to the

Sanja Mandic 9 Sep 30, 2022
The Raspberry Pi + OpenScan Pi Shield can be used to control two independent stepper motors and a variety of different cameras

OpenScan2 Overview: The Raspberry Pi + OpenScan Pi Shield can be used to control two independent stepper motors and a variety of different cameras (Pi

Thomas 149 Jan 3, 2023
Script to fetch all NFT owners using moralis API. This script output is a data.txt file containing all owner addresses of a given NFT and their balances.

?? Moralis NFT Snapshot Moralis NFT API will only return 500 itens at a time when its is called. For that reason, a simple logic is needed to fetch al

Phill Menezes 6 Jun 23, 2022
A script for Obsidian's QuickAdd plugin, to fetch books data using Google Books API.

Books script for Obsidian's Quickadd plugin Demo If this script helped you and you wish to contribute :) Description This script allows you to easily

Elaws 10 Dec 31, 2022
This project is about building a simple HTML list of To Do tasks. Built using webpack and served by a webpack dev server.

To Do List app This project is about building a simple HTML list of To Do tasks and is built using webpack and served by a webpack dev server. Built W

Dino Ronald Quispe Arias 6 Nov 4, 2022
In this project, we built a simple HTML list of To Do tasks. This simple web page was created using webpack and served by a webpack dev server.

To do list In this project, we built a simple HTML list of To Do tasks. This simple web page was created using webpack and served by a webpack dev ser

Jesús Vázquez 8 Dec 21, 2022