Back to projects

NextGen Pokédex (Pokédexgen)

NextGen Pokédex combines a Pokémon exploration dashboard with an end-to-end data pipeline, turning PokéAPI data into searchable stats, evolution chains, and team-building insights.

Why I Built It

I wanted to connect my data engineering work with something I grew up enjoying: Pokémon. The project gave me a way to practice ingestion, data modeling, orchestration, and frontend development around a dataset I wanted to explore.

Features

  • Search Pokémon and explore detailed stats, radar charts, and evolution chains
  • Build teams and analyze their type coverage
  • Compare type matchups to understand strengths and weaknesses
  • Explore Pokémon origins, generations, and legendary status
  • Play a silhouette-based Pokémon guessing game

Pokémon Search

Browse Pokémon and explore their stats and evolution details.

Pokédexgen search interface showing Pokémon and filters

Team Analysis

Review a team's type coverage to understand its strengths and weaknesses.

Pokédexgen team analysis and type coverage

Data Pipeline

  1. Ingest Pokémon data from PokéAPI with Python and dlt into DuckDB.
  2. Transform raw data with dbt-duckdb through staging, intermediate, and mart layers.
  3. Coordinate ingestion, transformations, and exports with Dagster.
  4. Export curated marts to static JSON files consumed by the Next.js dashboard.

This separates data preparation from the frontend, letting the dashboard use curated datasets without a live database connection.

Pipeline Architecture

Pokédexgen data pipeline architecture

Dagster Orchestration

Dagster orchestration for the Pokémon data pipeline

Technology Stack

  • Ingestion: Python, dlt, PokéAPI
  • Storage and transformations: DuckDB, dbt-duckdb
  • Orchestration: Dagster
  • Frontend: Next.js, React, TypeScript, Tailwind CSS
  • Data delivery: Static JSON exports

Links