Files
breedr/README.md

216 lines
5.7 KiB
Markdown

# 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