Pair‑programming‑friendly (1 – 2 students)
Master
useEffect, Promises, & real‑world API data while giving your Pokédex a NYC‑flavored vibe.
- Spin up a fresh React app with Vite.
- Fetch & display Pokémon data from the PokeAPI using
useEffect. - Handle loading and error states with clean Promise logic (
async/awaitor.then/.catch). - Design & style your UI from scratch (JSX + CSS / CSS Modules – no copy‑pasta).
- Reflect on your process, struggles, and wins in
REFLECTION.md.
# 1 | Create your project
npm create vite@latest my-pokedex -- --template react
cd my-pokedex
npm install
# 2 | Fire it up
npm run devPush to GitHub now – commit early & often!
| ID | What to build | Hints |
|---|---|---|
| M0 | Project scaffolding on GitHub | Keep src/ tidy (components/, assets/, styles/). |
| M1 | Pokémon list view | Fetch https://pokeapi.co/api/v2/pokemon?limit=151 on mount. Show loading + nice error UI. |
| M2 | Detail view | Second fetch (/pokemon/:id) when a card is clicked. Modal, side‑panel, or route – you decide. |
| M3 | Custom styling | Responsive layout, semantic HTML, keyboard‑friendly nav, NYC flair 🍕🗽. |
| M4 | Reflection log | Answer the questions in Reflection Prompts below. |
- Live search / filter by name or type.
- Pagination / infinite scroll.
- Favorites saved to
localStorage. - React Router multi‑page flow.
- Global state with Context API or Redux.
my-pokedex/
├─ public/
│ └─ …
├─ src/
│ ├─ components/
│ ├─ hooks/ # optional
│ ├─ App.jsx
│ ├─ index.css
│ └─ index.jsx
├─ README.md # ← you’re here
├─ REFLECTION.md # ← your write‑up
└─ package.json
- Where did you struggle the most?
- Step‑by‑step, how did you debug / research the solution?
- Did you peek at the “last‑resort” sample repo? If yes, what exactly did you learn and re‑implement?
- One improvement you’d tackle with more time.
-
MDN: Fetch API & Handling fetch errors
-
Course slide decks:
- React Lifecycle & Hooks
- Intro to External API Requests
- Practical Promises
-
PokeAPI docs: https://pokeapi.co/docs/v2
(Use the sample pens only for inspiration; do not copy markup or styles.)
- GitHub repo with complete history.
- Deployed link (Netlify, Vercel, GH Pages…).
README.md(this file) updated with screenshots/GIFs.REFLECTION.md.
| Category | Pts | Criteria |
|---|---|---|
| Data fetch & error handling | 6 | Correct useEffect, robust error UI, no console warnings. |
| State & props flow | 4 | Clean architecture, no redundant state, clear prop usage. |
| UI/UX & accessibility | 4 | Responsive design, alt text, keyboard nav works. |
| Code quality | 4 | Lint‑free, meaningful commits, descriptive names, comments where helpful. |
| Reflection | 2 | Honest, specific, actionable insights. |
If stuck after pair‑discussion & debugging:
- Write down the blocker.
- Skim https://github.com/hhassan1230/pokemonappttp2025 just enough to spark understanding.
- Close it, implement on your own, document the takeaway in
REFLECTION.md.
Copy‑pasted code = zero credit – keep learning integrity high!
Happy hacking & catch ’em all! 🗽⚡️