👀 View Production Build at https://pokedex-doctorderek.vercel.app/
I built a Pokédex that queries a GraphQL endpoint at https://graphql-pokemon2.vercel.app/
Additionally, I added 3 other major features, including best practices and XState for mock login (admin/admin).
Below you will find the complete feature set, a discussion section, and my technical journal.
- ✅ Ability to create forms
- ✅ Ability to implement the various form states (field validation, error, success etc)
- ✅ Ability to implement style to spec
- ✅ Responsiveness
- ✅ Ability to use Graphql correctly
- ✅ Ability to integrate a real API
- ✅ Ability to implement a pagination API
- ✅ Clean-code and separation of component concerns
- ✅ Ability to design new UIs
- ✅ Deployed production build of Next.js to Vercel with CI/CD
- ✅ Used Next.js version 12.1.6 with React 18.1.0 and Tailwind CSS 3.0.24
- ✅ Established engineering best practices:
- Prettier, ESLint, Husky (Git Hooks),
tsconfig.json
, TypeScript Import Sorter, XState
- Prettier, ESLint, Husky (Git Hooks),
- 🌠 Crafted unit tests for new code features (TDD / Test Driven Development)
- Jest + React Testing Library with React Test Renderer
- 🌠 Wrote unit testing (100% test coverage)
- 🌠 Developed mobile-first, responsive UX design with Tailwind CSS
- 🌠 Implemented Tailwind CSS dark mode for app with animated SVG toggle
- The feature set is complete, but the app could use additional features and testing.
- I wrote the login feature to save the authenticated user to localStorage via XState.
- There are optimizations possible for the pagination and data-fetching algorithms.
- Overall the app's performance is good because of Next.js SSR + use of next/image.
Launches the test runner and generates code coverage report.
Launches the test runner in the interactive watch mode.
0.1.0
Bootstrapped with create-next-app (TypeScript)0.2.0
Added all best practices & basic dependencies0.3.0
Implemented data fetching, login, and Pokédex0.4.0
Redirected / to /1 with SSR via getStaticProps0.5.0
Highlight active Pokémon & current page number0.6.0
Improve display of sidebar for edge case #1510.7.0
Correct behavior of Prev and Next page buttons0.8.0
Disable broken tests and write basic util test