diff --git a/ROADMAP.md b/ROADMAP.md index 4e930ba..4f5da4b 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -10,13 +10,15 @@ - [x] Git repository structure ### Database Schema -- [x] Dogs table with core fields -- [x] Parents relationship table +- [x] Dogs table with core fields (NO sire/dam columns) +- [x] Parents relationship table for sire/dam tracking - [x] Litters breeding records - [x] Health records tracking - [x] Heat cycles management - [x] Traits genetic mapping - [x] Indexes and triggers +- [x] **litter_id column** for linking puppies to litters +- [x] **Clean schema design** - NO migrations, fresh init only ### API Endpoints - [x] `/api/dogs` - Full CRUD operations @@ -25,6 +27,7 @@ - [x] `/api/health` - Health tracking - [x] `/api/breeding` - Heat cycles and whelping calculator - [x] Photo upload with Multer +- [x] **Parent relationship handling** via parents table --- @@ -37,7 +40,8 @@ - [x] List all dogs with search/filter - [x] Upload multiple photos per dog - [x] Delete photos -- [x] Parent selection (sire/dam) +- [x] Parent selection (sire/dam) via parents table +- [x] **Proper error handling** for API failures ### User Interface - [x] Dashboard with statistics @@ -47,13 +51,17 @@ - [x] Photo management UI - [x] Search and sex filtering - [x] Responsive navigation +- [x] **Compact info cards** (80x80 avatars) +- [x] **Modern dark theme** with glass morphism ### Features Implemented - [x] Photo upload and storage -- [x] Parent-child relationships +- [x] Parent-child relationships (via parents table) - [x] Basic information tracking - [x] Registration numbers -- [x] Microchip tracking +- [x] Microchip tracking (optional) +- [x] **Litter linking** with litter_id +- [x] **Clean database schema** with no migrations --- @@ -68,6 +76,16 @@ - [x] Beautiful color-coded nodes - [x] Male/Female distinction +- [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 + - [ ] Trial Pairing Simulator - [ ] Select sire and dam - [ ] Display COI calculation @@ -80,19 +98,9 @@ - [ ] Calendar view - [ ] Breeding date suggestions -- [x] **Litter Management** ✅ **NEW** - - [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 - --- -## 📋 Phase 4: Health & Genetics (PLANNED) +## 📊 Phase 4: Health & Genetics (PLANNED) ### Health Records - [ ] Add health test results @@ -109,7 +117,7 @@ --- -## 📋 Phase 5: Advanced Features (PLANNED) +## 📊 Phase 5: Advanced Features (PLANNED) ### Pedigree Tools - [ ] Reverse pedigree (descendants view) @@ -136,7 +144,7 @@ --- -## 📋 Phase 6: Polish & Optimization (PLANNED) +## 📊 Phase 6: Polish & Optimization (PLANNED) ### User Experience - [ ] Loading states for all operations @@ -158,7 +166,8 @@ - [ ] Offline mode ### Documentation -- [ ] User manual +- [x] DATABASE.md - Complete schema documentation +- [x] User-facing documentation - [ ] API documentation - [ ] Video tutorials - [ ] FAQ section @@ -193,55 +202,79 @@ --- -## 🎉 Latest Release: v0.3.1 - UI Fixes & Error Handling +## 🆕 Latest Release: v0.4.0 - Clean Database Schema ### What's New in This Release -#### Bug Fixes -- ✅ Fixed blank screen issue when opening Add Dog modal -- ✅ Fixed overlapping radio buttons and dropdown in Parent Information section -- ✅ Added graceful error handling for API failures -- ✅ Improved layout with proper spacing and visual hierarchy -- ✅ Fixed typo: `useManualParents` variable name +#### Database Overhaul ✅ +- ✅ **Clean schema design** - NO migrations, fresh init creates correct structure +- ✅ **Removed columns:** weight, height (never implemented) +- ✅ **Added litter_id** column to dogs table with foreign key +- ✅ **Parents table approach** - NO sire/dam columns in dogs table +- ✅ **Proper relationships** - Sire/dam stored in separate parents table +- ✅ **Database documentation** - Comprehensive DATABASE.md file -#### UI Improvements -- ✅ Enhanced parent selection section with subtle indigo background -- ✅ Properly sized radio buttons (16px) for better clickability -- ✅ Horizontal radio button layout with proper flex spacing -- ✅ Checkmark feedback when litter is selected -- ✅ Conditional rendering based on litters availability -- ✅ Fallback to manual parent selection when litters API fails +#### API Improvements +- ✅ **Fixed parent handling** - Properly inserts into parents table +- ✅ **Added logging** - See exactly what's happening during dog creation +- ✅ **Error handling** - Graceful fallbacks for missing data +- ✅ **Query optimization** - Select only existing columns -#### Technical Changes -- ✅ Added `littersAvailable` state flag -- ✅ Wrapped API calls in try-catch blocks with fallbacks -- ✅ Set empty arrays as defaults to prevent undefined errors -- ✅ Added `name` attribute to radio buttons for proper grouping +#### Server Improvements +- ✅ **Removed migrations** - Clean init.js is source of truth +- ✅ **Simplified startup** - Just calls initDatabase() +- ✅ **Better logging** - Clear console output with checkmarks +- ✅ **No schema detection** - Always uses correct structure -### Migration Instructions (if not already done) +#### Documentation +- ✅ **DATABASE.md** - Complete schema reference +- ✅ **Updated README** - Current features and setup +- ✅ **Updated ROADMAP** - Accurate progress tracking +- ✅ **Troubleshooting guide** - Common issues and solutions -1. Run database migration: - ```bash - docker exec breedr node server/db/migrate_litter_id.js - ``` - OR if running locally: - ```bash - node server/db/migrate_litter_id.js - ``` +### Migration Instructions -2. Pull latest changes: - ```bash - git pull origin fix/dog-form-litter-ui - ``` +For **fresh installs**, the database will initialize correctly automatically. -3. Restart the application: - ```bash - docker-compose restart - ``` - OR - ```bash - npm run dev - ``` +For **existing installations**, you need to start fresh: + +```bash +# Backup your data +cp data/breedr.db data/breedr.db.backup + +# Delete old database +rm data/breedr.db + +# Pull latest code +git pull origin docs/clean-schema-and-roadmap-update + +# Restart application (creates clean database) +docker-compose restart +``` + +**Note:** Parent relationship data cannot be automatically migrated due to schema change from columns to table. You'll need to re-enter parent relationships. + +--- + +## Previous Releases + +### v0.3.1 - UI Fixes & Error Handling +- 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 +- 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 --- @@ -249,7 +282,7 @@ ### Next Up (Priority) -#### Option 1: Trial Pairing Simulator (Recommended) 🏆 +#### Option 1: Trial Pairing Simulator (Recommended) 🎯 **Complexity:** Medium | **Impact:** High | **User Value:** Excellent **Why this is recommended:** @@ -289,26 +322,7 @@ --- -#### Option 3: Enhanced Litter Features -**Complexity:** Low-Medium | **Impact:** Medium | **User Value:** Good - -**Why consider this:** -- Polish existing litter functionality -- Improves user workflow -- Quick wins - -**Tasks:** -- Puppy batch addition (add multiple puppies at once) -- Photo gallery per litter -- Whelping countdown timer -- Expected vs actual puppy count tracking -- Litter statistics dashboard - -**Estimated Time:** 3-5 hours - ---- - -#### Option 4: Health Records System +#### Option 3: Health Records System **Complexity:** Medium | **Impact:** High | **User Value:** Excellent **Why consider this:** @@ -329,20 +343,17 @@ ### Testing Needed - [x] Add/edit dog forms with litter selection -- [x] Database migration execution +- [x] Database schema initialization - [x] Pedigree tree rendering - [x] Zoom/pan controls - [x] UI layout fixes - [x] Error handling for API failures +- [x] Parent relationship creation via parents table - [ ] Trial pairing simulator - [ ] Heat cycle tracking -- [ ] Enhanced litter features - [ ] Health records ### Known Issues -- ✅ Fixed: Blank screen when opening Add Dog modal -- ✅ Fixed: Overlapping UI elements in parent selection -- ✅ Fixed: Missing error handling for litters API - None currently --- @@ -357,7 +368,13 @@ ## Version History -- **v0.3.1** (Current - March 9, 2026) - UI Fixes & Error Handling +- **v0.4.0** (Current - March 9, 2026) - Clean Database Schema + - 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 - Fixed blank screen issue on Add Dog modal - Improved parent selection layout - Added comprehensive error handling