- Regenerate seed JSON for all 37 games with more complete PokeDB data
- Add category field to games.json (original/enhanced/remake/sequel/spinoff)
- Include all 1350 pokemon in pokemon.json with types and local sprites
- Build reverse index for PokeDB form lookups (types/sprites for evolutions)
- Move sprites to frontend/public/sprites, reference as /sprites/{id}.webp
- Truncate Sw/Sh den names to fit DB VARCHAR(100) limit
- Deduplicate route names and merge unnamed child areas into parent routes
- Populate 7 previously empty games (Sw/Sh, BDSP, PLA, Sc/Vi)
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
The seeder reads from pre-generated JSON files in backend/src/app/seeds/data/ (committed to the repo) and loads them into PostgreSQL. No external API access is needed — everything runs from local files inside the container.
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.
Regenerating Seed Data
The seed JSON files don't normally need regenerating. If you need to update them (e.g., to pull in new PokeAPI data), run the Go fetch tool against a local PokeAPI instance:
-
Start a local PokeAPI (e.g., using pokeapi/pokeapi):
# In a separate directory git clone https://github.com/PokeAPI/pokeapi.git && cd pokeapi docker compose upThis serves the API at
http://localhost:8000/api/v2by default. -
Run the fetch tool (requires Go 1.22+):
cd tools/fetch-pokeapi && go run .Set
POKEAPI_URLif your instance is at a different address:POKEAPI_URL=http://localhost:9000/api/v2 go run .Use
--clear-cacheto discard cached API responses and re-fetch everything. -
Review and commit the updated JSON files in
backend/src/app/seeds/data/.