b8633863b0eafbc2d2a15ef9ca1ce38ed9851f8e
All list endpoints now accept ?page and ?limit (default 50, max 200) and
return { data, total, page, limit } instead of a bare array, preventing
memory and performance failures at scale.
- GET /api/dogs: adds pagination, server-side search (?search) and sex
filter (?sex), and a stats aggregate (total/males/females) for the
Dashboard to avoid counting from the array
- GET /api/litters: adds pagination; also fixes N+1 query by fetching
all puppies for the current page in a single query instead of one per
litter
- DogList: moves search/sex filtering server-side with 300ms debounce;
adds Prev/Next pagination controls
- LitterList: uses paginated response; adds Prev/Next pagination controls
- Dashboard: reads counts from stats/total fields instead of array length
- LitterDetail, LitterForm: switch dogs fetch to /api/dogs/all (complete
list, no pagination, for sire/dam dropdowns)
- DogForm: updates litters fetch to use paginated response shape
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
BREEDR - Dog Breeding Genealogy Management System
A reactive, interactive dog breeding genealogy mapping system for professional kennel management.
🌟 Recent Highlights (v0.8.0)
- ✅ Reverse Pedigree — Toggle between ancestors and descendants view for full lineage tracking.
- ✅ External Dog Mapping — Assign parents to external dogs, allowing for full genealogy of outside lines.
- ✅ Universal Parent Selection — Select any dog (kennel or external) as a sire/dam from any profile.
🚀 Quick Start
1. Docker Deployment (Recommended)
git clone https://git.alwisp.com/jason/breedr.git
cd breedr
docker-compose up -d --build
Access at: http://localhost:3000
2. Manual Development Setup
npm install
npm run dev
Note: The database initializes automatically on first boot. No manual migrations are required.
🐕 Managing Your Kennel
- Adding Dogs: Go to the Dogs page, click Add New Dog. You can mark dogs as External if they aren't in your kennel but are needed for pedigree mapping.
- Champion Tracking: Toggle the Champion status to title dogs. Offspring will automatically display the "Champion Bloodline" badge.
- Photo Management: Multiple high-quality photos per dog with a compact gallery view.
- Litter Tracking: Link puppies to breeding records automatically to track weight and health from birth.
🧬 Breeding & Genetics
- Interactive Pedigree: 5-generation trees with zoom/pan. Toggle the Reverse Pedigree switch to see descendant lineage.
- Trial Pairing Simulator: Calculate Wright's Inbreeding Coefficient (COI) instantly. Identifies common ancestors and providing risk badges (Low/Moderate/High).
- Heat Cycles: Track female cycles on the calendar. Includes projected whelping alerts (indigo windows) and expected due dates.
🛠️ Technology Stack
- Frontend: React 18, Vite, Lucide Icons
- Visualization: React-D3-Tree, D3.js
- Backend: Node.js, Express.js
- Database: SQLite (Zero-config, safe
ALTER TABLEmigrations) - Deployment: Multi-stage Docker
📂 Project Structure
breedr/
├── client/ # React frontend (Pages: Pedigree, Pairing, Calendar, Settings)
├── server/ # Node.js backend (Routes: Dogs, Pedigree, Breeding, Settings)
├── static/ # Branded assets (logos, etc.)
├── data/ # SQLite database storage (mapped in Docker)
├── uploads/ # Dog photo storage (mapped in Docker)
└── docs/ # Technical documentation and design history
🕒 Release Summary
- v0.8.0 (Mar 2026): Reverse Pedigree & External dog parentage.
- v0.7.0 (In Progress): Health & Genetics (OFA clearances, DNA panels).
- v0.6.1: COI calculation fix for direct parent×offspring relations.
- v0.6.0: Champion status tracking & Kennel settings API.
❓ Troubleshooting
- COI shows 0.00%?: Ensure both parents are mapped and have shared ancestors.
- Missing Columns?: Restart the server; auto-init guards add columns automatically.
- Logo not appearing?: Place
br-logo.pngin thestatic/directory.
Full Documentation: Installation Guide | Development & Architecture | API Reference | Roadmap
Description
Languages
JavaScript
93.4%
CSS
6.1%
Dockerfile
0.4%
HTML
0.1%