{"id":24838212,"url":"https://github.com/remojs/gottafetchthemall-landing","last_synced_at":"2026-04-07T09:32:03.663Z","repository":{"id":186869498,"uuid":"675903445","full_name":"Remojs/GottaFetchThemAll-Landing","owner":"Remojs","description":"Pagina oficial de mi API de pokemon.","archived":false,"fork":false,"pushed_at":"2026-03-18T01:42:12.000Z","size":301,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-18T17:52:29.314Z","etag":null,"topics":["css","pokemon","react","vite"],"latest_commit_sha":null,"homepage":"https://gftapage.vercel.app","language":"JavaScript","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/Remojs.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":"2023-08-08T02:12:33.000Z","updated_at":"2026-03-18T01:42:15.000Z","dependencies_parsed_at":"2025-06-10T00:36:08.562Z","dependency_job_id":"ee03e226-9571-4bc5-8536-0a4c50f29f10","html_url":"https://github.com/Remojs/GottaFetchThemAll-Landing","commit_stats":null,"previous_names":["remojs/gottafetchthemall-landing"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Remojs/GottaFetchThemAll-Landing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Remojs%2FGottaFetchThemAll-Landing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Remojs%2FGottaFetchThemAll-Landing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Remojs%2FGottaFetchThemAll-Landing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Remojs%2FGottaFetchThemAll-Landing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Remojs","download_url":"https://codeload.github.com/Remojs/GottaFetchThemAll-Landing/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Remojs%2FGottaFetchThemAll-Landing/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31508013,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["css","pokemon","react","vite"],"created_at":"2025-01-31T06:09:48.223Z","updated_at":"2026-04-07T09:32:03.658Z","avatar_url":"https://github.com/Remojs.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gotta Fetch Them All - Landing Page\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"public/GCTA.png\" alt=\"Gotta Fetch Them All Logo\" width=\"120\" height=\"120\"\u003e\n  \n  **Una landing page moderna y para la API de Pokémon más completa**\n  \n  [![React](https://img.shields.io/badge/React-18.2.0-61DAFB?style=for-the-badge\u0026logo=react\u0026logoColor=white)](https://reactjs.org/)\n  [![Vite](https://img.shields.io/badge/Vite-6.3.5-646CFF?style=for-the-badge\u0026logo=vite\u0026logoColor=white)](https://vitejs.dev/)\n  [![CSS3](https://img.shields.io/badge/CSS3-Modern-1572B6?style=for-the-badge\u0026logo=css3\u0026logoColor=white)](https://developer.mozilla.org/en-US/docs/Web/CSS)\n  [![Axios](https://img.shields.io/badge/Axios-1.4.0-5A29E4?style=for-the-badge\u0026logo=axios\u0026logoColor=white)](https://axios-http.com/)\n\n  [Demo en Vivo](https://gottafetchthemall-landing.vercel.app) • [API Documentation](https://api.gottefetchthemallapi.site/) • [API Repository](https://github.com/Remojs/GottaFetchThemAll-API)\n\u003c/div\u003e\n\n## Objetivo del Proyecto\n\n**Gotta Fetch Them All** es una landing page interactiva diseñada para mostrar las capacidades de la API RESTful de Pokémon más completa disponible. El proyecto combina un diseño moderno con estética cyberpunk, proporcionando una experiencia visual impactante mientras demuestra la funcionalidad de la API.\n\n### Características Principales\n\n- **Diseño Cyberpunk**: Gradientes vibrantes rojos con efectos de grid difuminado\n- **Totalmente Responsivo**: Adaptado para todos los dispositivos\n- **Carga Rápida**: Construido con Vite para máximo rendimiento\n- **Datos en Tiempo Real**: Integración directa con la API de Pokémon\n- **Efectos Visuales**: Animaciones fluidas y transiciones suaves\n- **SEO Optimizado**: Estructura semántica y metadatos apropiados\n\n## Tecnologías Utilizadas\n\n### Frontend Core\n- **React 18.2.0** - Biblioteca principal para la UI\n- **Vite 6.3.5** - Herramienta de build ultrarrápida\n- **CSS3 Moderno** - Animaciones, gradientes y efectos visuales\n- **JavaScript ES6+** - Funcionalidades modernas del lenguaje\n\n### Herramientas y Librerías\n- **Axios 1.4.0** - Cliente HTTP para consumir la API\n- **ESLint** - Linting y calidad de código\n- **Google Fonts (Quicksand)** - Tipografía moderna y legible\n\n### Diseño y UX\n- **Glassmorphism** - Efectos de cristal y transparencias\n- **Grid Cyberpunk** - Patrones de fondo futuristas\n- **Responsive Design** - Mobile-first approach\n- **Smooth Animations** - Transiciones CSS suaves\n\n## Estructura del Proyecto\n\n```\ngfta-landing/\n├── public/\n│   ├── GCTA.png                 # Logo principal\n│   ├── github-svgrepo-com.svg   # Icono GitHub\n│   ├── linkedin-svgrepo-com.svg # Icono LinkedIn\n│   ├── twitter-svgrepo-com.svg  # Icono Twitter\n│   └── vite.svg                 # Icono Vite\n├── src/\n│   ├── components/\n│   │   ├── ApiDocs.jsx          # Documentación de la API\n│   │   ├── ApiDocs.css          # Estilos para documentación\n│   │   ├── MainLayout.jsx       # Layout principal\n│   │   ├── MainLayout.css       # Estilos del layout\n│   │   ├── Navbar.jsx           # Barra de navegación\n│   │   ├── Navbar.css           # Estilos del navbar\n│   │   ├── PokemonGrid.jsx      # Grid de Pokémon\n│   │   └── PokemonGrid.css      # Estilos del grid\n│   ├── App.jsx                  # Componente principal\n│   ├── App.css                  # Estilos de la app\n│   ├── index.css                # Estilos globales\n│   └── main.jsx                 # Punto de entrada\n├── index.html                   # HTML principal\n├── package.json                 # Dependencias y scripts\n├── vite.config.js              # Configuración de Vite\n└── README.md                   # Este archivo\n```\n\n\n## API Documentation\n\nBase URL: `https://api.gottefetchthemallapi.site`\n\n### Data Model — Pokemon\n\nEach document in the collection has the following structure:\n\n```json\n{\n  \"_id\": \"6394ccde0444413377f32891\",\n  \"ID\": 25,\n  \"name\": \"pikachu\",\n  \"image\": \"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/25.png\",\n  \"first_type\": \"electric\",\n  \"second_type\": null,\n  \"ability\": \"static\",\n  \"height\": \"0.4m\",\n  \"weight\": \"6kg\",\n  \"stats\": {\n    \"hp\": 35,\n    \"attack\": 55,\n    \"defense\": 40,\n    \"special_attack\": 50,\n    \"special_defense\": 50,\n    \"speed\": 90\n  }\n}\n```\n\n### Valid Values\n\n**Types** (`first_type` / `second_type`)\n\n```\nnormal  fire  water  grass  flying  fighting  poison  electric\nground  rock  psychic  ice  bug  ghost  steel  dragon  dark  fairy\n```\n\n**Stats** — `hp` · `attack` · `defense` · `special_attack` · `special_defense` · `speed`\n\n**Generations** — 1 (1–151) · 2 (152–251) · 3 (252–386) · 4 (387–494) · 5 (495–649) · 6 (650–721) · 7 (722–809) · 8 (810–905) · 9 (906–1010)\n\n### Endpoints\n\n| Method | Route | Description |\n|--------|-------|-------------|\n| GET | `/pokedex` | All Pokémon — paginated, filterable by `first_type`, `second_type`, `ability` |\n| GET | `/pokedex/between?min=\u0026max=` | By Pokédex ID range |\n| GET | `/pokedex/random?count=` | Random Pokémon (max 10) |\n| GET | `/pokedex/types` | List of all unique types |\n| GET | `/pokedex/abilities` | List of all unique abilities |\n| GET | `/pokedex/gen/:gen` | By generation (1–9) |\n| GET | `/pokedex/name/:name` | By name — partial, case-insensitive |\n| GET | `/pokedex/number/:id` | By Pokédex number |\n| GET | `/pokedex/type/:type` | By type (first or second) |\n| GET | `/pokedex/dual-type/:first/:second` | By exact dual type |\n| GET | `/pokedex/ability/:ability` | By ability — partial, case-insensitive |\n| GET | `/pokedex/stat/min/:stat` | Sorted by stat ascending |\n| GET | `/pokedex/stat/max/:stat` | Sorted by stat descending |\n| GET | `/pokedex/stat/range/:stat?min=\u0026max=` | By stat value range |\n\n### Pagination — `GET /pokedex`\n\n| Param | Type | Required | Description |\n|-------|------|----------|-------------|\n| `page` | number | No | Page number (default: 1) |\n| `limit` | number | No | Results per page, max 200 (default: 100) |\n| `first_type` | string | No | Filter by primary type |\n| `second_type` | string | No | Filter by secondary type |\n| `ability` | string | No | Filter by exact ability |\n\nResponse:\n\n```json\n{ \"data\": [...], \"total\": 1010, \"page\": 1, \"limit\": 100, \"pages\": 11 }\n```\n\n### Changelog\n\n**v2.0.0 — 2026-03-05**\n\nNew endpoints: `GET /pokedex/types`, `GET /pokedex/abilities`, `GET /pokedex/random`, `GET /pokedex/dual-type/:first/:second`, `GET /pokedex/stat/range/:stat`\n\nBug fixes: middleware registration order; silent ReferenceError in gen/type controllers; `/type/:type` ignored `second_type`; `between` min/max passed as strings to MongoDB numeric query; invalid stat failed silently; accidental global variables; removed deprecated Mongoose options.\n\nPerformance: pagination on `GET /pokedex`; `.lean()` on all queries; MongoDB indexes on `ID`, `name`, `first_type`, `second_type`, `ability`.\n\nUsability: partial case-insensitive search on `/name/:name` and `/ability/:ability`; descriptive parameter validation errors.\n\n**v1.0.0 — 2024**\n\nInitial release with 9 basic Pokédex endpoints.\n\n---\n\n**Gotta Fetch Them All!**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremojs%2Fgottafetchthemall-landing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fremojs%2Fgottafetchthemall-landing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremojs%2Fgottafetchthemall-landing/lists"}