9cec9836b4b6510d9ca9db0f2fa5a23d8a9e17b4
Pokemon forms with dex IDs >= 10000 (e.g., Alolan Rattata = 10091) were being collected in encounter data but missing from pokemon.json, causing them to be silently dropped during DB seeding. Now fetch_all_pokemon() also fetches form entries that appear in encounter data, with clean display names like "Rattata (Alola)" and correct form-specific types. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
nuzlocke-tracker
A full-stack Nuzlocke run tracker for Pokemon games.
Getting Started
Prerequisites
- Docker & Docker Compose
Start the Stack
docker compose up
This starts three services:
| Service | URL |
|---|---|
| Frontend | http://localhost:5173 |
| API | http://localhost:8000 |
| API Docs | http://localhost:8000/docs |
| PostgreSQL | localhost:5432 |
Run Migrations
docker compose exec api alembic -c /app/alembic.ini upgrade head
Seed the Database
docker compose exec api python -m app.seeds
To seed and verify the data was loaded correctly:
docker compose exec api python -m app.seeds --verify
This loads game data, Pokemon, routes, and encounter tables for FireRed, LeafGreen, Emerald, HeartGold, and SoulSilver.
Description
Languages
TypeScript
61.7%
Python
31.9%
Go
5.6%
Shell
0.5%
Dockerfile
0.1%