{"id":48552273,"url":"https://github.com/dubisdev/poke-api-pt","last_synced_at":"2026-04-08T09:01:49.769Z","repository":{"id":344027923,"uuid":"1180154706","full_name":"dubisdev/poke-api-pt","owner":"dubisdev","description":"🎮 Pokédex App - Prueba Técnica","archived":false,"fork":false,"pushed_at":"2026-03-12T19:01:52.000Z","size":170,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-13T01:11:39.824Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://poke-api-pt.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dubisdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-12T18:55:10.000Z","updated_at":"2026-03-12T19:05:17.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dubisdev/poke-api-pt","commit_stats":null,"previous_names":["dubisdev/poke-api-pt"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/dubisdev/poke-api-pt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dubisdev%2Fpoke-api-pt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dubisdev%2Fpoke-api-pt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dubisdev%2Fpoke-api-pt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dubisdev%2Fpoke-api-pt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dubisdev","download_url":"https://codeload.github.com/dubisdev/poke-api-pt/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dubisdev%2Fpoke-api-pt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31547845,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"online","status_checked_at":"2026-04-08T02:00:06.127Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-08T09:01:48.979Z","updated_at":"2026-04-08T09:01:49.764Z","avatar_url":"https://github.com/dubisdev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎮 Pokédex App\n\nA modern, interactive Pokédex application built with Next.js 16, featuring comprehensive Pokemon information, advanced filtering, and real-time search capabilities.\n\n![Next.js](https://img.shields.io/badge/Next.js-16.1.6-black)\n![React](https://img.shields.io/badge/React-19.2.4-blue)\n![TypeScript](https://img.shields.io/badge/TypeScript-5.9.3-blue)\n![Tailwind CSS](https://img.shields.io/badge/Tailwind-4.2.1-38bdf8)\n\n## ✨ Features\n\n- **📋 Complete Pokemon List**: Browse all Pokemon with their names, generations, types, and more\n- **🔍 Real-time Search**: Instant search that finds Pokemon and their evolutions as you type\n- **🎯 Advanced Filtering**: Filter by type and generation to find exactly what you're looking for\n- **📊 Detailed Pokemon Pages**: View comprehensive stats, evolution chains, images, and information for each Pokemon\n- **🔗 Interactive Evolution Chains**: Navigate seamlessly between Pokemon evolutions\n- **💾 Persistent State**: Filters and search state are preserved when navigating back from detail pages\n- **⚡ Performance Optimized**: Built with Next.js 16 App Router and React Server Components\n- **✅ Fully Tested**: Comprehensive unit and E2E test coverage\n\n## 🛠️ Tech Stack\n\n- **Framework**: [Next.js 16](https://nextjs.org/) with App Router\n- **UI Library**: [React 19](https://react.dev/)\n- **Language**: [TypeScript](https://www.typescriptlang.org/)\n- **Styling**: [Tailwind CSS 4](https://tailwindcss.com/)\n- **Validation**: [Valibot](https://valibot.dev/)\n- **Testing**:\n  - Unit/Integration: [Vitest](https://vitest.dev/) + [React Testing Library](https://testing-library.com/react)\n  - E2E: [Playwright](https://playwright.dev/)\n- **Package Manager**: [pnpm](https://pnpm.io/)\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- Node.js 24+ installed\n- pnpm installed (`npm install -g pnpm`)\n\n### Installation\n\n1. Clone the repository:\n\n```bash\ngit clone \u003crepository-url\u003e\ncd poke-api-pt\n```\n\n1. Install dependencies:\n\n```bash\npnpm install\n```\n\n1. Run the development server:\n\n```bash\npnpm dev\n```\n\n1. Open [http://localhost:3000](http://localhost:3000) in your browser\n\n## 📝 Available Scripts\n\n- `pnpm dev` - Start development server\n- `pnpm build` - Build for production\n- `pnpm start` - Start production server\n- `pnpm lint` - Run ESLint\n- `pnpm test` - Run unit tests\n- `pnpm test:watch` - Run tests in watch mode\n- `pnpm exec playwright test` - Run E2E tests\n\n## 🧪 Testing\n\nThe project includes comprehensive test coverage:\n\n### Unit Tests\n\n```bash\npnpm test\n```\n\nTests cover:\n\n- Filter logic and parsing\n- Text formatting utilities\n- Component rendering and interactions\n\n### E2E Tests\n\n```bash\npnpm exec playwright test\n```\n\nE2E tests validate:\n\n- Pokemon list loading and display\n- Search functionality with evolution matching\n- Filter interactions (type and generation)\n- Navigation to detail pages\n- Evolution chain navigation\n- State persistence\n\n## 📁 Project Structure\n\n```\npoke-api-pt/\n├── app/                          # Next.js App Router\n│   ├── (home)/                   # Home route group\n│   │   ├── page.tsx             # Main Pokemon list page\n│   │   ├── components/          # Home page components\n│   │   ├── hooks/               # Custom hooks for filtering\n│   │   └── utils/               # Filter and parsing utilities\n│   ├── pokemon/[id]/            # Dynamic Pokemon detail pages\n│   │   ├── page.tsx             # Detail page\n│   │   └── components/          # Detail page components\n│   └── components/              # Shared components\n├── lib/                         # Core utilities and API\n│   ├── pokemon-api.ts          # Pokemon API client\n│   ├── schemas.ts              # Valibot schemas\n│   ├── types.ts                # TypeScript types\n│   └── consts.ts               # Constants\n├── e2e/                        # Playwright E2E tests\n└── __tests__/                  # Unit tests (colocated)\n```\n\n## 🎯 Key Features Implementation\n\n### Search with Evolution Matching\n\nWhen searching for a Pokemon, the app intelligently finds not only the Pokemon itself but also its entire evolution chain. For example, searching for \"Pikachu\" will also show Pichu and Raichu.\n\n### Smart Filtering\n\n- **Type Filter**: Filter Pokemon by their primary or secondary types\n- **Generation Filter**: Browse Pokemon from specific generations\n- **Combined Filters**: All filters work together seamlessly\n\n### State Persistence\n\nNavigation state, including search terms and filter selections, is maintained when you navigate to a Pokemon detail page and return to the list.\n\n### Server Components\n\nThe app leverages React Server Components for optimal performance, fetching Pokemon data on the server and minimizing client-side JavaScript.\n\n## 🌐 API\n\nThis project uses the [PokéAPI](https://pokeapi.co/) to fetch Pokemon data including:\n\n- Basic Pokemon information\n- Evolution chains\n- Stats and abilities\n- Sprites and images\n\n## 📄 License\n\nThis is a technical assessment project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdubisdev%2Fpoke-api-pt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdubisdev%2Fpoke-api-pt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdubisdev%2Fpoke-api-pt/lists"}