Skip to content

nebulous-code/card_market_intelligence_dashboard

Repository files navigation

Pokémon Card Market Intelligence Dashboard

A full-stack web application that aggregates Pokémon card data and presents it through an interactive dashboard with charts, sortable tables, and drill-down views.

This is a portfolio project built to demonstrate full-stack development, API design, data pipeline construction, and analytical reporting skills.


Demo

Check Out The Demo


What It Does

  • Pulls card and set metadata from TCGdex — a free, open-source Pokémon TCG API
  • Stores card data in PostgreSQL hosted on Neon
  • Serves the data through a custom-built REST API (FastAPI)
  • Presents everything in a Vue.js dashboard with a set selector, price chart, and sortable card table

Stack

Layer Technology
API Python 3.12, FastAPI, Uvicorn
ORM / Migrations SQLAlchemy, Alembic
Database PostgreSQL via Neon
Frontend Vue 3, Vite, Vuetify 3, Chart.js
Package Management uv
Containers Docker / Podman

Project Status

Milestone Description Status
1 Minimum viable demo — full vertical slice Complete
2 Real market pricing via eBay, price history Not started
3 Multi-set support, analytical reporting Not started
4 Excel export, Power BI integration Not started
5 Auth, automation, production hardening Not started

Running Locally

Prerequisites

  • Python 3.12+
  • Node.js 20+
  • uvscoop install uv or pip install uv
  • A Neon account (free tier is sufficient)

1. Configure environment

cp .env.example .env

Fill in DATABASE_URL with your Neon connection string. It must include ?sslmode=require.

2. Run the API

cd api
uv sync
./run.ps1      # Windows
./run.sh       # macOS / Linux

The API runs on http://localhost:8000. Alembic migrations run automatically on startup — no manual schema setup required.

3. Run the ingestion script

Run this once to populate the database. Safe to re-run — sets and cards are upserted.

cd ingestion
uv sync
./run_ingest.ps1 -SetId base1   # Windows
./run_ingest.sh base1           # macOS / Linux

4. Run the frontend

cd frontend
npm install
./run.ps1      # Windows
./run.sh       # macOS / Linux

The dashboard runs at http://127.0.0.1:5173.


API Reference

Interactive API documentation is available while the API is running:

URL
Swagger UI http://localhost:8000/docs
ReDoc http://localhost:8000/redoc
Method Endpoint Description
GET /sets List all sets
GET /sets/{set_id} Get a single set
GET /sets/{set_id}/cards Get all cards for a set
GET /cards/{card_id} Get a single card with latest prices

Documentation

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors