Julian Tabel 5240236759
Some checks failed
CI / backend-lint (pull_request) Successful in 9s
CI / actions-lint (pull_request) Failing after 6s
CI / frontend-lint (pull_request) Successful in 21s
Add per-condition encounter rates to seed data
Add a `condition` column to RouteEncounter so encounters can store
per-condition rates (time of day, season, weather) instead of flattening
to max(). Update the seed loader, API schemas, and frontend to support
the new `conditions` dict format in seed JSON.

Port the PoC branch's condition-aware EncounterModal UI with filter
tabs that let players see encounter rates for specific conditions.
Add horde/SOS as distinct encounter methods with their own badges.

Update the import tool to extract per-condition rates instead of
flattening, and add a merge script (tools/merge-conditions.py) that
enriches existing curated seed files with condition data from PokeDB.

Seed data updated for 22 games (5,684 encounters):
- Gen 2: Gold, Silver, Crystal (morning/day/night)
- Gen 4: HG, SS, Diamond, Pearl, Platinum, BD, SP (morning/day/night)
- Gen 5: Black, White, Black 2, White 2 (spring/summer/autumn/winter)
- Gen 7: Sun, Moon, Ultra Sun, Ultra Moon (day/night)
- Gen 8: Sword, Shield (weather)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 18:52:35 +01:00
2026-02-17 18:23:31 +01:00

nuzlocke-tracker

A full-stack Nuzlocke run tracker for Pokemon games.

Getting Started for now

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 game data), run the import tool from the repo root:

python -m import_pokedb

It auto-downloads PokeDB data on the first run. Options:

# Generate data for a specific game only
python -m import_pokedb --game firered

# Use a custom PokeDB data directory
python -m import_pokedb --pokedb-dir ~/my-pokedb-data/

# Write output to a different directory
python -m import_pokedb --output /tmp/seed-output/

Review and commit the updated JSON files in backend/src/app/seeds/data/.

Description
No description provided
Readme 89 MiB
Languages
TypeScript 51.5%
Python 47.3%
Shell 0.5%
CSS 0.4%
HTML 0.1%