Merge pull request 'feat/whelping-calendar-identifier' (#28) from feat/whelping-calendar-identifier into master
Some checks failed
Build & Publish Docker Image / build-and-push (push) Has been cancelled
Some checks failed
Build & Publish Docker Image / build-and-push (push) Has been cancelled
Reviewed-on: #28
This commit was merged in pull request #28.
This commit is contained in:
35
README.md
35
README.md
@@ -14,7 +14,7 @@ A reactive, interactive dog breeding genealogy mapping system for professional k
|
|||||||
- **✅ Search & Filter** - Find dogs by name, breed, sex, and more
|
- **✅ Search & Filter** - Find dogs by name, breed, sex, and more
|
||||||
- **✅ Branded Navigation** - Custom logo (br-logo.png) with gold-to-rusty-red gradient title
|
- **✅ Branded Navigation** - Custom logo (br-logo.png) with gold-to-rusty-red gradient title
|
||||||
- **✅ Trial Pairing Simulator** - COI calculator with common ancestors table and risk badge
|
- **✅ Trial Pairing Simulator** - COI calculator with common ancestors table and risk badge
|
||||||
- **✅ Heat Cycle Calendar** - Month grid calendar with cycle windows and breeding date suggestions
|
- **✅ Heat Cycle Calendar** - Month grid calendar with cycle windows, breeding date suggestions, and **projected whelping identifiers**
|
||||||
|
|
||||||
### Database Architecture
|
### Database Architecture
|
||||||
- **✅ Clean Schema** - No migrations, fresh installs create correct structure
|
- **✅ Clean Schema** - No migrations, fresh installs create correct structure
|
||||||
@@ -24,7 +24,18 @@ A reactive, interactive dog breeding genealogy mapping system for professional k
|
|||||||
- **✅ Heat Cycles** - Breeding cycle tracking
|
- **✅ Heat Cycles** - Breeding cycle tracking
|
||||||
- **✅ Genetic Traits** - Inherited trait mapping
|
- **✅ Genetic Traits** - Inherited trait mapping
|
||||||
|
|
||||||
### Recently Added (March 9, 2026)
|
### Recently Added (March 9, 2026 — v0.5.1)
|
||||||
|
- **✅ Projected Whelp Window on Calendar** - Indigo/purple day cells (days 58–65 from breeding date) visible directly on the month grid
|
||||||
|
- **✅ Expected Whelp Day Marker** - Indigo dot on the exact expected whelp day (day 63) alongside the green breeding dot
|
||||||
|
- **✅ "[Name] due" Cell Label** - Baby 🍼 icon + dog name label inside the whelp day cell
|
||||||
|
- **✅ Active Cycle Card — Whelp Range** - "Whelp est. [date]" row with earliest–latest range shown on each active cycle card
|
||||||
|
- **✅ Jump-to-Whelp-Month Button** - One-click navigation to the whelp month when it differs from current view
|
||||||
|
- **✅ Live Whelp Preview in Modal** - Instant client-side earliest/expected/latest preview as soon as a breeding date is entered (no save required)
|
||||||
|
- **✅ Whelping Banner** - Full-width indigo banner listing dogs with projected whelps when no active heat cycles are visible
|
||||||
|
- **✅ Legend Entry** - "Projected Whelp" added to calendar legend
|
||||||
|
- **✅ Updated Page Subtitle** - Now reads: *"Track heat cycles, optimal breeding windows, and projected whelping dates"*
|
||||||
|
|
||||||
|
### Previously Added (March 9, 2026 — v0.5.0)
|
||||||
- **✅ Heat Cycle Calendar** - Full month grid with color-coded cycle windows (Proestrus / Optimal / Late Estrus / Diestrus)
|
- **✅ Heat Cycle Calendar** - Full month grid with color-coded cycle windows (Proestrus / Optimal / Late Estrus / Diestrus)
|
||||||
- **✅ Start Cycle Modal** - Click any day or the header button to log a new heat cycle for a female
|
- **✅ Start Cycle Modal** - Click any day or the header button to log a new heat cycle for a female
|
||||||
- **✅ Breeding Date Suggestions** - Phase windows with date ranges loaded from `GET /api/breeding/heat-cycles/:id/suggestions`
|
- **✅ Breeding Date Suggestions** - Phase windows with date ranges loaded from `GET /api/breeding/heat-cycles/:id/suggestions`
|
||||||
@@ -33,7 +44,7 @@ A reactive, interactive dog breeding genealogy mapping system for professional k
|
|||||||
- **✅ Pairing Nav Link** - `FlaskConical` icon added to navbar
|
- **✅ Pairing Nav Link** - `FlaskConical` icon added to navbar
|
||||||
- **✅ New API Endpoints** - `GET /api/breeding/heat-cycles`, `GET /api/breeding/heat-cycles/:id/suggestions`
|
- **✅ New API Endpoints** - `GET /api/breeding/heat-cycles`, `GET /api/breeding/heat-cycles/:id/suggestions`
|
||||||
|
|
||||||
### Previously Added (March 9, 2026)
|
### Previously Added (March 9, 2026 — v0.4.x)
|
||||||
- **✅ Brand Logo** - Custom `br-logo.png` in navbar replacing generic icon
|
- **✅ Brand Logo** - Custom `br-logo.png` in navbar replacing generic icon
|
||||||
- **✅ Gradient Title** - Gold-to-rusty-red gradient on "BREEDR" brand text
|
- **✅ Gradient Title** - Gold-to-rusty-red gradient on "BREEDR" brand text
|
||||||
- **✅ Static Asset Serving** - `/static` directory served by Express for branding assets
|
- **✅ Static Asset Serving** - `/static` directory served by Express for branding assets
|
||||||
@@ -141,7 +152,7 @@ breedr/
|
|||||||
├── client/ # React frontend
|
├── client/ # React frontend
|
||||||
│ ├── src/
|
│ ├── src/
|
||||||
│ │ ├── pages/
|
│ │ ├── pages/
|
||||||
│ │ │ ├── BreedingCalendar.jsx # Heat cycle calendar (month grid)
|
│ │ │ ├── BreedingCalendar.jsx # Heat cycle calendar + whelping identifiers
|
||||||
│ │ │ ├── PairingSimulator.jsx # Trial pairing + COI
|
│ │ │ ├── PairingSimulator.jsx # Trial pairing + COI
|
||||||
│ │ │ ├── Dashboard.jsx
|
│ │ │ ├── Dashboard.jsx
|
||||||
│ │ │ ├── DogList.jsx
|
│ │ │ ├── DogList.jsx
|
||||||
@@ -248,6 +259,10 @@ Ensure `br-logo.png` is placed in the `static/` directory at the project root. T
|
|||||||
|
|
||||||
Ensure dogs are registered with `sex: 'female'` before creating heat cycles. The API validates this and will return a 400 error for male dogs.
|
Ensure dogs are registered with `sex: 'female'` before creating heat cycles. The API validates this and will return a 400 error for male dogs.
|
||||||
|
|
||||||
|
### Whelping window not appearing on calendar
|
||||||
|
|
||||||
|
A breeding date must be logged on the cycle for whelp window cells to appear. Use the Cycle Detail modal → "Log Breeding Date" field. The whelp preview appears client-side instantly; the calendar cells populate after save.
|
||||||
|
|
||||||
## Roadmap
|
## Roadmap
|
||||||
|
|
||||||
### ✅ Completed
|
### ✅ Completed
|
||||||
@@ -264,6 +279,7 @@ Ensure dogs are registered with `sex: 'female'` before creating heat cycles. The
|
|||||||
- [x] Static asset serving
|
- [x] Static asset serving
|
||||||
- [x] Trial Pairing Simulator (COI + common ancestors + risk badge)
|
- [x] Trial Pairing Simulator (COI + common ancestors + risk badge)
|
||||||
- [x] Heat Cycle Calendar (month grid + windows + breeding suggestions + whelping estimate)
|
- [x] Heat Cycle Calendar (month grid + windows + breeding suggestions + whelping estimate)
|
||||||
|
- [x] **Projected Whelping Calendar Identifier** (whelp window cells, due label, active card range, live modal preview, whelping banner)
|
||||||
|
|
||||||
### 🔧 In Progress / Up Next
|
### 🔧 In Progress / Up Next
|
||||||
- [ ] Health Records System
|
- [ ] Health Records System
|
||||||
@@ -279,6 +295,17 @@ Ensure dogs are registered with `sex: 'female'` before creating heat cycles. The
|
|||||||
|
|
||||||
## Recent Updates
|
## Recent Updates
|
||||||
|
|
||||||
|
### March 9, 2026 - Projected Whelping Calendar Identifier (v0.5.1)
|
||||||
|
- **Added:** Indigo whelp window (days 58–65) on calendar grid cells when a breeding date is logged
|
||||||
|
- **Added:** Indigo dot marker on exact expected whelp day (day 63)
|
||||||
|
- **Added:** `Baby` icon + "[Name] due" label inside whelp day cells
|
||||||
|
- **Added:** "Whelp est. [date]" row with earliest–latest range on active cycle cards
|
||||||
|
- **Added:** Jump-to-whelp-month button on active cycle cards
|
||||||
|
- **Added:** Live whelp preview in Cycle Detail modal (client-side, instant, no save required)
|
||||||
|
- **Added:** Full-width whelping banner when projected whelps exist but no active heat cycles are visible
|
||||||
|
- **Added:** "Projected Whelp" legend entry with Baby icon
|
||||||
|
- **Updated:** Page subtitle to include projected whelping dates
|
||||||
|
|
||||||
### March 9, 2026 - Heat Cycle Calendar & Trial Pairing Simulator (v0.5.0)
|
### March 9, 2026 - Heat Cycle Calendar & Trial Pairing Simulator (v0.5.0)
|
||||||
- **Added:** Full month grid heat cycle calendar with color-coded phase windows
|
- **Added:** Full month grid heat cycle calendar with color-coded phase windows
|
||||||
- **Added:** Start Heat Cycle modal (click any day or header button)
|
- **Added:** Start Heat Cycle modal (click any day or header button)
|
||||||
|
|||||||
34
ROADMAP.md
34
ROADMAP.md
@@ -112,6 +112,19 @@
|
|||||||
- [x] `GET /api/breeding/heat-cycles` endpoint
|
- [x] `GET /api/breeding/heat-cycles` endpoint
|
||||||
- [x] `GET /api/breeding/heat-cycles/:id/suggestions` endpoint
|
- [x] `GET /api/breeding/heat-cycles/:id/suggestions` endpoint
|
||||||
|
|
||||||
|
- [x] **Projected Whelping Calendar Identifier** ✅ *(March 9, 2026 — v0.5.1)*
|
||||||
|
- [x] Gestation constants: earliest=58, expected=63, latest=65 days
|
||||||
|
- [x] `getWhelpDates(cycle)` client-side helper (no extra API call)
|
||||||
|
- [x] Indigo whelp window cells (days 58–65) on calendar grid
|
||||||
|
- [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
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📋 Phase 4: Health & Genetics (NEXT UP)
|
## 📋 Phase 4: Health & Genetics (NEXT UP)
|
||||||
@@ -225,7 +238,13 @@
|
|||||||
|
|
||||||
## 🌕 Current Sprint: v0.6.0
|
## 🌕 Current Sprint: v0.6.0
|
||||||
|
|
||||||
### ✅ Completed This Sprint (v0.5.0)
|
### ✅ Completed This Sprint (v0.5.1)
|
||||||
|
- [x] Projected Whelping Calendar Identifier — indigo whelp window cells, due label, active card range, jump-to-month button
|
||||||
|
- [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
|
||||||
|
|
||||||
|
### ✅ Previously Completed (v0.5.0)
|
||||||
- [x] Trial Pairing Simulator — `/pairing` route, COI%, risk badge, common ancestors
|
- [x] Trial Pairing Simulator — `/pairing` route, COI%, risk badge, common ancestors
|
||||||
- [x] Heat Cycle Calendar — month grid, phase color coding, start-cycle modal
|
- [x] Heat Cycle Calendar — month grid, phase color coding, start-cycle modal
|
||||||
- [x] Cycle Detail modal — breeding windows, inline breeding date, whelping estimate
|
- [x] Cycle Detail modal — breeding windows, inline breeding date, whelping estimate
|
||||||
@@ -234,7 +253,7 @@
|
|||||||
|
|
||||||
### 🔧 Next Up (Priority Order)
|
### 🔧 Next Up (Priority Order)
|
||||||
|
|
||||||
#### Option 1: Health Records System (Recommended) 👆
|
#### Option 1: Health Records System (Recommended) 💡
|
||||||
**Complexity:** Medium | **Impact:** High | **User Value:** Excellent
|
**Complexity:** Medium | **Impact:** High | **User Value:** Excellent
|
||||||
|
|
||||||
**Why this is recommended:**
|
**Why this is recommended:**
|
||||||
@@ -284,6 +303,7 @@
|
|||||||
- [x] Static asset serving in prod and dev
|
- [x] Static asset serving in prod and dev
|
||||||
- [ ] Trial pairing simulator (end-to-end)
|
- [ ] Trial pairing simulator (end-to-end)
|
||||||
- [ ] Heat cycle calendar (start cycle, detail modal, whelping)
|
- [ ] Heat cycle calendar (start cycle, detail modal, whelping)
|
||||||
|
- [ ] Projected whelping calendar identifier (whelp cells, due label, banner)
|
||||||
- [ ] Health records
|
- [ ] Health records
|
||||||
|
|
||||||
### Known Issues
|
### Known Issues
|
||||||
@@ -301,6 +321,16 @@
|
|||||||
|
|
||||||
## Version History
|
## Version History
|
||||||
|
|
||||||
|
- **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
|
||||||
|
|
||||||
- **v0.5.0** (March 9, 2026) - Breeding Tools Complete
|
- **v0.5.0** (March 9, 2026) - Breeding Tools Complete
|
||||||
- Trial Pairing Simulator: COI calculator, risk badge, common ancestors
|
- Trial Pairing Simulator: COI calculator, risk badge, common ancestors
|
||||||
- Heat Cycle Calendar: month grid, phase windows, start-cycle modal
|
- Heat Cycle Calendar: month grid, phase windows, start-cycle modal
|
||||||
|
|||||||
Reference in New Issue
Block a user