Skip to content

dario-fiore/pokedex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Header  - Github

Pokedex
This project is a sample demonstration of usage of front-end technologies that allow to browse and search using a predefined set of pokemons. With this project I'll show to you, how I solve this projet from UI/UX design to final Deploy.

⚡️ Tech Stack

Name Description
React A declarative, efficient, and flexible JavaScript library for building user interfaces
Typescript TypeScript is a superset of JavaScript that compiles to clean JavaScript output
Apollo Server GraphQL server for Express, Connect, Hapi, Koa and more
Apollo Client A fully-featured, production ready caching GraphQL client for every UI framework and GraphQL server
Ant Design A UI Design Language and React UI library
UmiJS Pluggable enterprise-level react application framework
Lodash A modern JavaScript utility library delivering modularity, performance, & extras

🎨 UI/UX

After defining my tech stack, I started with UI/UX. I spent 1 men/day finding my use cases using sites like Dribble, Behance, etc. After that, I spent the remaining days in order to prototype my final UX using Adobe XD. Prototype is available here.

For this project I skip wireframing step due to limited time.

🔨 Development

After prototype a stable version, I started development phase.

Server implementation was already developed and I made small changes in order to support other filter criteria. Changes affects graphql schema and model implementation.

Client implementation was built from scratch. First of all I setted up project using UmiJS (create-umi-app). The result was a production-ready project that allow me to start (in 30 minutes) my development without worrying about boring project configuration (webpack loaders, dev scripts, etc). During development I include some automated unit-tests for each components (or page) in order to improve reliability of code. Due to limited time I skip some improvements / implementations (you can see these in improvements section)

📦 Deploy

In order to view a live demo I made deploy on a virtual machine powered by AWS EC2 (Ubuntu). I manage process of NodeJS server using pm2 then I use ngnix in order to forward request to right service.

If you want to start locally pokedex you can run script yarn install then yarn run server and yarn run client.

📌 Improvements

  • Boost project collaboration introducing CI/CD workflow
  • Use cached data, configuring cache with ApolloClient
  • Introduce an error boundary
  • Make application layout responsive
  • Managing loading state
  • Generate project doc (using typedoc)