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> |
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| .dockerignore | ||
| .gitignore | ||
| Dockerfile | ||
| README.md | ||
| eslint.config.js | ||
| index.html | ||
| nginx.conf | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.js | ||
| tailwind.config.js | ||
| vite.config.js | ||
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:
- @vitejs/plugin-react uses Oxc
- @vitejs/plugin-react-swc uses SWC
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.