Files
breedr/ROADMAP.md
T
Jason Stedwell a06ddf0435
Build and Push Docker Image / build (push) Successful in 16s
Docs: bring all documentation current with v0.8.1
- README: v0.8.1 highlights, Node 18+ requirement + client install step for
  manual dev setup, health/genetics features listed, release summary updated
- API.md: paginated response shapes for dogs/litters, validation + status-code
  behavior (400/404), full breeding heat-cycle CRUD, genetics PUT/DELETE,
  pedigree COI/relations/cancer-lineage endpoints, corrected Litter object
- DEVELOPMENT.md: two-layer migration approach documented with schema-drift
  warning, heat_cycles/cancer_history tables, Toast/ConfirmDialog UI patterns
  (no alert/window.confirm), full env-var table, auth-deferred decision noted
- INSTALL.md: fixed API smoke-test (old /api/health root path doesn't exist),
  master -> main
- ROADMAP: v0.8.1 entry; Phase 4b checkboxes reconciled with what's actually
  built; Phase 6 progress; pre-deploy prod-DB check added to QA list

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 15:43:23 -05:00

7.6 KiB
Raw Blame History

BREEDR Development Roadmap (v0.8.1)

🚀 Current Status: v0.8.1 (Active Development)

🔜 Next Up — Phase 4b: Health & Genetics (remaining items)

Context: Golden Retriever health clearances follow GRCA Code of Ethics and OFA/CHIC standards.

Step 1: DB Schema Extensions

  • Extend health_records table with OFA-specific columns (test_type, result, ofa_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

  • Health record CRUD (/api/health) + document upload (POST /api/health/upload)
  • GET /api/health/dog/:dogId/clearance-summary
  • GET /api/health/dog/:dogId/chic-eligible
  • Genetics CRUD (/api/genetics)
  • GET /api/genetics/pairing-risk (sire + dam carrier check)
  • Cancer history endpoints

Step 3: Core UI — Health Records

  • HealthRecordForm modal (per-type fields, result, OFA#, expiry, doc upload, age validation)
  • HealthTimeline on DogDetail page (records list exists; timeline view pending)
  • ClearanceSummaryCard 2×2 grid (Hip / Elbow / Heart / Eyes)
  • ChicStatusBadge on dog cards
  • Expiry logic for recurring tests (CAER, echo) in clearance summary

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 computed in clearance summary)
  • Eligibility badge on dog cards
  • Pre-litter eligibility warning modal

🕒 Version History & Recent Progress

  • v0.8.1 (July 6, 2026) - Sanity, Hardening & UX Pass (LATEST)

    • Fresh-install fix: heat_cycles table + litters/health_records columns added to init.js (schema had drifted from route usage); migration runner no-ops on empty DBs; DB_PATH honored consistently
    • Deps: better-sqlite3 9→11 (Node 1824 prebuilds); removed unused auth deps (bcrypt, jsonwebtoken, express-validator, express-rate-limit) — auth deliberately deferred
    • API hardening: sire/dam existence + sex validation, 404 on missing-dog updates, transactional multi-step writes, safe photo_urls parsing, photo-index bounds check
    • UX layer: toast notifications (replaces all alert()), ConfirmDialog (replaces all window.confirm()), load-error banners with Retry (Promise.allSettled loaders), 404 page, nav active-state on detail routes
    • Fixes: Start Heat Cycle female list was always empty (wrong response key); live OFA age warning in health form; puppy sorting; mobile responsiveness (375px clean on all pages)
    • Removed dead debug scripts (test_app.js, test_express.js)
  • v0.8.0 (March 12, 2026) - Reverse Pedigree & External Parentage

    • Reverse Pedigree (descendants view) toggle on Pedigree page
    • External dog parentage improvements (allowed assigning sire/dam to external dogs)
    • Universal parent selection (sire/dam dropdowns now include all dogs)
    • Updated documentation and roadmap
  • 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)
    • Health Record modal overhaul (July 6, 2026):
      • Per-record-type field sets (OFA / vaccination / exam / surgery / medication / other)
      • Result options scoped to the selected test; blank default (no fabricated clearances)
      • Added Thyroid & Patella OFA tests; expiry only shown for recurring tests (CAER, advanced cardiac)
      • Date & 24-month age validation on OFA hip/elbow
      • Unified clinician field (performed_by); deprecated vet_name
      • DNA removed as a health test_type (owned solely by Genetics module)
      • Delete action on the health records list
      • Document upload (PDF/image) via POST /api/health/upload
  • v0.6.1 (March 10, 2026) - COI Direct-Relation Fix

    • Fixed calculateCOI to correctly compute coefficient for parent×offspring pairings (~25%)
    • Removed blanket sire exclusion in ancestor mapping logic
  • 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 fixed
  • v0.5.1 (March 9, 2026) - Projected Whelping Calendar

    • Indigo whelp window cells (days 5865) on month grid
    • Baby icon + "[Name] due" label in whelp day cells
    • Live whelp preview in Cycle Detail modal
  • v0.5.0 (March 9, 2026) - Breeding Tools

    • Trial Pairing Simulator: COI calculator, risk badge, common ancestors
    • Heat Cycle Calendar: month grid, phase color coding, suggestions

📋 Future Roadmap

Phase 5: Advanced Features (IN PROGRESS)

  • Reverse pedigree (descendants view)
  • PDF pedigree generation
  • Export to standard formats (CSV, JSON)
  • Print-friendly layouts
  • Multi-generation COI analysis

📅 Phase 6: Polish & Optimization

  • User Experience: Toasts, confirmation dialogs, load-error banners with retry (v0.8.1)
  • User Experience: Undo functionality
  • Performance: Image optimization, lazy loading, API caching, pedigree recursive-CTE query (known N+1 on deep trees)
  • Mobile: Responsive layouts across all pages at phone width (v0.8.1)
  • Mobile: Mobile photo capture
  • Documentation: API reference kept current (API.md)
  • Security: Authentication/rate limiting if the app is ever exposed beyond the LAN (deps intentionally removed in v0.8.1)

Completed Milestones

Phase 1: Foundation

  • Docker multi-stage build & SQLite database
  • Express.js API server & React 18 frontend
  • Parents relationship table for sire/dam tracking

Phase 2: Core Functionality

  • Dog Management (Full CRUD, photo uploads)
  • Modern dark theme with glass morphism
  • Branded navigation with custom logo

Phase 3: Breeding Tools

  • Interactive pedigree tree visualization (React-D3-Tree)
  • Litter Management & linking puppies
  • Trial Pairing Simulator & Heat Cycle Calendar
  • Projected Whelping identifiers

Phase 4a: Champion & Settings

  • Champion bloodline tracking and badges
  • Universal Kennel Settings system

🏃 Testing & Quality Assurance

  • Database schema initialization guards (verified against a virgin database, v0.8.1)
  • Pedigree tree rendering & zoom/pan
  • Parent relationship creation logic (+ sex/existence validation, v0.8.1)
  • Static asset serving (prod/dev)
  • Heat cycle CRUD on fresh DB (v0.8.1)
  • Health records CRUD + document upload (v0.8.1)
  • Champion toggle load/save trip
  • Boot against a copy of the production DB after schema changes (pre-deploy check)

How to Contribute

  1. Pick a feature from "Next Up" above
  2. Create a feature branch off main: feat/feature-name
  3. Implement with tests and update this roadmap
  4. Submit PR for review

Last Updated: July 6, 2026