About

What is here

The catalogue is a graph of objects, each with its own page: seasons (first regional to World Finals, with the advancement tree), series (a line of editions under one name, renamings recorded as lineage), contests (the edition: date, sites, what it advances to and who feeds it, CMS ids, its sources and problem set), sources (every catalogued address), problem sets and problems (what the ICPC Problem Archive holds), online judges and locations (one tree: country › region › city › institution). The coverage pages, the grid, the wanted list and the two appendices (CMS id ledger, non-mainline registry) are views over the same data. Every list page filters client-side on its columns and sorts by clicking a header.

Words

A source is an address (URL) the catalogue knows, with the roles it serves (website, scoreboard, frozen scoreboard, standings, rankings, ICPC standings, problem set, judge page, teams) and a health (live, changed, replaced, dead, unknown — the verdict of the last live check, hover any chip for the rule). A snapshot is that address at one time: a Wayback snapshot, or our own live fetch. A capture is our stored copy of a snapshot, with provenance (what was fetched, when, sha256, size, type). The catalogue holds sources; the archive holds captures. Links on a result row: live = the address as is; wayback = pinned to the time meant (as_of) when known, the calendar otherwise; archived (time) = our capture on the public replay; raw = the capture file untouched. A contest advances to its parent; its feeders are the contests whose parent it is. The year in a contest id is the season label (fall regionals carry the season-start year, finals the season-end year), not the date — pages always show both. Nothing about a contest's problems is public before it has run; problems kept private afterwards show name and uuid only. Full definitions: DEFINITIONS.md.

Local archive

Besides the result pages published on the replay site, this project holds a much larger private archive: raw captures of every result page and full crawls of 1708 contest websites (2345 contests with raw captures in all). That is far too big for GitHub Pages, so it is not published yet.

Links marked like this point at a small server on your own machine (http://127.0.0.1:8123). They work only if you have the archive repository checked out next to contests and the server running; for everyone else they give "unable to connect". Nothing is probed in the background — a link is just a link.

# in your checkout of the contests repo (archive checked out alongside it)
python3 tools/index_websites.py     # after new site crawls
python3 tools/serve.py              # rebuilds the site with local links, serves on 127.0.0.1:8123

Then browse the catalogue at http://127.0.0.1:8123/ — the same pages as the public site, with every local link live. The public site's local links point at the same address, so they work in any browser while the server is up.

When the archive gets a public home the only change is the host these links point at (LOCAL_ARCHIVE_BASE in tools/build_site.py).