An open API service indexing awesome lists of open source software.

https://github.com/emfurgalski-beep/carddex

๐Ÿšง WIP โ€” Pokedex-style REST API and web explorer for Pokemon TCG cards, sets, prices, and meta data
https://github.com/emfurgalski-beep/carddex

anthropic api astro hono pokeapi pokedex pokemon pokemon-api pokemon-tcg rest-api supabase tcg vercel

Last synced: 3 months ago
JSON representation

๐Ÿšง WIP โ€” Pokedex-style REST API and web explorer for Pokemon TCG cards, sets, prices, and meta data

Awesome Lists containing this project

README

          

# CardDex

**Pokedex-style REST API and web explorer for Pokemon TCG cards, sets, prices, and meta data.**

[![Status](https://img.shields.io/badge/status-work%20in%20progress-orange)]()
[![License](https://img.shields.io/badge/license-MIT-blue)]()
[![Deploy](https://img.shields.io/badge/deployed%20on-Vercel-black)](https://www.carddex.dev)

[Live Demo](https://www.carddex.dev) ยท [API Docs](https://www.carddex.dev/docs) ยท [OpenAPI Spec](https://www.carddex.dev/openapi.json)

---

> **Note:** This project is under active development. Some features (prices, meta, collection tracking) are not yet complete.

## Overview

CardDex is a Pokemon TCG database and API that serves **20,600+ cards** across **186 sets**, wrapped in a Pokedex-themed frontend with a Gameboy LCD aesthetic.

### Features

- REST API with full-text search, pagination, and image proxying
- Pokedex-themed homepage with LCD green panels, boot sequence, and Gameboy sound effects
- Clean, data-focused card/set/price/meta pages with subtle Pokedex accent styling
- Card detail with HP/ATK stat bars, tabbed info, and PREV/NEXT keyboard navigation
- Server-side rendered with Astro for fast page loads
- Data sourced from [TCGdex](https://tcgdex.dev) (Pocket series excluded)

### Roadmap

- [x] Homepage (Pokedex shell with Prof. Oak's Lab)
- [x] Card detail page (stat bars, tabs, prev/next nav)
- [x] Sets, Prices, Meta pages with Pokedex accents
- [ ] Card variants and price data integration
- [ ] Search improvements (filters by type, rarity, set, price)
- [ ] Collection tracking and deck builder
- [ ] Price history charts

## API Reference

All endpoints are under `/v1`. Read-only access requires no authentication.

Cards

```
GET /v1/cards?q=charizard&page=1&pageSize=20
GET /v1/cards/random
GET /v1/cards/:id
GET /v1/cards/:id/prices
GET /v1/cards/:id/rulings
GET /v1/cards/:id/synergies
```

Sets

```
GET /v1/sets
GET /v1/sets/:id
GET /v1/sets/:id/cards?page=1&pageSize=20
```

Prices

```
GET /v1/prices/top?limit=10
GET /v1/prices/trends?limit=10
```

Meta

```
GET /v1/meta/formats
GET /v1/meta/:format/top?limit=10
```

Images

```
GET /v1/images/cards/:cardId/:file
GET /v1/images/sets/:setId/:file
```

Auth & Community

API key registration, usage tracking, and community card data submissions. See [`/docs`](https://www.carddex.dev/docs) for details.

```
POST /v1/auth/register
POST /v1/auth/regenerate
GET /v1/auth/usage
POST /v1/community/submit
GET /v1/community/submissions
```

## Tech Stack

| Layer | Tech |
|-------|------|
| API | [Hono](https://hono.dev) |
| Frontend | [Astro](https://astro.build) (SSR) |
| Database | [Supabase](https://supabase.com) (PostgreSQL) |
| Validation | [Zod](https://zod.dev) |
| Deploy | [Vercel](https://vercel.com) |
| Data | [TCGdex](https://tcgdex.dev) |

## Getting Started

### Prerequisites

- Node.js 18+
- A [Supabase](https://supabase.com) project with the schema applied

### Setup

```bash
git clone https://github.com/emfurgalski-beep/CardDex.git
cd CardDex
npm install
cp .env.example .env
```

Add your Supabase credentials to `.env`:

```
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_KEY=your-service-key
```

### Seed & Run

```bash
# Seed the database
npm run seed:tcgdex

# Start the API (from root)
npm run dev

# Start the frontend (from web/)
cd web && npm run dev
```

## License

MIT