← All cases
Case 011 Collection Tracking

Living Pokédex Tracker

Completing a living dex means tracking caught, shiny and hidden-ability status for over 1,000 species — per save, per region — and spreadsheets collapse under that. Most trackers are single-user and re-fetch the same API data endlessly.

A multi-user web tracker that lays the dex out as in-game storage boxes of 30, with per-dex progress, shiny-hunt counters, team and stat tools, and shareable read-only trainer cards.

Exhibit — Collection Tracking
Exhibit 011-A
Coverage
National dex to #1025 plus 10 regional dexes and alt forms
Box view
boxes of 30, infinite scroll, lazy per-box loading
Caching
L1 memory → L2 SQL → PokeAPI, each entry fetched once ever
Selection model
Windows-Explorer-style — marquee drag, Ctrl/Shift multi-select, bulk mark
Dependencies
one NuGet package (the SQL Server client)
Tests
43 xUnit test cases passing

Blazor Server (.NET 10) with hand-written SQL over ADO.NET and cookie auth (PBKDF2, 100k iterations); built feature-by-feature by agents with the caching tiers specified up front so every later page reused the same fetch-once pipeline.

An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.