2026-03-08 23:04:56 -05:00
# BREEDR Development Roadmap
## ✅ Phase 1: Foundation (COMPLETE)
### Infrastructure
- [x] Docker multi-stage build configuration
- [x] SQLite database with automatic initialization
- [x] Express.js API server
- [x] React 18 frontend with Vite
- [x] Git repository structure
### Database Schema
2026-03-09 02:19:48 -05:00
- [x] Dogs table with core fields (NO sire/dam columns)
- [x] Parents relationship table for sire/dam tracking
2026-03-08 23:04:56 -05:00
- [x] Litters breeding records
- [x] Health records tracking
- [x] Heat cycles management
- [x] Traits genetic mapping
- [x] Indexes and triggers
2026-03-09 02:19:48 -05:00
- [x] **litter_id column ** for linking puppies to litters
- [x] **Clean schema design ** - NO migrations, fresh init only
2026-03-09 22:47:31 -05:00
- [x] **Safe ALTER TABLE migration guards ** - new columns added automatically on upgrade
2026-03-08 23:04:56 -05:00
### API Endpoints
2026-03-09 22:47:31 -05:00
- [x] `/api/dogs` - Full CRUD operations (incl. `is_champion` )
2026-03-08 23:04:56 -05:00
- [x] `/api/pedigree` - Tree generation and COI calculator
- [x] `/api/litters` - Breeding records
- [x] `/api/health` - Health tracking
- [x] `/api/breeding` - Heat cycles and whelping calculator
2026-03-09 22:47:31 -05:00
- [x] `/api/settings` - Kennel configuration (GET/PUT)
2026-03-08 23:04:56 -05:00
- [x] Photo upload with Multer
2026-03-09 02:19:48 -05:00
- [x] **Parent relationship handling ** via parents table
2026-03-09 20:20:43 -05:00
- [x] `/static/*` - Branding and static asset serving
2026-03-08 23:04:56 -05:00
---
## ✅ Phase 2: Core Functionality (COMPLETE)
### Dog Management
- [x] Add new dogs with full form
- [x] Edit existing dogs
- [x] View dog details
- [x] List all dogs with search/filter
- [x] Upload multiple photos per dog
- [x] Delete photos
2026-03-09 02:19:48 -05:00
- [x] Parent selection (sire/dam) via parents table
- [x] **Proper error handling ** for API failures
2026-03-08 23:04:56 -05:00
### User Interface
- [x] Dashboard with statistics
- [x] Dog list with grid view
- [x] Dog detail pages
- [x] Modal forms for add/edit
- [x] Photo management UI
- [x] Search and sex filtering
- [x] Responsive navigation
2026-03-09 02:19:48 -05:00
- [x] **Compact info cards ** (80x80 avatars)
- [x] **Modern dark theme ** with glass morphism
2026-03-09 20:20:43 -05:00
- [x] **Custom brand logo ** (br-logo.png) in navbar
- [x] **Gold-to-rusty-red gradient ** on BREEDR brand title
- [x] **Static asset serving ** via Express `/static` route
- [x] **Vite dev proxy ** for `/static` routes
- [x] **Route fix ** - static/uploads don't fall through to React router
- [x] **Logo aspect ratio ** fixed to 1:1 square
2026-03-08 23:04:56 -05:00
### Features Implemented
- [x] Photo upload and storage
2026-03-09 02:19:48 -05:00
- [x] Parent-child relationships (via parents table)
2026-03-08 23:04:56 -05:00
- [x] Basic information tracking
- [x] Registration numbers
2026-03-09 02:19:48 -05:00
- [x] Microchip tracking (optional)
- [x] **Litter linking ** with litter_id
- [x] **Clean database schema ** with no migrations
2026-03-08 23:04:56 -05:00
---
2026-03-09 00:11:31 -05:00
## ✅ Phase 3: Breeding Tools (COMPLETE)
2026-03-08 23:04:56 -05:00
2026-03-09 20:40:45 -05:00
### Pedigree & Genetics
2026-03-09 00:11:31 -05:00
- [x] **Interactive pedigree tree visualization **
- [x] Integrate React-D3-Tree
- [x] Show 3-5 generations
- [x] Click to navigate
- [x] Zoom and pan controls
- [x] Beautiful color-coded nodes
- [x] Male/Female distinction
2026-03-08 23:04:56 -05:00
2026-03-09 02:19:48 -05:00
- [x] **Litter Management ** ✅
- [x] Create litter records
- [x] Link puppies to litter
- [x] Track whelping details
- [x] Auto-link parent relationships
- [x] Database migration for litter_id
- [x] Enhanced API endpoints
- [x] Dual parent selection mode (litter/manual)
- [x] UI fix for proper layout and error handling
2026-03-09 20:40:45 -05:00
- [x] **Trial Pairing Simulator ** ✅ * (March 9, 2026) *
- [x] Sire and dam selection dropdowns
- [x] COI calculation display with color coding
- [x] Common ancestors table (sire-gen / dam-gen columns)
- [x] Risk badge: Low (<5%) / Moderate (5-10%) / High (>10%)
- [x] `/pairing` route + navbar link
- [x] `POST /api/pedigree/trial-pairing` backend
- [x] **Heat Cycle Calendar ** ✅ * (March 9, 2026) *
- [x] Full month grid calendar (Sun– Sat) with prev/next navigation
- [x] Color-coded day cells by cycle phase
- [x] Start Heat Cycle modal (female dropdown + date picker)
- [x] Cycle Detail modal with phase breakdown
- [x] Breeding date logging inline
- [x] Whelping estimate (earliest/expected/latest)
- [x] Active cycles list with phase badge + day counter
- [x] `GET /api/breeding/heat-cycles` endpoint
- [x] `GET /api/breeding/heat-cycles/:id/suggestions` endpoint
2026-03-08 23:04:56 -05:00
2026-03-09 23:19:15 -05:00
- [x] **Projected Whelping Calendar Identifier ** ✅ * (March 9, 2026 − v0.5.1) *
2026-03-09 21:44:10 -05:00
- [x] Gestation constants: earliest=58, expected=63, latest=65 days
2026-03-09 22:47:31 -05:00
- [x] `getWwhelpDates(cycle)` client-side helper (no extra API call)
- [x] Indigo whelp window cells (days 58– 63) on calendar grid
2026-03-09 21:44:10 -05:00
- [x] Indigo dot marker on expected whelp day (day 63)
- [x] `Baby` icon + "[Name] due" label inside whelp day cells
- [x] "Whelp est. [date]" row with range on active cycle cards
- [x] Jump-to-whelp-month button on active cycle cards
- [x] Live whelp preview in Cycle Detail modal (client-side, instant)
- [x] Full-width whelping banner when projected whelps exist
- [x] "Projected Whelp" legend entry with Baby icon
- [x] Updated page subtitle to include whelping dates
2026-03-08 23:04:56 -05:00
---
2026-03-09 23:19:15 -05:00
## ✅ Phase 4a: Champion & Settings (COMPLETE − v0.6.0)
2026-03-09 22:47:31 -05:00
### Champion Bloodline Tracking
- [x] `is_champion INTEGER DEFAULT 0` column on `dogs` table
- [x] Safe `ALTER TABLE dogs ADD COLUMN is_champion` migration guard
- [x] `is_champion` included in all `GET /api/dogs` + `GET /api/dogs/:id` responses
- [x] `is_champion` persisted in `POST` and `PUT /api/dogs`
- [x] `is_champion` included on sire/dam JOIN queries and offspring query
- [x] Champion toggle checkbox in `DogForm` with amber-gold highlight + `Award` icon
- [x] `✪` suffix on champion names in sire/dam parent dropdowns
- [x] Champion Bloodline badge on offspring cards and dog detail pages
### Kennel Settings
- [x] `settings` table: `kennel_name` , `kennel_tagline` , `kennel_address` , `kennel_phone` , `kennel_email` , `kennel_website` , `kennel_akc_id` , `kennel_breed` , `owner_name`
- [x] Safe `ALTER TABLE settings ADD COLUMN` migration loop for all kennel fields
- [x] Auto-seed default row (`kennel_name = 'BREEDR'` ) if table is empty
2026-03-09 23:19:15 -05:00
- [x] `GET /api/settings` − returns single-row as flat JSON object
- [x] `PUT /api/settings` − partial update via `ALLOWED_KEYS` whitelist
2026-03-09 22:47:31 -05:00
- [x] `SettingsProvider` / `useSettings` React context hook
- [x] Kennel name displayed in navbar from settings
- [x] `SettingsPage` component for editing kennel info
### Build & Runtime Fixes (v0.6.0)
2026-03-09 23:19:15 -05:00
- [x] `useSettings.js` → `useSettings.jsx` − Vite build failed because JSX in `.js` file
- [x] `server/index.js` − `initDatabase()` called with no args (was passing `DB_PATH` , now path is internal)
- [x] `server/index.js` − removed duplicate `app.get('/api/health')` inline route
- [x] `server/index.js` − `DATA_DIR` env var replaces `path.dirname(DB_PATH)` for directory creation
- [x] `server/routes/settings.js` − rewrote from double-encoded base64 + old key/value schema to correct single-row column schema
2026-03-08 23:04:56 -05:00
2026-03-09 22:47:31 -05:00
---
2026-03-09 23:19:15 -05:00
## 📋 Phase 4b: Health & Genetics (NEXT UP − v0.7.0)
> **Context:** Golden Retriever health clearances follow GRCA Code of Ethics and OFA/CHIC standards.
> This phase builds a structured, breed-aware health tracking system aligned with those requirements.
### Tier 1 — OFA Health Clearances *(Priority 1)* 🩺
The four GRCA-required clearances that must be on record in the public OFA database before breeding.
**Database (schema additions to `health_records` table):**
- [ ] Add `test_type` ENUM-style field: `hip_ofa` , `hip_pennhip` , `elbow_ofa` , `heart_ofa` , `heart_echo` , `eye_caer` , `thyroid_ofa` , `dna_panel`
- [ ] Add `result` field: `pass` , `fail` , `carrier` , `clear` , `excellent` , `good` , `fair` , `borderline`
- [ ] Add `ofa_number` VARCHAR — official OFA certification number
- [ ] Add `chic_number` VARCHAR — CHIC certification number (dog-level field on `dogs` table)
- [ ] Add `performed_by` VARCHAR — vet or specialist name
- [ ] Add `expires_at` DATE — for annually-renewed tests (eyes, heart)
- [ ] Add `document_url` VARCHAR — path to uploaded PDF/image
- [ ] Safe ALTER TABLE migration guards for all new columns
**API:**
- [ ] `GET /api/health/:dogId` — list all health records for a dog
- [ ] `POST /api/health` — create health record
- [ ] `PUT /api/health/:id` — update health record
- [ ] `DELETE /api/health/:id` — delete health record
- [ ] `GET /api/health/:dogId/clearance-summary` — returns pass/fail/missing for all 4 OFA tiers
- [ ] `GET /api/health/:dogId/chic-eligible` — returns boolean + missing tests
**UI Components:**
- [ ] `HealthRecordForm` modal — test type dropdown, result, OFA#, date, performed-by, expiry, document upload
- [ ] `HealthTimeline` component — chronological list of all health events per dog on DogDetail page
- [ ] `ClearanceSummaryCard` — shows OFA Hip / Elbow / Heart / Eyes status in a 2x2 grid with color badges (green=pass, yellow=expiring, red=missing/fail)
- [ ] `ChicStatusBadge` — amber badge on dog cards and DogDetail if CHIC number is on file
- [ ] Expiry alert: yellow badge on dog card if any annual test expires within 90 days; red if expired
- [ ] Document upload support (PDF/image) tied to individual health records
**Clearance Tiers Tracked:**
| Test | OFA Minimum Age | Renewal | Notes |
|---|---|---|---|
| Hip Dysplasia | 24 months | Once (final) | OFA eval or PennHIP |
| Elbow Dysplasia | 24 months | Once (final) | OFA eval |
| Cardiac (Heart) | 12 months | Annual recommended | Echo preferred over auscultation |
| Eyes (CAER) | 12 months | **Annual ** | Board-certified ACVO ophthalmologist |
| Thyroid (OFA) | 12 months | Annual recommended | Bonus/Tier 2 |
2026-03-09 22:47:31 -05:00
2026-03-09 23:19:15 -05:00
**Complexity:** Medium | **Impact: ** High | **User Value: ** Excellent
**Estimated Time:** 8– 10 hours
---
### Tier 2 — DNA Genetic Panel *(Priority 2)* 🧬
Embark or equivalent panel results per dog. Allows carrier × clear pairing without producing affected offspring.
**Database:**
- [ ] `genetic_tests` table: `id` , `dog_id` , `test_provider` (embark/optigen/etc), `test_name` , `result` (clear/carrier/affected), `test_date` , `document_url` , `created_at`
- [ ] Safe `CREATE TABLE IF NOT EXISTS` guard
**Golden Retriever Panel — Key Markers:**
- [ ] PRA1 (Progressive Retinal Atrophy type 1)
- [ ] PRA2 (Progressive Retinal Atrophy type 2)
- [ ] prcd-PRA (Progressive Rod-Cone Degeneration)
- [ ] ICH1 / ICH2 (Ichthyosis — very common in Goldens)
- [ ] NCL (Neuronal Ceroid Lipofuscinosis — fatal neurological)
- [ ] DM (Degenerative Myelopathy)
- [ ] MD (Muscular Dystrophy)
- [ ] GR-PRA1, GR-PRA2 (Golden-specific PRA variants)
**API:**
- [ ] `GET /api/genetics/:dogId` — list all genetic test results
- [ ] `POST /api/genetics` — add genetic result
- [ ] `PUT /api/genetics/:id` — update
- [ ] `DELETE /api/genetics/:id` — delete
- [ ] `GET /api/genetics/pairing-risk?sireId=&damId=` — returns at-risk combinations for a trial pairing
**UI Components:**
- [ ] `GeneticTestForm` modal — provider, marker, result (clear/carrier/affected), date, upload
- [ ] `GeneticPanelCard` on DogDetail — color-coded grid of all markers (green=clear, yellow=carrier, red=affected, gray=not tested)
- [ ] Pairing risk overlay on Trial Pairing Simulator — flag if sire+dam are both carriers for same marker
- [ ] "Not Tested" indicator on dog cards when no DNA panel on file
2026-03-08 23:04:56 -05:00
2026-03-09 22:47:31 -05:00
**Complexity:** Medium | **Impact: ** High | **User Value: ** Excellent
2026-03-09 23:19:15 -05:00
**Estimated Time:** 6– 8 hours
---
### Tier 3 — Cancer Lineage & Longevity Tracking *(Priority 3)* 📊
2026-03-09 22:47:31 -05:00
2026-03-09 23:19:15 -05:00
Golden Retrievers have ~60% cancer mortality rate. Lineage-based cancer history is a major differentiator for responsible breeders.
2026-03-09 22:47:31 -05:00
2026-03-09 23:19:15 -05:00
**Database:**
- [ ] `cancer_history` table: `id` , `dog_id` , `cancer_type` , `age_at_diagnosis` , `age_at_death` , `cause_of_death` , `notes` , `created_at`
- [ ] Add `age_at_death` and `cause_of_death` optional fields to `dogs` table
2026-03-09 22:47:31 -05:00
2026-03-09 23:19:15 -05:00
**API:**
- [ ] `GET /api/health/:dogId/cancer-history`
- [ ] `POST /api/health/cancer-history`
- [ ] `GET /api/pedigree/:dogId/cancer-lineage` — walks ancestors and returns cancer incidence summary
2026-03-08 23:04:56 -05:00
2026-03-09 23:19:15 -05:00
**UI:**
- [ ] Longevity section on DogDetail — age at death, cause of death
- [ ] Cancer lineage indicator on Trial Pairing Simulator — "X of 8 ancestors had cancer history"
- [ ] Optional cancer history entry on DogForm
**Complexity:** Low-Medium | **Impact: ** Medium | **User Value: ** High (differentiator)
**Estimated Time:** 4– 5 hours
---
### Tier 4 — Breeding Eligibility Checker *(Priority 4)* ✅
Automatic litter eligibility gate based on health clearance status of sire and dam.
**Logic:**
- [ ] Dog is "GRCA eligible" if: Hip OFA ✅ + Elbow OFA ✅ + Heart ✅ + Eyes (non-expired) ✅ + age ≥ 24 months
- [ ] Dog is "CHIC eligible" if all four tests are in OFA public database (CHIC number on file)
- [ ] Warning flags in Trial Pairing Simulator if sire or dam is missing required clearances
- [ ] Block litter creation (with override) if either parent fails eligibility check
**UI:**
- [ ] Eligibility badge on dog cards: `GRCA Eligible` (green) / `Incomplete` (yellow) / `Not Eligible` (red)
- [ ] Eligibility breakdown tooltip on hover — shows which tests are missing
- [ ] Pre-litter warning modal when creating a litter with non-eligible parents
- [ ] CHIC number field + verification note on DogDetail
**Complexity:** Low | **Impact: ** High | **User Value: ** Excellent
**Estimated Time:** 3– 4 hours
2026-03-09 22:47:31 -05:00
2026-03-08 23:04:56 -05:00
---
2026-03-09 20:20:43 -05:00
## 📋 Phase 5: Advanced Features (PLANNED)
2026-03-08 23:04:56 -05:00
### Pedigree Tools
- [ ] Reverse pedigree (descendants view)
- [ ] PDF pedigree generation
- [ ] Export to standard formats
- [ ] Print-friendly layouts
- [ ] Multi-generation COI analysis
### Breeding Planning
2026-03-09 20:40:45 -05:00
- [ ] Heat cycle predictions (based on cycle history)
- [ ] Expected whelping alerts / push notifications
2026-03-08 23:04:56 -05:00
- [ ] Breeding history reports
2026-03-09 20:40:45 -05:00
- [ ] iCal export for cycle events
2026-03-08 23:04:56 -05:00
### Search & Analytics
- [ ] Advanced search filters
- [ ] By breed, color, age
- [ ] By health clearances
- [ ] By registration status
- [ ] Statistics dashboard
- [ ] Breeding success rates
- [ ] Average litter sizes
- [ ] Popular pairings
---
2026-03-09 20:20:43 -05:00
## 📋 Phase 6: Polish & Optimization (PLANNED)
2026-03-08 23:04:56 -05:00
### User Experience
- [ ] Loading states for all operations
- [ ] Better error messages
- [ ] Confirmation dialogs
- [ ] Undo functionality
- [ ] Keyboard shortcuts
### Performance
- [ ] Image optimization
- [ ] Lazy loading
- [ ] API caching
- [ ] Database query optimization
### Mobile
- [ ] Touch-friendly interface
- [ ] Mobile photo capture
- [ ] Responsive tables
- [ ] Offline mode
### Documentation
2026-03-09 02:19:48 -05:00
- [x] DATABASE.md - Complete schema documentation
- [x] User-facing documentation
2026-03-08 23:04:56 -05:00
- [ ] API documentation
- [ ] Video tutorials
- [ ] FAQ section
---
2026-03-09 20:40:45 -05:00
## Future / Extended Features (BACKLOG)
### Progesterone Tracking *(Moved from Phase 3)*
- [ ] Log progesterone level readings per heat cycle
- [ ] Chart progesterone curve over cycle days
- [ ] LH surge detection
- [ ] Optimal breeding day prediction from levels
2026-03-08 23:04:56 -05:00
### Multi-User Support
- [ ] User authentication
- [ ] Role-based permissions
- [ ] Activity logs
- [ ] Shared access
### Integration
- [ ] Import from other systems
- [ ] Export to Excel/CSV
- [ ] Integration with kennel clubs
- [ ] Backup to cloud storage
2026-03-09 23:19:15 -05:00
- [ ] OFA database lookup by registration number
2026-03-08 23:04:56 -05:00
### Advanced Genetics
2026-03-09 23:19:15 -05:00
- [ ] DNA test result tracking (full Embark import)
2026-03-08 23:04:56 -05:00
- [ ] Genetic diversity analysis
- [ ] Breed-specific calculators
- [ ] Health risk predictions
### Kennel Management
- [ ] Breeding contracts
- [ ] Buyer tracking
- [ ] Financial records
- [ ] Stud service management
---
2026-03-09 23:19:15 -05:00
## 🏃 Current Sprint: v0.7.0 (Phase 4b)
2026-03-09 22:47:31 -05:00
### ✅ Completed This Sprint (v0.6.0)
2026-03-09 23:19:15 -05:00
- [x] `is_champion` flag − DB column, API, DogForm toggle, offspring badge, parent dropdown `✪`
- [x] Kennel Settings − `settings` table with all kennel fields, `GET/PUT /api/settings` , `SettingsProvider` , navbar kennel name
2026-03-09 22:47:31 -05:00
- [x] `useSettings.jsx` rename (Vite build fix)
2026-03-09 23:19:15 -05:00
- [x] `server/index.js` fix − `initDatabase()` no-arg, duplicate health route removed
- [x] `server/routes/settings.js` rewrite: double-encoded base64 + wrong schema fixed
2026-03-09 00:11:31 -05:00
2026-03-09 22:47:31 -05:00
### ✅ Previously Completed (v0.5.1)
2026-03-09 23:19:15 -05:00
- [x] Projected Whelping Calendar Identifier − indigo whelp window cells, due label, active card range, jump-to-month button
2026-03-09 21:44:10 -05:00
- [x] Live whelp preview in Cycle Detail modal (client-side, no save required)
- [x] Full-width whelping banner for months with projected whelps
- [x] "Projected Whelp" legend entry + updated page subtitle
2026-03-09 23:19:15 -05:00
### 🔜 Next Up — Phase 4b Build Order
#### Step 1: DB Schema Extensions
- [ ] Extend `health_records` table with OFA-specific columns (test_type, result, ofa_number, chic_number, expires_at, document_url)
- [ ] Create `genetic_tests` table (PRA, ICH, NCL, DM, MD, GR-PRA variants)
- [ ] Create `cancer_history` table
- [ ] Add `chic_number` , `age_at_death` , `cause_of_death` to `dogs` table
- [ ] All changes via safe ALTER TABLE / CREATE TABLE IF NOT EXISTS guards
#### Step 2: API Layer
- [ ] `GET|POST|PUT|DELETE /api/health/:dogId` (OFA records)
- [ ] `GET /api/health/:dogId/clearance-summary`
- [ ] `GET /api/health/:dogId/chic-eligible`
- [ ] `GET|POST|PUT|DELETE /api/genetics/:dogId`
- [ ] `GET /api/genetics/pairing-risk` (sire + dam carrier check)
- [ ] Cancer history endpoints
#### Step 3: Core UI — Health Records
- [ ] `HealthRecordForm` modal (test type, result, OFA#, expiry, doc upload)
- [ ] `HealthTimeline` on DogDetail page
- [ ] `ClearanceSummaryCard` 2× 2 grid (Hip / Elbow / Heart / Eyes)
- [ ] `ChicStatusBadge` on dog cards
- [ ] Expiry alert badges (90-day warning, expired)
#### Step 4: Core UI — Genetics Panel
- [ ] `GeneticTestForm` modal
- [ ] `GeneticPanelCard` on DogDetail (color-coded markers)
- [ ] Pairing risk overlay on Trial Pairing Simulator
#### Step 5: Eligibility Checker
- [ ] Eligibility logic (`grca_eligible` , `chic_eligible` computed fields)
- [ ] Eligibility badge on dog cards
- [ ] Pre-litter eligibility warning modal
#### Step 6: Cancer / Longevity (Stretch)
- [ ] Cancer history form + lineage summary on Trial Pairing page
- [ ] Age at death / cause of death on DogDetail
2026-03-08 23:04:56 -05:00
### Testing Needed
2026-03-09 00:11:31 -05:00
- [x] Add/edit dog forms with litter selection
2026-03-09 02:19:48 -05:00
- [x] Database schema initialization
2026-03-09 00:11:31 -05:00
- [x] Pedigree tree rendering
- [x] Zoom/pan controls
2026-03-09 00:35:17 -05:00
- [x] UI layout fixes
- [x] Error handling for API failures
2026-03-09 02:19:48 -05:00
- [x] Parent relationship creation via parents table
2026-03-09 20:20:43 -05:00
- [x] Brand logo display and sizing
- [x] Gradient title rendering
- [x] Static asset serving in prod and dev
2026-03-09 23:19:15 -05:00
- [ ] Champion toggle − DogForm save/load round-trip
- [ ] Champion badge − offspring card display
- [ ] Kennel settings − save + navbar name update
2026-03-09 20:40:45 -05:00
- [ ] Trial pairing simulator (end-to-end)
- [ ] Heat cycle calendar (start cycle, detail modal, whelping)
2026-03-09 21:44:10 -05:00
- [ ] Projected whelping calendar identifier (whelp cells, due label, banner)
2026-03-09 23:19:15 -05:00
- [ ] Health records — OFA clearance CRUD
- [ ] Genetic panel — DNA marker entry and display
- [ ] Eligibility checker — badge and litter gate
2026-03-08 23:04:56 -05:00
### Known Issues
- None currently
---
## How to Contribute
2026-03-09 20:40:45 -05:00
1. Pick a feature from "Next Up" above
2026-03-09 22:47:31 -05:00
2. Create a feature branch off `master` : `feat/feature-name`
2026-03-08 23:04:56 -05:00
3. Implement with tests
2026-03-09 20:40:45 -05:00
4. Update this roadmap and README.md
5. Submit PR for review
2026-03-08 23:04:56 -05:00
## Version History
2026-03-09 23:19:15 -05:00
- **v0.7.0** (In Progress) - Phase 4b: Health & Genetics
- OFA clearance tracking (Hip, Elbow, Heart, Eyes + CHIC number)
- DNA genetic panel (PRA, ICH, NCL, DM, MD variants)
- Cancer lineage & longevity tracking
- Breeding eligibility checker (GRCA + CHIC gates)
2026-03-09 22:47:31 -05:00
- **v0.6.0** (March 9, 2026) - Champion Bloodline, Settings, Build Fixes
- `is_champion` flag on dogs table with ALTER TABLE migration guard
- Champion toggle in DogForm; `✪` suffix in parent dropdowns; offspring badge
- Kennel settings table + `GET/PUT /api/settings` + `SettingsProvider`
- `useSettings.jsx` rename (Vite build fix)
- `server/index.js` fix: `initDatabase()` no-arg, duplicate health route removed
- `server/routes/settings.js` rewrite: double-encoded base64 + wrong schema fixed
2026-03-09 21:44:10 -05:00
- **v0.5.1** (March 9, 2026) - Projected Whelping Calendar Identifier
- Indigo whelp window cells (days 58– 65) on month grid
- Indigo dot marker on exact expected whelp day (day 63)
- `Baby` icon + "[Name] due" label in whelp day cells
- "Whelp est." range row on active cycle cards
- Jump-to-whelp-month button on cycle cards
- Live whelp preview in Cycle Detail modal (client-side, instant)
- Full-width whelping banner when projected whelps exist
- "Projected Whelp" legend entry + updated page subtitle
2026-03-09 20:40:45 -05:00
- **v0.5.0** (March 9, 2026) - Breeding Tools Complete
- Trial Pairing Simulator: COI calculator, risk badge, common ancestors
2026-03-09 22:47:31 -05:00
- Heat Cycle Calendar: month grid, phase color coding, start-cycle modal
2026-03-09 20:40:45 -05:00
- Cycle Detail: breeding windows, inline breeding date, whelping estimate
- New API: `GET /heat-cycles` , `GET /heat-cycles/:id/suggestions`
- Progesterone tracking moved to extended backlog
2026-03-09 20:20:43 -05:00
- **v0.4.1** (March 9, 2026) - Branding & Header Improvements
- Custom br-logo.png in navbar
- Gold-to-rusty-red gradient title
- Static asset serving via Express
- Vite dev proxy for /static
- Route fix for static/uploads paths
- Logo 1:1 aspect ratio fix
- **v0.4.0** (March 9, 2026) - Clean Database Schema
2026-03-09 02:19:48 -05:00
- Complete database overhaul with clean normalized design
- Removed migrations, fresh init only
- Parents table for relationships
- Comprehensive documentation
- **v0.3.1** - UI Fixes & Error Handling
2026-03-09 00:35:17 -05:00
- Fixed blank screen issue on Add Dog modal
- Improved parent selection layout
- Added comprehensive error handling
- Enhanced visual design with proper spacing
- **v0.3.0** - Litter Management & Interactive Pedigree
2026-03-09 00:11:31 -05:00
- Added litter_id to dogs table
- Implemented LitterForm component
- Created PedigreeView with React-D3-Tree
- Enhanced DogForm with dual parent selection
- Fixed "no such column: sire" error
- Added comprehensive documentation
- **v0.2.0** - Dog CRUD operations complete
- **v0.1.0** - Initial foundation with API and database