Commit Graph

235 Commits

Author SHA1 Message Date
57023fc52a Add naming scheme support for genlockes with lineage-aware suggestions
Some checks failed
CI / backend-lint (pull_request) Failing after 8s
CI / frontend-lint (pull_request) Successful in 31s
Genlockes can now select a naming scheme at creation time, which is
automatically applied to every leg's run. When catching a pokemon whose
evolution family appeared in a previous leg, the system suggests the
original nickname with a roman numeral suffix (e.g., "Heracles II").

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 09:52:13 +01:00
c01c504519 Add new bean 2026-02-13 17:10:23 +01:00
Julian Tabel
b7d1c88d5e Change Dockerfile ordering
All checks were successful
CI / backend-lint (push) Successful in 8s
CI / frontend-lint (push) Successful in 29s
2026-02-13 15:53:22 +01:00
Julian Tabel
7a4d5d26b5 Update Seed data (Gen1-3)
All checks were successful
CI / backend-lint (push) Successful in 8s
CI / frontend-lint (push) Successful in 32s
2026-02-13 15:41:15 +01:00
Julian Tabel
b62e0db6a0 Reorder Crystal routes to match Gold ordering
Crystal shares the same route progression as Gold, so align its route
order values to match. Only order fields changed; encounters preserved.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 15:24:06 +01:00
Julian Tabel
1b6970a982 Group parent/child routes in admin route table
Visually indent child routes under their parent with tree connectors,
and make dragging a parent move all its children as a unit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 14:37:35 +01:00
Julian Tabel
867ded8fa2 Add pinwheel, encounters link, and boss position columns to admin tables
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 14:10:28 +01:00
Julian Tabel
29a5c84651 Fix footer floating mid-page on short content pages
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 13:59:18 +01:00
f676bee400 Merge pull request 'feature/filter-swsh-den-routes' (#18) from feature/filter-swsh-den-routes into develop
All checks were successful
CI / backend-lint (push) Successful in 7s
CI / frontend-lint (push) Successful in 32s
Reviewed-on: TheFurya/nuzlocke-tracker#18
2026-02-13 09:31:20 +01:00
Julian Tabel
b7be099aee Filter out Max Raid den routes from Sword/Shield game data
All checks were successful
CI / backend-lint (pull_request) Successful in 8s
CI / frontend-lint (pull_request) Successful in 29s
Den child routes (~561 per game) bloated the route list without being
useful for Nuzlocke tracking. Adds filter_den_routes() to strip children
matching "(Den " from the route hierarchy, reducing Sw/Sh from ~1,007
to 446 routes each.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 09:18:29 +01:00
Julian Tabel
659dcf2252 Remove artificial Starter route, use real PokeDB starter locations
Replace the synthetic "Starter" route with actual in-game locations
(e.g. Professor Oak's Laboratory, Iki Town, Littleroot Town). Starters
now appear at their real locations with method "starter" by remapping
PokeDB's "gift" method during import. Split ruby-sapphire and
black-2-white-2 out of special_encounters aliases since their starter
locations differ from the aliased version groups.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 09:08:35 +01:00
Julian Tabel
2655c0d64f Add bean for sticky footer bug
All checks were successful
CI / backend-lint (push) Successful in 7s
CI / frontend-lint (push) Successful in 31s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 08:48:20 +01:00
Julian Tabel
000658b4cd Remove stale duplicate routes and fix ordering in seed data
The DB accumulated stale routes from previous imports with different
naming (e.g. "Route 1" alongside "Alola Route 1"). These were exported
back to JSON, causing duplicate entries with conflicting order values.

Removed 597 stale routes across 17 game files and re-sorted all 22
game files to match the canonical progression in route_order.json.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 08:41:48 +01:00
24e4c41f88 Delete superfluous seed files
All checks were successful
CI / backend-lint (push) Successful in 8s
CI / frontend-lint (push) Successful in 30s
2026-02-11 22:13:05 +01:00
65220b46ed Merge pull request 'Add Boss list for all games and more boss types' (#17) from feature/add-boss-data into develop
All checks were successful
CI / backend-lint (push) Successful in 8s
CI / frontend-lint (push) Successful in 32s
Reviewed-on: TheFurya/nuzlocke-tracker#17
2026-02-11 21:59:50 +01:00
b55a82117e fix format in backend
All checks were successful
CI / backend-lint (pull_request) Successful in 8s
CI / frontend-lint (pull_request) Successful in 30s
2026-02-11 21:58:46 +01:00
40bce99c0b fix backend linting
Some checks failed
CI / backend-lint (pull_request) Failing after 8s
CI / frontend-lint (pull_request) Successful in 31s
2026-02-11 21:57:45 +01:00
dbddee4d92 Merge branch 'develop' into feature/add-boss-data
Some checks failed
CI / backend-lint (pull_request) Failing after 8s
CI / frontend-lint (pull_request) Successful in 31s
2026-02-11 21:52:41 +01:00
734fb50f0a Add merge migration; COmmit bean changes
Some checks failed
CI / backend-lint (push) Failing after 8s
CI / frontend-lint (push) Successful in 32s
2026-02-11 21:51:35 +01:00
39d18c241e Integrate name suggestions into encounter registration UI
Add clickable suggestion chips below the nickname input in the encounter
modal. Chips are fetched from GET /runs/{id}/name-suggestions via React
Query, shown only when a naming scheme is set. Clicking a chip fills in
the nickname; a regenerate button fetches a fresh random batch. Completes
the Name Generation epic.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 21:48:29 +01:00
2ac6c23577 Add name suggestion engine with API endpoint and tests
Expand services/naming.py with suggest_names() that picks random words
from a category while excluding nicknames already used in the run. Add
GET /runs/{run_id}/name-suggestions?count=10 endpoint that reads the
run's naming_scheme and returns filtered suggestions. Includes 12 unit
tests covering selection, exclusion, exhaustion, and cross-category
independence.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 21:45:04 +01:00
15283ede91 Add name dictionary with 10 themed categories
Create name_dictionary.json with 175 words each across mythology, food,
space, nature, warriors, music, literature, gems, ocean, and weather
categories. Words are short (<= 12 chars), title-cased, and suitable as
Pokemon nicknames. No intra-category duplicates; cross-category overlap
is intentional.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 21:42:33 +01:00
e324559476 Add naming scheme selection to run configuration
Add a nullable naming_scheme column to NuzlockeRun so users can pick a
themed word category for nickname suggestions. Includes Alembic migration,
updated Pydantic schemas, a GET /runs/naming-categories endpoint backed by
a cached dictionary loader, and frontend dropdowns in both the NewRun
creation flow and the RunDashboard for mid-run changes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 21:36:50 +01:00
f71db65642 Add Boss list for all games and more boss types
All checks were successful
CI / backend-lint (pull_request) Successful in 8s
CI / frontend-lint (pull_request) Successful in 30s
2026-02-11 21:33:55 +01:00
Julian Tabel
e61fce5f72 Refine Naming Generator Epic 2026-02-11 17:00:16 +01:00
Julian Tabel
5582d9028f Complete Game Data Cleanup epic 2026-02-11 15:34:02 +01:00
Julian Tabel
1683b60a5e Bean completed 2026-02-11 15:22:59 +01:00
Julian Tabel
d0b0f08665 Fix and complete route ordering for all games
All checks were successful
CI / backend-lint (push) Successful in 7s
CI / frontend-lint (push) Successful in 29s
Rewrote route_order.json with correct progression ordering for all 15
version groups (Gen 1-9), validated against encounter data files. Added
generate_route_order.py script for reproducible generation and validation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 15:21:18 +01:00
Julian Tabel
157e9ed987 Add starters for all games to special_encounters.json
All checks were successful
CI / backend-lint (push) Successful in 7s
CI / frontend-lint (push) Successful in 30s
Added starter data for Gen 4-9, Legends Arceus, and Legends Z-A.
Fixed Yellow and Let's Go which were incorrectly aliased to the
firered-leafgreen Gen 1 trio — they now have their own entries.
Added aliases for Platinum, BD/SP, B2/W2, and USUM.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 14:52:38 +01:00
Julian Tabel
9a0cf7a552 Remove redundant gift/fossil entries from special_encounters.json
Gifts, trades, and fossils are already in the per-game encounter data.
Only starters need to remain in special_encounters.json. Updated the
corresponding bean to reflect the narrowed scope.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 14:48:23 +01:00
Julian Tabel
c81a697879 Mark encounter data beans as completed
Encounter data is now complete for Gen 8+ stub games and ORAS/Let's Go titles.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 14:41:45 +01:00
63bb3a0394 Remove old Go fetch-pokeapi tool, update README for import-pokedb (#13)
All checks were successful
CI / backend-lint (push) Successful in 7s
CI / frontend-lint (push) Successful in 29s
The Go tool in tools/fetch-pokeapi/ has been fully replaced by the
Python import-pokedb tool. Removes all Go source files, updates the
README seed regeneration docs, and cleans up the .gitignore entry.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Co-authored-by: Julian Tabel <julian.tabel@synvert.com>
Reviewed-on: TheFurya/nuzlocke-tracker#13
2026-02-11 13:55:38 +01:00
f42cee7f7a Update README.md 2026-02-11 13:48:37 +01:00
Julian Tabel
dfa49e62fe Update bean 2026-02-11 13:42:44 +01:00
Julian Tabel
174b145e84 Fix webp sprites not loading in production nginx
All checks were successful
CI / backend-lint (push) Successful in 7s
CI / frontend-lint (push) Successful in 30s
Include mime.types at the server block level to ensure .webp files
are served with the correct Content-Type (image/webp).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 13:23:58 +01:00
Julian Tabel
02367a8e3a Merge branch 'develop' of ssh://192.168.1.10:2222/TheFurya/nuzlocke-tracker into develop
All checks were successful
CI / backend-lint (push) Successful in 7s
CI / frontend-lint (push) Successful in 31s
2026-02-11 13:03:49 +01:00
Julian Tabel
42764b2485 Add sprites 2026-02-11 13:02:18 +01:00
90399f41b7 Merge branch 'develop' into main 2026-02-11 12:00:31 +01:00
Julian Tabel
aadd730002 Mark PokeDB import feature and subtasks as completed
All checks were successful
CI / backend-lint (push) Successful in 11s
CI / frontend-lint (push) Successful in 30s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 11:56:25 +01:00
Julian Tabel
872d7872ce Validate and regenerate all seed data from PokeDB
- 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>
2026-02-11 11:52:51 +01:00
Julian Tabel
df55233c62 Add seed JSON output (per-game, games.json, pokemon.json)
Wire output module into CLI pipeline: route ordering, special encounter
merging, and JSON writing for per-game encounters, global games list,
and pokemon list with types and sprite paths.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 10:59:56 +01:00
Julian Tabel
29b954726a Add PokeDB sprite downloading (100x100 WebP)
Download pokemon sprites from PokeDB CDN during import, cached locally
as {pokeapi_id}.webp. Replaces PokeAPI GitHub sprite URLs. ~4.6MB for
all 1119 unique sprites.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 10:24:43 +01:00
Julian Tabel
d80c59047c Add core encounter processing pipeline
Filter by game version, parse levels and rate variants across all
generations, aggregate encounters by pokemon+method, and build
parent/child route hierarchy. Also completes encounter method coverage
(73/73) and pokemon form mapping (1180/1181) with manual overrides.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 10:12:55 +01:00
Julian Tabel
df7ea64b9e Add reference data mappings and auto-download for PokeDB import tool
Add mappings module with pokemon form, location area, encounter method,
and version mappings. Auto-download PokeDB JSON exports from CDN on
first run, caching in .pokedb_cache/.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 10:02:57 +01:00
Julian Tabel
1aa67665ff Add Python tool scaffold for PokeDB data import
Set up tools/import-pokedb/ with CLI, JSON loader, and output models.
Replaces the Go/PokeAPI approach with local PokeDB.org JSON processing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 09:49:51 +01:00
e686cd5d54 Merge pull request 'develop' (#6) from develop into main
Reviewed-on: TheFurya/nuzlocke-tracker#6
2026-02-10 16:02:20 +01:00
5151be785b feature/pokedb-attribution (#5)
All checks were successful
CI / backend-lint (push) Successful in 7s
CI / frontend-lint (push) Successful in 29s
Co-authored-by: Julian Tabel <julian.tabel@synvert.com>
Reviewed-on: TheFurya/nuzlocke-tracker#5
2026-02-10 16:01:14 +01:00
Julian Tabel
45a34ecf31 Add rebrand to Another Nuzlocke Tracker (ANT) bean
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 15:57:55 +01:00
Julian Tabel
27ec0194bc Add seed container evaluation bean, blocked on PokeDB import
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 15:31:36 +01:00
6e5ba94e98 Merge pull request 'Update some beans' (#4) from develop into main
Reviewed-on: TheFurya/nuzlocke-tracker#4
2026-02-10 15:19:54 +01:00