Merge pull request 'docs/update-readme-roadmap-v0.5' (#20) from docs/update-readme-roadmap-v0.5 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: #20
This commit was merged in pull request #20.
This commit is contained in:
45
README.md
45
README.md
@@ -12,6 +12,7 @@ A reactive, interactive dog breeding genealogy mapping system for professional k
|
|||||||
- **✅ Interactive Pedigree Visualization** - Multi-generational family trees with zoom/pan
|
- **✅ Interactive Pedigree Visualization** - Multi-generational family trees with zoom/pan
|
||||||
- **✅ Modern UI** - Sleek, dark-themed interface with compact info cards
|
- **✅ Modern UI** - Sleek, dark-themed interface with compact info cards
|
||||||
- **✅ 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
|
||||||
|
|
||||||
### Database Architecture
|
### Database Architecture
|
||||||
- **✅ Clean Schema** - No migrations, fresh installs create correct structure
|
- **✅ Clean Schema** - No migrations, fresh installs create correct structure
|
||||||
@@ -21,7 +22,15 @@ 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 Fixed
|
### Recently Added (March 9, 2026)
|
||||||
|
- **✅ Brand Logo** - Custom `br-logo.png` in navbar replacing generic icon
|
||||||
|
- **✅ Gradient Title** - Gold-to-rusty-red gradient on "BREEDR" brand text
|
||||||
|
- **✅ Static Asset Serving** - `/static` directory served by Express for branding assets
|
||||||
|
- **✅ Dev Proxy** - Vite dev server proxies `/static` to Express backend
|
||||||
|
- **✅ Route Fix** - `/static` and `/uploads` paths no longer fall through to React catch-all
|
||||||
|
- **✅ Logo Sizing** - Fixed brand logo to 1:1 aspect ratio square
|
||||||
|
|
||||||
|
### Previously Fixed
|
||||||
- **✅ Database Schema** - Removed weight/height columns, added litter_id
|
- **✅ Database Schema** - Removed weight/height columns, added litter_id
|
||||||
- **✅ Parent Handling** - Proper sire/dam via parents table
|
- **✅ Parent Handling** - Proper sire/dam via parents table
|
||||||
- **✅ Microchip Field** - Optional, allows multiple dogs without microchips
|
- **✅ Microchip Field** - Optional, allows multiple dogs without microchips
|
||||||
@@ -35,7 +44,7 @@ A reactive, interactive dog breeding genealogy mapping system for professional k
|
|||||||
- **Backend**: Node.js/Express API
|
- **Backend**: Node.js/Express API
|
||||||
- **Database**: SQLite (embedded, zero-config) with clean normalized schema
|
- **Database**: SQLite (embedded, zero-config) with clean normalized schema
|
||||||
- **Container**: Single Docker image with multi-stage build
|
- **Container**: Single Docker image with multi-stage build
|
||||||
- **Styling**: CSS custom properties with dark theme
|
- **Styling**: CSS custom properties with dark theme + gradient branding
|
||||||
|
|
||||||
## Quick Start
|
## Quick Start
|
||||||
|
|
||||||
@@ -72,7 +81,7 @@ cp data/breedr.db data/breedr.db.backup
|
|||||||
rm data/breedr.db
|
rm data/breedr.db
|
||||||
|
|
||||||
# Pull latest code
|
# Pull latest code
|
||||||
git pull origin docs/clean-schema-and-roadmap-update
|
git pull origin master
|
||||||
|
|
||||||
# Rebuild and restart
|
# Rebuild and restart
|
||||||
docker-compose up -d --build
|
docker-compose up -d --build
|
||||||
@@ -125,19 +134,20 @@ npm run build
|
|||||||
|
|
||||||
```
|
```
|
||||||
breedr/
|
breedr/
|
||||||
├── client/ # React frontend
|
├── client/ # React frontend
|
||||||
│ ├── src/
|
│ ├── src/
|
||||||
│ ├── public/
|
│ ├── public/
|
||||||
│ └── package.json
|
│ └── package.json
|
||||||
├── server/ # Node.js backend
|
├── server/ # Node.js backend
|
||||||
│ ├── routes/
|
│ ├── routes/
|
||||||
│ ├── db/
|
│ ├── db/
|
||||||
│ │ └── init.js # Clean schema (NO migrations)
|
│ │ └── init.js # Clean schema (NO migrations)
|
||||||
│ └── index.js
|
│ └── index.js
|
||||||
├── docs/ # Documentation
|
├── static/ # Branding assets (br-logo.png, etc.)
|
||||||
├── DATABASE.md # Schema documentation
|
├── docs/ # Documentation
|
||||||
├── ROADMAP.md # Development roadmap
|
├── DATABASE.md # Schema documentation
|
||||||
├── Dockerfile # Multi-stage Docker build
|
├── ROADMAP.md # Development roadmap
|
||||||
|
├── Dockerfile # Multi-stage Docker build
|
||||||
├── docker-compose.yml
|
├── docker-compose.yml
|
||||||
└── README.md
|
└── README.md
|
||||||
```
|
```
|
||||||
@@ -151,6 +161,7 @@ breedr/
|
|||||||
- `GET /api/pedigree/:id` - Generate pedigree tree
|
- `GET /api/pedigree/:id` - Generate pedigree tree
|
||||||
- `GET /api/health` - Health records
|
- `GET /api/health` - Health records
|
||||||
- `GET/POST /api/breeding` - Heat cycles and breeding
|
- `GET/POST /api/breeding` - Heat cycles and breeding
|
||||||
|
- `GET /static/*` - Branding and static assets
|
||||||
|
|
||||||
## Upgrading
|
## Upgrading
|
||||||
|
|
||||||
@@ -196,6 +207,10 @@ Check server logs for:
|
|||||||
|
|
||||||
If you don't see these logs, ensure `sire_id` and `dam_id` are being sent in the API request.
|
If you don't see these logs, ensure `sire_id` and `dam_id` are being sent in the API request.
|
||||||
|
|
||||||
|
### Logo not appearing in navbar
|
||||||
|
|
||||||
|
Ensure `br-logo.png` is placed in the `static/` directory at the project root. The file is served at `/static/br-logo.png`.
|
||||||
|
|
||||||
## Roadmap
|
## Roadmap
|
||||||
|
|
||||||
### ✅ Completed
|
### ✅ Completed
|
||||||
@@ -208,6 +223,8 @@ If you don't see these logs, ensure `sire_id` and `dam_id` are being sent in the
|
|||||||
- [x] Parent-child relationships via parents table
|
- [x] Parent-child relationships via parents table
|
||||||
- [x] Modern UI redesign
|
- [x] Modern UI redesign
|
||||||
- [x] Search and filtering
|
- [x] Search and filtering
|
||||||
|
- [x] Custom brand logo + gradient title
|
||||||
|
- [x] Static asset serving
|
||||||
|
|
||||||
### 🚧 In Progress
|
### 🚧 In Progress
|
||||||
- [ ] Trial pairing simulator
|
- [ ] Trial pairing simulator
|
||||||
@@ -225,7 +242,15 @@ If you don't see these logs, ensure `sire_id` and `dam_id` are being sent in the
|
|||||||
|
|
||||||
## Recent Updates
|
## Recent Updates
|
||||||
|
|
||||||
### March 9, 2026 - Clean Database Schema
|
### March 9, 2026 - Branding & Header Improvements (v0.4.1)
|
||||||
|
- **Added:** Custom `br-logo.png` brand logo in navbar
|
||||||
|
- **Added:** Gold-to-rusty-red gradient on "BREEDR" title text
|
||||||
|
- **Added:** `/static` directory for branding assets served by Express
|
||||||
|
- **Fixed:** Vite dev proxy for `/static` routes
|
||||||
|
- **Fixed:** `/static` and `/uploads` paths no longer fall through to React router
|
||||||
|
- **Fixed:** Brand logo sized as fixed 1:1 square for proper aspect ratio
|
||||||
|
|
||||||
|
### March 9, 2026 - Clean Database Schema (v0.4.0)
|
||||||
- **Fixed:** Database schema cleaned up - no migrations
|
- **Fixed:** Database schema cleaned up - no migrations
|
||||||
- **Fixed:** Removed weight/height columns (never implemented)
|
- **Fixed:** Removed weight/height columns (never implemented)
|
||||||
- **Fixed:** Proper parent handling via parents table
|
- **Fixed:** Proper parent handling via parents table
|
||||||
|
|||||||
120
ROADMAP.md
120
ROADMAP.md
@@ -28,6 +28,7 @@
|
|||||||
- [x] `/api/breeding` - Heat cycles and whelping calculator
|
- [x] `/api/breeding` - Heat cycles and whelping calculator
|
||||||
- [x] Photo upload with Multer
|
- [x] Photo upload with Multer
|
||||||
- [x] **Parent relationship handling** via parents table
|
- [x] **Parent relationship handling** via parents table
|
||||||
|
- [x] `/static/*` - Branding and static asset serving
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -53,6 +54,12 @@
|
|||||||
- [x] Responsive navigation
|
- [x] Responsive navigation
|
||||||
- [x] **Compact info cards** (80x80 avatars)
|
- [x] **Compact info cards** (80x80 avatars)
|
||||||
- [x] **Modern dark theme** with glass morphism
|
- [x] **Modern dark theme** with glass morphism
|
||||||
|
- [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
|
||||||
|
|
||||||
### Features Implemented
|
### Features Implemented
|
||||||
- [x] Photo upload and storage
|
- [x] Photo upload and storage
|
||||||
@@ -100,7 +107,7 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📊 Phase 4: Health & Genetics (PLANNED)
|
## 📋 Phase 4: Health & Genetics (PLANNED)
|
||||||
|
|
||||||
### Health Records
|
### Health Records
|
||||||
- [ ] Add health test results
|
- [ ] Add health test results
|
||||||
@@ -117,7 +124,7 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📊 Phase 5: Advanced Features (PLANNED)
|
## 📋 Phase 5: Advanced Features (PLANNED)
|
||||||
|
|
||||||
### Pedigree Tools
|
### Pedigree Tools
|
||||||
- [ ] Reverse pedigree (descendants view)
|
- [ ] Reverse pedigree (descendants view)
|
||||||
@@ -144,7 +151,7 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📊 Phase 6: Polish & Optimization (PLANNED)
|
## 📋 Phase 6: Polish & Optimization (PLANNED)
|
||||||
|
|
||||||
### User Experience
|
### User Experience
|
||||||
- [ ] Loading states for all operations
|
- [ ] Loading states for all operations
|
||||||
@@ -202,87 +209,19 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🆕 Latest Release: v0.4.0 - Clean Database Schema
|
## 🌕 Current Sprint: v0.5.0
|
||||||
|
|
||||||
### What's New in This Release
|
### ✅ Completed This Sprint
|
||||||
|
- [x] Custom `br-logo.png` brand logo in navbar
|
||||||
|
- [x] Gold-to-rusty-red gradient on BREEDR title
|
||||||
|
- [x] `/static` directory served by Express
|
||||||
|
- [x] Vite dev proxy for `/static`
|
||||||
|
- [x] Fixed route fall-through for `/static` and `/uploads`
|
||||||
|
- [x] Brand logo fixed to 1:1 aspect ratio
|
||||||
|
|
||||||
#### Database Overhaul ✅
|
### 🚧 Next Up (Priority Order)
|
||||||
- ✅ **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
|
|
||||||
|
|
||||||
#### API Improvements
|
#### Option 1: Trial Pairing Simulator (Recommended) 👍
|
||||||
- ✅ **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
|
|
||||||
|
|
||||||
#### 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
|
|
||||||
|
|
||||||
#### Documentation
|
|
||||||
- ✅ **DATABASE.md** - Complete schema reference
|
|
||||||
- ✅ **Updated README** - Current features and setup
|
|
||||||
- ✅ **Updated ROADMAP** - Accurate progress tracking
|
|
||||||
- ✅ **Troubleshooting guide** - Common issues and solutions
|
|
||||||
|
|
||||||
### Migration Instructions
|
|
||||||
|
|
||||||
For **fresh installs**, the database will initialize correctly automatically.
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Current Sprint Focus
|
|
||||||
|
|
||||||
### Next Up (Priority)
|
|
||||||
|
|
||||||
#### Option 1: Trial Pairing Simulator (Recommended) 🎯
|
|
||||||
**Complexity:** Medium | **Impact:** High | **User Value:** Excellent
|
**Complexity:** Medium | **Impact:** High | **User Value:** Excellent
|
||||||
|
|
||||||
**Why this is recommended:**
|
**Why this is recommended:**
|
||||||
@@ -292,7 +231,7 @@ docker-compose restart
|
|||||||
- Relatively quick to implement
|
- Relatively quick to implement
|
||||||
|
|
||||||
**Tasks:**
|
**Tasks:**
|
||||||
- Create PairingSimulator component
|
- Create `PairingSimulator` component
|
||||||
- Add sire/dam selection dropdowns
|
- Add sire/dam selection dropdowns
|
||||||
- Display COI calculation results
|
- Display COI calculation results
|
||||||
- Show common ancestors table
|
- Show common ancestors table
|
||||||
@@ -312,7 +251,7 @@ docker-compose restart
|
|||||||
- Provides calendar functionality
|
- Provides calendar functionality
|
||||||
|
|
||||||
**Tasks:**
|
**Tasks:**
|
||||||
- Create HeatCycleForm component
|
- Create `HeatCycleForm` component
|
||||||
- Add calendar view with heat cycle tracking
|
- Add calendar view with heat cycle tracking
|
||||||
- Track progesterone levels
|
- Track progesterone levels
|
||||||
- Implement breeding date suggestions
|
- Implement breeding date suggestions
|
||||||
@@ -331,7 +270,7 @@ docker-compose restart
|
|||||||
- Document management adds utility
|
- Document management adds utility
|
||||||
|
|
||||||
**Tasks:**
|
**Tasks:**
|
||||||
- Create HealthRecordForm component
|
- Create `HealthRecordForm` component
|
||||||
- Add vaccination tracking with expiry alerts
|
- Add vaccination tracking with expiry alerts
|
||||||
- Medical history timeline view
|
- Medical history timeline view
|
||||||
- PDF/image document uploads
|
- PDF/image document uploads
|
||||||
@@ -349,6 +288,9 @@ docker-compose restart
|
|||||||
- [x] UI layout fixes
|
- [x] UI layout fixes
|
||||||
- [x] Error handling for API failures
|
- [x] Error handling for API failures
|
||||||
- [x] Parent relationship creation via parents table
|
- [x] Parent relationship creation via parents table
|
||||||
|
- [x] Brand logo display and sizing
|
||||||
|
- [x] Gradient title rendering
|
||||||
|
- [x] Static asset serving in prod and dev
|
||||||
- [ ] Trial pairing simulator
|
- [ ] Trial pairing simulator
|
||||||
- [ ] Heat cycle tracking
|
- [ ] Heat cycle tracking
|
||||||
- [ ] Health records
|
- [ ] Health records
|
||||||
@@ -368,7 +310,15 @@ docker-compose restart
|
|||||||
|
|
||||||
## Version History
|
## Version History
|
||||||
|
|
||||||
- **v0.4.0** (Current - March 9, 2026) - Clean Database Schema
|
- **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
|
||||||
- Complete database overhaul with clean normalized design
|
- Complete database overhaul with clean normalized design
|
||||||
- Removed migrations, fresh init only
|
- Removed migrations, fresh init only
|
||||||
- Parents table for relationships
|
- Parents table for relationships
|
||||||
|
|||||||
Reference in New Issue
Block a user