Docs: bring all documentation current with v0.8.1
Build and Push Docker Image / build (push) Successful in 16s
Build and Push Docker Image / build (push) Successful in 16s
- 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>
This commit is contained in:
+48
-36
@@ -1,39 +1,39 @@
|
||||
# BREEDR Development Roadmap (v0.8.0)
|
||||
# BREEDR Development Roadmap (v0.8.1)
|
||||
|
||||
## 🚀 Current Status: v0.8.0 (Active Development)
|
||||
## 🚀 Current Status: v0.8.1 (Active Development)
|
||||
|
||||
### 🔜 Next Up — Phase 4b: Health & Genetics Build Order
|
||||
### 🔜 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, 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 1: DB Schema Extensions ✅
|
||||
- [x] Extend `health_records` table with OFA-specific columns (test_type, result, ofa_number, expires_at, document_url)
|
||||
- [x] Create `genetic_tests` table (PRA, ICH, NCL, DM, MD, GR-PRA variants)
|
||||
- [x] Create `cancer_history` table
|
||||
- [x] Add `chic_number`, `age_at_death`, `cause_of_death` to `dogs` table
|
||||
- [x] 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 2: API Layer ✅
|
||||
- [x] Health record CRUD (`/api/health`) + document upload (`POST /api/health/upload`)
|
||||
- [x] `GET /api/health/dog/:dogId/clearance-summary`
|
||||
- [x] `GET /api/health/dog/:dogId/chic-eligible`
|
||||
- [x] Genetics CRUD (`/api/genetics`)
|
||||
- [x] `GET /api/genetics/pairing-risk` (sire + dam carrier check)
|
||||
- [x] 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)
|
||||
- [x] `HealthRecordForm` modal (per-type fields, result, OFA#, expiry, doc upload, age validation)
|
||||
- [ ] `HealthTimeline` on DogDetail page (records list exists; timeline view pending)
|
||||
- [x] `ClearanceSummaryCard` 2×2 grid (Hip / Elbow / Heart / Eyes)
|
||||
- [ ] `ChicStatusBadge` on dog cards
|
||||
- [ ] Expiry alert badges (90-day warning, expired)
|
||||
- [x] 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 4: Core UI — Genetics Panel ✅
|
||||
- [x] `GeneticTestForm` modal
|
||||
- [x] `GeneticPanelCard` on DogDetail (color-coded markers)
|
||||
- [x] Pairing risk overlay on Trial Pairing Simulator
|
||||
|
||||
#### Step 5: Eligibility Checker
|
||||
- [ ] Eligibility logic (`grca_eligible`, `chic_eligible` computed fields)
|
||||
- [x] Eligibility logic (`grca_eligible` computed in clearance summary)
|
||||
- [ ] Eligibility badge on dog cards
|
||||
- [ ] Pre-litter eligibility warning modal
|
||||
|
||||
@@ -41,7 +41,15 @@
|
||||
|
||||
## 🕒 Version History & Recent Progress
|
||||
|
||||
- **v0.8.0** (March 12, 2026) - Reverse Pedigree & External Parentage (LATEST)
|
||||
- **v0.8.1** (July 6, 2026) - Sanity, Hardening & UX Pass (LATEST)
|
||||
- [x] **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
|
||||
- [x] **Deps**: better-sqlite3 9→11 (Node 18–24 prebuilds); removed unused auth deps (bcrypt, jsonwebtoken, express-validator, express-rate-limit) — auth deliberately deferred
|
||||
- [x] **API hardening**: sire/dam existence + sex validation, 404 on missing-dog updates, transactional multi-step writes, safe `photo_urls` parsing, photo-index bounds check
|
||||
- [x] **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
|
||||
- [x] **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)
|
||||
- [x] Removed dead debug scripts (`test_app.js`, `test_express.js`)
|
||||
|
||||
- **v0.8.0** (March 12, 2026) - Reverse Pedigree & External Parentage
|
||||
- [x] **Reverse Pedigree** (descendants view) toggle on Pedigree page
|
||||
- [x] **External dog parentage** improvements (allowed assigning sire/dam to external dogs)
|
||||
- [x] **Universal parent selection** (sire/dam dropdowns now include all dogs)
|
||||
@@ -95,10 +103,13 @@
|
||||
- [ ] Multi-generation COI analysis
|
||||
|
||||
### 📅 Phase 6: Polish & Optimization
|
||||
- [ ] **User Experience**: Loading states, better error messages, undo functionality
|
||||
- [ ] **Performance**: Image optimization, lazy loading, API caching
|
||||
- [ ] **Mobile**: Touch-friendly interface, mobile photo capture
|
||||
- [ ] **Documentation**: API technical docs, video tutorials
|
||||
- [x] **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)
|
||||
- [x] **Mobile**: Responsive layouts across all pages at phone width (v0.8.1)
|
||||
- [ ] **Mobile**: Mobile photo capture
|
||||
- [x] **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)
|
||||
|
||||
---
|
||||
|
||||
@@ -127,21 +138,22 @@
|
||||
---
|
||||
|
||||
## 🏃 Testing & Quality Assurance
|
||||
- [x] Database schema initialization guards
|
||||
- [x] Database schema initialization guards (verified against a virgin database, v0.8.1)
|
||||
- [x] Pedigree tree rendering & zoom/pan
|
||||
- [x] Parent relationship creation logic
|
||||
- [x] Parent relationship creation logic (+ sex/existence validation, v0.8.1)
|
||||
- [x] Static asset serving (prod/dev)
|
||||
- [x] Heat cycle CRUD on fresh DB (v0.8.1)
|
||||
- [x] Health records CRUD + document upload (v0.8.1)
|
||||
- [ ] Champion toggle load/save trip
|
||||
- [ ] Heat cycle calendar whelping logic
|
||||
- [ ] Health records OFA clearance CRUD (Upcoming)
|
||||
- [ ] 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 `master`: `feat/feature-name`
|
||||
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: March 12, 2026*
|
||||
*Last Updated: July 6, 2026*
|
||||
|
||||
Reference in New Issue
Block a user