Giter VIP home page Giter VIP logo

pokespect's Introduction

pokespect

Pokespect is a lightweight, modern Pokedex - harnessing the PokeAPI project to provide a fast and responsive Pokedex.

A demo can be found on my website, here.

Built from scratch with React, TypeScript, Material-UI and more.

๐Ÿ’ป Getting Started

Prerequisites

To run pokespect, you will need Node.JS installed.

Install the dependencies

npm install

Start the application

npm run start

The application will open on port 3000 by default.

๐Ÿ“˜ Libraries / Modules

Material UI

For the styling aspect of this application, I used Material UI to allow for quick prototyping of functionality, to be able to focus my time mainly on the functionality of the page.

Axios

To simplify the HTTP requests from the pokeapi server, Axios was an ideal choice to process fast and readable HTTP requests in my program.

โŒš Challenges

Generations

I spent a while confused at the PokeAPI documentation, trying to figure out where generations are held as a property on each pokemon. After looking at the large list of Pokemon, I realised that the Pokemon were ordered by generation - allowing me to setup a constant lookup table which I could reference.

Design

When I first began the project, I was unsure as to how to design the website - due to the time constraints, I began building the application immediately with little to no styling, beginning to construct small design ideas once the main structure was finished. I also referenced ideas from several other websites, including the official Pokedex.

Time Frame

Given the scope of the project which I had in mind, it was difficult to crunch the design, planning and development of the project within the initial three days - after the three days concluded, I had an acceptable project - however I plan to continue supporting and updated the web application, learning more about the technologies as I use them. During the initial three days I was required to take several shortcuts which I would not use in a professional setting, such as carelessly using in-line styling and using the <any> type with TypeScript.

โœจ Extra Features

Search Bar

Using MaterialUI components, I built a search bar which is able to search throughout the pokedex and provide auto-complete functionality to find the pokemon you are looking for. To do this, I decided to include an array in data.ts which would map out all the pokemon and the corresponding ID. I decided that it was worth the extra file size to include the information, as it was constantly referenced and would not be efficient to continiously fetch from the API, especially given the 20 limit on each call.

๐ŸŒ— Future Additions

As this is a project I have greatly enjoyed, I have decided to continue supporting and updating pokespect going forward from the project.

Testing

Now that the application has been developed to a point it can be used, testing is important to add and implement properly - to catch issues and any edge-cases which I would not discover myself. Given the time constraints during the project, I was unable to add tests - however they will be added soon as I continue to improve on this project.

Design Improvements

Given the time constraints for the project, I was required to cut a lot of corners on the overall design of the web app. A main issue I would fix is the "Search Pokedex" and "Generation" buttons on the main browser, as they do not fit in with the design of the application.

More Pokemon Information

When viewing a Pokemon in the Overview, the information card is extremely lacking and would be an ideal place to provide more information, especially when located next to the Attack Moves card which would benefit from being shortened.

Compare Reworked

The comparison component is extremely lacking and could be improved with a better design, as well as a more functional method of loading Pokemon into the table, as the current method is rather poor, needing to use a text input which is not part of the comparison table.

Browser Sorting

The main browser can be easily improved with the addition of a sorting method, such as Sort by Type, Sort by Favourites, Sort by Height, etc. The browser could also be improved by allowing the search input to filter the cards.

pokespect's People

Contributors

garytate avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.