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 21:44:10 -05:00
|
|
|
|
- [x] **Projected Whelping Calendar Identifier** ✅ *(March 9, 2026 — v0.5.1)*
|
|
|
|
|
|
- [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 22:47:31 -05:00
|
|
|
|
## ✅ Phase 4a: Champion & Settings (COMPLETE — v0.6.0)
|
|
|
|
|
|
|
|
|
|
|
|
### 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
|
|
|
|
|
|
- [x] `GET /api/settings` — returns single-row as flat JSON object
|
|
|
|
|
|
- [x] `PUT /api/settings` — partial update via `ALLOWED_KEYS` whitelist
|
|
|
|
|
|
- [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)
|
|
|
|
|
|
- [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
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 📋 Phase 4b: Health & Genetics (NEXT UP)
|
|
|
|
|
|
|
|
|
|
|
|
### Health Records *(Priority 1)* 🚨
|
2026-03-09 20:40:45 -05:00
|
|
|
|
- [ ] Health records list view per dog
|
|
|
|
|
|
- [ ] Add/edit health test results
|
|
|
|
|
|
- [ ] Vaccination tracking with expiry alerts
|
|
|
|
|
|
- [ ] Medical history timeline view
|
2026-03-08 23:04:56 -05:00
|
|
|
|
- [ ] Document uploads (PDFs, images)
|
2026-03-09 20:40:45 -05:00
|
|
|
|
- [ ] Health clearance status badges on dog cards
|
2026-03-08 23:04:56 -05:00
|
|
|
|
|
2026-03-09 22:47:31 -05:00
|
|
|
|
**Complexity:** Medium | **Impact:** High | **User Value:** Excellent
|
|
|
|
|
|
|
|
|
|
|
|
**Why this is recommended:**
|
|
|
|
|
|
- Natural complement to existing dog profiles
|
|
|
|
|
|
- Vaccination expiry alerts are high day-to-day utility
|
|
|
|
|
|
- Clearance badges on dog cards improve trust at a glance
|
|
|
|
|
|
- Builds toward breeding decision support
|
|
|
|
|
|
|
|
|
|
|
|
**Estimated Time:** 6-8 hours
|
|
|
|
|
|
|
|
|
|
|
|
### Genetic Trait Tracking *(Priority 2)*
|
2026-03-08 23:04:56 -05:00
|
|
|
|
- [ ] Track inherited traits
|
|
|
|
|
|
- [ ] Color genetics calculator
|
|
|
|
|
|
- [ ] Health clearance status
|
|
|
|
|
|
- [ ] Link traits to ancestors
|
|
|
|
|
|
|
2026-03-09 22:47:31 -05:00
|
|
|
|
**Estimated Time:** 5-7 hours
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
### Advanced Genetics
|
|
|
|
|
|
- [ ] DNA test result tracking
|
|
|
|
|
|
- [ ] Genetic diversity analysis
|
|
|
|
|
|
- [ ] Breed-specific calculators
|
|
|
|
|
|
- [ ] Health risk predictions
|
|
|
|
|
|
|
|
|
|
|
|
### Kennel Management
|
|
|
|
|
|
- [ ] Breeding contracts
|
|
|
|
|
|
- [ ] Buyer tracking
|
|
|
|
|
|
- [ ] Financial records
|
|
|
|
|
|
- [ ] Stud service management
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-03-09 22:47:31 -05:00
|
|
|
|
## 📅 Current Sprint: v0.7.0
|
|
|
|
|
|
|
|
|
|
|
|
### ✅ Completed This Sprint (v0.6.0)
|
|
|
|
|
|
- [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
|
|
|
|
|
|
- [x] `useSettings.jsx` rename (Vite build fix)
|
|
|
|
|
|
- [x] `server/index.js` fix — `initDatabase()` no-arg call, duplicate health route removed
|
|
|
|
|
|
- [x] `server/routes/settings.js` rewrite — fixed double-encoded base64 + wrong key/value schema
|
2026-03-09 00:11:31 -05:00
|
|
|
|
|
2026-03-09 22:47:31 -05:00
|
|
|
|
### ✅ Previously Completed (v0.5.1)
|
2026-03-09 21:44:10 -05:00
|
|
|
|
- [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
|
|
|
|
|
|
|
2026-03-09 22:47:31 -05:00
|
|
|
|
### 🔜 Next Up (Priority Order)
|
2026-03-09 00:11:31 -05:00
|
|
|
|
|
2026-03-09 22:47:31 -05:00
|
|
|
|
#### Option 1: Health Records System (Recommended) 🚨
|
2026-03-09 00:35:17 -05:00
|
|
|
|
**Complexity:** Medium | **Impact:** High | **User Value:** Excellent
|
|
|
|
|
|
|
|
|
|
|
|
**Tasks:**
|
2026-03-09 20:40:45 -05:00
|
|
|
|
- Create `HealthRecordForm` component
|
|
|
|
|
|
- Health records list/timeline per dog on DogDetail page
|
|
|
|
|
|
- Vaccination tracking with expiry date + alert badge
|
|
|
|
|
|
- Health clearance status badges (OFA, CERF, etc.)
|
|
|
|
|
|
- Optional document/PDF upload
|
2026-03-09 00:35:17 -05:00
|
|
|
|
|
|
|
|
|
|
**Estimated Time:** 6-8 hours
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-03-09 20:40:45 -05:00
|
|
|
|
#### Option 2: Genetic Trait Tracking
|
|
|
|
|
|
**Complexity:** Medium | **Impact:** Medium | **User Value:** Good
|
2026-03-09 00:35:17 -05:00
|
|
|
|
|
|
|
|
|
|
**Tasks:**
|
2026-03-09 20:40:45 -05:00
|
|
|
|
- Trait entry form (coat color, pattern, carried traits)
|
|
|
|
|
|
- Display traits on dog detail page
|
|
|
|
|
|
- Predicted trait calculator for trial pairings
|
2026-03-09 00:35:17 -05:00
|
|
|
|
|
2026-03-09 20:40:45 -05:00
|
|
|
|
**Estimated Time:** 5-7 hours
|
2026-03-09 00:35:17 -05:00
|
|
|
|
|
|
|
|
|
|
---
|
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 22:47:31 -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 00:35:17 -05:00
|
|
|
|
- [ ] Health records
|
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 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
|