# BREEDR - Dog Breeding Genealogy Management System A reactive, interactive dog breeding genealogy mapping system for professional kennel management. ## ⚠️ Important: Database Migration Required **If you have an existing BREEDR installation**, you must run a migration to fix the microchip field constraint: ```bash # Enter the container docker exec -it breedr sh # Run migration node server/db/migrate_microchip.js # Exit and restart exit docker restart breedr ``` **What this fixes:** The microchip field now allows multiple dogs without microchips (previously caused "UNIQUE constraint failed" errors). **See full details:** [docs/MICROCHIP_FIX.md](docs/MICROCHIP_FIX.md) --- ## Features - **Interactive Pedigree Visualization** - Multi-generational family trees with zoom/pan - **Health & Genetics Tracking** - Comprehensive health records and genetic trait mapping - **Breeding Management** - Heat cycles, pairing analysis, and litter tracking - **Inbreeding Coefficient Calculator** - COI analysis for responsible breeding decisions - **Trial Pairing Simulator** - Preview offspring genetics before breeding - **Document Management** - Digital storage for certificates, contracts, and records - **Modern UI** - Sleek, dark-themed interface with compact info cards ## Technology Stack - **Frontend**: React 18 with modern component design - **Visualization**: React-D3-Tree for pedigree charts - **Backend**: Node.js/Express API - **Database**: SQLite (embedded, zero-config) - **Container**: Single Docker image with multi-stage build - **Styling**: CSS custom properties with dark theme ## Installation (Unraid) ### Build the Docker Image 1. Clone the repository: ```bash cd /mnt/user/appdata/breedr-build git clone https://git.alwisp.com/jason/breedr.git . git checkout feature/ui-redesign # For latest UI updates ``` 2. Build the Docker image: ```bash docker build -t breedr:latest . ``` ### Deploy in Unraid 1. Go to **Docker** tab in Unraid UI 2. Click **Add Container** 3. Configure: - **Name**: Breedr - **Repository**: breedr:latest - **Network Type**: Bridge - **Port**: 3000 → 3000 (or your preferred port) - **Path 1**: /mnt/user/appdata/breedr → /app/data (for database) - **Path 2**: /mnt/user/appdata/breedr/uploads → /app/uploads (for photos/documents) 4. Click **Apply** ### Access the Application Navigate to: `http://[UNRAID-IP]:3000` ## Development ### Local Development Setup ```bash # Install dependencies npm install # Run development server (frontend + backend) npm run dev # Build for production npm run build ``` ### Project Structure ``` breedr/ ├── client/ # React frontend │ ├── src/ │ ├── public/ │ └── package.json ├── server/ # Node.js backend │ ├── routes/ │ ├── db/ │ │ ├── init.js │ │ └── migrate_microchip.js │ └── index.js ├── docs/ # Documentation │ ├── MICROCHIP_FIX.md │ ├── UI_REDESIGN.md │ └── COMPACT_CARDS.md ├── Dockerfile # Multi-stage Docker build ├── docker-compose.yml ├── package.json └── README.md ``` ## Environment Variables - `NODE_ENV` - production/development (default: production) - `PORT` - Server port (default: 3000) - `DB_PATH` - SQLite database path (default: /app/data/breedr.db) - `UPLOAD_PATH` - Upload directory (default: /app/uploads) ## Database Schema SQLite database automatically initializes on first run with tables: - `dogs` - Core dog registry - `parents` - Parent-child relationships - `litters` - Breeding records - `health_records` - Medical and genetic testing - `heat_cycles` - Breeding cycle tracking - `traits` - Genetic trait mapping ## Upgrading ### From Earlier Versions ```bash # Stop container docker stop breedr # Backup your data cp -r /mnt/user/appdata/breedr /mnt/user/appdata/breedr-backup # Pull latest code cd /mnt/user/appdata/breedr-build git pull # Rebuild image docker build -t breedr:latest . # Start container (will auto-migrate) docker start breedr # Run migration if needed docker exec -it breedr node server/db/migrate_microchip.js ``` ## Roadmap ### ✅ Phase 1: Foundation (Complete) - [x] Project structure - [x] Docker containerization - [x] Database schema - [x] Basic API endpoints - [x] Modern UI redesign ### 🚧 Phase 2: Core Features (In Progress) - [x] Dog profile management (CRUD) - [x] Photo management - [x] Compact info card design - [x] Search and filtering - [ ] Interactive pedigree visualization - [ ] Parent-child relationship mapping ### 📋 Phase 3: Breeding Tools - [ ] Inbreeding coefficient calculator - [ ] Trial pairing simulator - [ ] Heat cycle tracking - [ ] Litter management ### 📊 Phase 4: Health & Genetics - [ ] Health record management - [ ] Genetic trait tracking - [ ] Document storage ### 🚀 Phase 5: Advanced Features - [ ] PDF pedigree generation - [ ] Reverse pedigree (descendants) - [ ] Advanced search and filters - [ ] Export capabilities ## Recent Updates ### March 8, 2026 - UI Redesign & Bug Fixes - **Fixed:** Microchip field UNIQUE constraint (now properly optional) - **Added:** Migration script for existing databases - **Redesigned:** Modern dark theme with sleek aesthetics - **Redesigned:** Compact horizontal info cards (80x80 avatars) - **Improved:** Dashboard with gradient stats cards - **Improved:** Navigation bar with glass morphism - **Enhanced:** Age calculation and display - **Added:** Sex-colored icons (blue ♂, pink ♀) - **Added:** Registration number badges ## License Private use only - All rights reserved ## Support For issues or questions: - Check documentation in `docs/` folder - Review container logs: `docker logs breedr` - Contact the system administrator