MyKindlebox/mykindlebox/client
fireshaper 4544aa8060 Add ARBA Shows feature (browse, events, entries, judges, placements)
Adds a self-hosted Shows section that scrapes the ARBA show-search
listing and lets the user build show events, enter herd rabbits, and
track judges and placements.

Server:
- lib/arba.ts: Cloudflare-aware scraper + normalizer (cheerio), US-only,
  cavy-excluded; cached in arba_shows_cache (re-scrape when >24h stale or
  on demand). Rows are read from server-rendered Ninja Tables cells.
- routes/shows.ts: cached ARBA listing + force refresh.
- routes/showEvents.ts: event CRUD, ARBA-show snapshots, entries, judges,
  placements (PUT upsert), and the plain-text entries report.
- schema: show_events, show_event_shows, show_event_entries,
  show_event_judges, show_event_placements; breed column on rabbits.
- migrations 0007-0010.

Client:
- /shows browser with filters + 'Add to Event'.
- /shows/events list + detail with Shows / Entries / Results tabs,
  rabbit picker, inline class/notes, placement entry, and report modal.
- breed surfaced in add/edit/detail/review.

Also folds in two previously-uncommitted bodies of work that share
schema.ts / index.ts / api.js with the above and can't be split out
cleanly: the rabbit timeline (rabbit_events, migrations 0004-0006,
routes/events.ts, RabbitTimeline) and the breed-select / default-breed
herd work (BreedSelect, lib/breeds.js, settings default_breed).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 23:13:30 -04:00
..
public Initial commit: MyKindlebox rabbitry management app 2026-06-21 23:29:56 -04:00
src Add ARBA Shows feature (browse, events, entries, judges, placements) 2026-06-22 23:13:30 -04:00
.dockerignore Initial commit: MyKindlebox rabbitry management app 2026-06-21 23:29:56 -04:00
.gitignore Initial commit: MyKindlebox rabbitry management app 2026-06-21 23:29:56 -04:00
Dockerfile Initial commit: MyKindlebox rabbitry management app 2026-06-21 23:29:56 -04:00
README.md Initial commit: MyKindlebox rabbitry management app 2026-06-21 23:29:56 -04:00
eslint.config.js Initial commit: MyKindlebox rabbitry management app 2026-06-21 23:29:56 -04:00
index.html Initial commit: MyKindlebox rabbitry management app 2026-06-21 23:29:56 -04:00
nginx.conf Initial commit: MyKindlebox rabbitry management app 2026-06-21 23:29:56 -04:00
package-lock.json Initial commit: MyKindlebox rabbitry management app 2026-06-21 23:29:56 -04:00
package.json Initial commit: MyKindlebox rabbitry management app 2026-06-21 23:29:56 -04:00
postcss.config.js Initial commit: MyKindlebox rabbitry management app 2026-06-21 23:29:56 -04:00
tailwind.config.js Initial commit: MyKindlebox rabbitry management app 2026-06-21 23:29:56 -04:00
vite.config.js Initial commit: MyKindlebox rabbitry management app 2026-06-21 23:29:56 -04:00

README.md

React + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

React Compiler

The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.

Expanding the ESLint configuration

If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the TS template for information on how to integrate TypeScript and typescript-eslint in your project.