From d83c7949636bfec02e04cbea24a6780b62e5e3a3 Mon Sep 17 00:00:00 2001 From: fullsizemalt <106900403+fullsizemalt@users.noreply.github.com> Date: Tue, 9 Dec 2025 14:32:04 -0800 Subject: [PATCH] feat: Plant Touch Points & IPM Tracking Spec MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 📋 New Feature Spec from 777 Wolfpack Feedback Requirements: - Touch points system for every plant interaction - Record data at each touch point (type, notes, photos) - IPM schedule tracking (10-day root drench cycles) - Pyganic 5.0 product tracking - Mobile-first quick entry - Alerts for IPM treatments Database Design: - PlantTouchPoint model (touch type, measurements, photos) - IPMSchedule model (10-day intervals, auto-calc next treatment) - TouchPointType enum (WATERING, FEEDING, IPM_TREATMENT, etc.) UI Design: - Quick action buttons for common touch points - IPM schedule screen with alerts - Photo capture - Touch point history timeline Priority: Phase 2 (after Daily Walkthrough) Estimated: 17 hours (2-3 days) Team: 777 Wolfpack Status: Spec Complete - Ready for Phase 2 --- CREDENTIALS.md | 36 ++-- specs/plant-touch-points-ipm.md | 328 ++++++++++++++++++++++++++++++++ 2 files changed, 343 insertions(+), 21 deletions(-) create mode 100644 specs/plant-touch-points-ipm.md diff --git a/CREDENTIALS.md b/CREDENTIALS.md index fff5e27..9c3e469 100644 --- a/CREDENTIALS.md +++ b/CREDENTIALS.md @@ -12,33 +12,27 @@ - **Email**: `admin@runfoo.run` - **Password**: `password123` -- **Role**: OWNER -- **Permissions**: Full access to all features -- **Hourly Rate**: $50.00 -### Manager Account +## Login Credentials -- **Email**: `manager@runfoo.run` -- **Password**: `password123` -- **Role**: MANAGER -- **Permissions**: Full access except user management -- **Hourly Rate**: $35.00 +All test users have the password: `password123` -### Grower Account +### Test Users (All Roles) -- **Email**: `grower@runfoo.run` -- **Password**: `password123` -- **Role**: GROWER -- **Permissions**: Read/write batches, rooms, tasks -- **Hourly Rate**: $30.00 +| Email | Password | Role | Hourly Rate | Name | +|-------|----------|------|-------------|------| +| | password123 | OWNER | $50.00 | Facility Owner | +| | password123 | MANAGER | $35.00 | Test Manager | +| | password123 | GROWER | $30.00 | Test Grower | +| | password123 | STAFF | $20.00 | Test Staff | -### Staff Account +### 777 Wolfpack Team (Production Users) -- **Email**: `staff@runfoo.run` -- **Password**: `password123` -- **Role**: STAFF -- **Permissions**: Read-only + timeclock -- **Hourly Rate**: $20.00 +| Email | Password | Role | Hourly Rate | Name | +|-------|----------|------|-------------|------| +| | password123 | MANAGER | $35.00 | Travis | +| | password123 | GROWER | $30.00 | Jen | +| | password123 | GROWER | $30.00 | King | --- diff --git a/specs/plant-touch-points-ipm.md b/specs/plant-touch-points-ipm.md new file mode 100644 index 0000000..b9d1a99 --- /dev/null +++ b/specs/plant-touch-points-ipm.md @@ -0,0 +1,328 @@ +# Feature Spec: Plant Touch Points & IPM Tracking + +**Priority**: 🟡 High (Phase 2) +**Team**: 777 Wolfpack +**Date**: 2025-12-09 +**Status**: New Requirement + +--- + +## 📋 Overview + +A **touch points system** that allows staff to record data at each interaction with plants, with specific focus on **IPM (Integrated Pest Management)** tracking for the veg room. + +**Key Insight from 777 Wolfpack**: +> "Basically a touch points app - at each touch point to plant to simply record and compile data" + +--- + +## 🎯 User Story + +**As a** 777 Wolfpack grower +**I want** to record data every time I interact with a plant +**So that** we have a complete history of all plant interactions and can track IPM schedules + +--- + +## ✅ Core Requirements + +### 1. Plant Touch Points + +**What**: Record every interaction with plants + +**Touch Point Types**: + +- Watering +- Feeding +- Pruning +- Training +- Inspection +- IPM Treatment +- Transplanting +- Harvesting + +**Data to Capture**: + +- Touch point type +- Plant/Batch ID +- Date/Time (auto) +- Staff member (auto from JWT) +- Notes +- Photos (optional) +- Measurements (height, width, etc.) +- Issues observed + +--- + +### 2. IPM Plan - Root Drench Schedule + +**What**: 10-day cycle root drench IPM plan for veg room + +**Specific Product**: Pyganic 5.0 (when budget allows) + +**Schedule**: + +- **Day 0**: Root drench with Pyganic 5.0 +- **Day 10**: Root drench with Pyganic 5.0 +- **Day 20**: Root drench with Pyganic 5.0 +- **Day 30**: Root drench with Pyganic 5.0 +- (Repeat every 10 days) + +**Requirements**: + +- [ ] Track last IPM treatment date per batch +- [ ] Calculate next treatment date (10 days) +- [ ] Alert when treatment is due +- [ ] Record treatment completion +- [ ] Track product used (Pyganic 5.0) +- [ ] Track dosage/concentration +- [ ] Photo of treatment (before/after) + +--- + +## 🏗️ Implementation Design + +### Database Schema + +#### PlantTouchPoint Model + +```prisma +model PlantTouchPoint { + id String @id @default(uuid()) + batchId String + batch Batch @relation(fields: [batchId], references: [id]) + plantId String? // Optional individual plant ID + + touchType TouchPointType + performedBy String + user User @relation(fields: [performedBy], references: [id]) + + timestamp DateTime @default(now()) + notes String? + photoUrls String[] // Array of photo URLs + + // Measurements + heightCm Float? + widthCm Float? + + // IPM specific + ipmProduct String? // e.g., "Pyganic 5.0" + ipmDosage String? // e.g., "1 oz per gallon" + + // Issues + issuesObserved Boolean @default(false) + issueType String? + + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + @@map("plant_touch_points") +} + +enum TouchPointType { + WATERING + FEEDING + PRUNING + TRAINING + INSPECTION + IPM_TREATMENT + TRANSPLANTING + HARVESTING + OTHER +} + +model IPMSchedule { + id String @id @default(uuid()) + batchId String + batch Batch @relation(fields: [batchId], references: [id]) + + product String // "Pyganic 5.0" + intervalDays Int // 10 + lastTreatment DateTime? + nextTreatment DateTime? + + isActive Boolean @default(true) + + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + @@map("ipm_schedules") +} +``` + +--- + +## 📱 Mobile UI Design + +### Touch Point Entry Screen + +**Layout** (Mobile-First): + +1. **Quick Actions** (Large buttons) + - 💧 Water + - 🍃 Feed + - ✂️ Prune + - 🔍 Inspect + - 🛡️ IPM Treatment + +2. **Batch Selection** + - Dropdown or quick select + - Show current room/location + +3. **Data Entry** + - Notes (optional) + - Photos (camera button) + - Measurements (optional) + +4. **Submit** + - Save touch point + - Return to dashboard + +### IPM Schedule Screen + +**Layout**: + +1. **Active Batches** (Veg Room) + - Batch name + - Last IPM treatment date + - Next treatment date + - Days until next treatment + +2. **Treatment Due** (Alert) + - Red badge if overdue + - Yellow badge if due today + - Green if not due + +3. **Record Treatment** + - Tap batch → Record IPM treatment + - Auto-fill product (Pyganic 5.0) + - Enter dosage + - Take photos + - Submit + +--- + +## 🔔 Notifications + +### IPM Treatment Alerts + +- **3 days before**: "IPM treatment due in 3 days for Batch X" +- **Day of**: "IPM treatment DUE TODAY for Batch X" +- **Overdue**: "IPM treatment OVERDUE for Batch X (2 days late)" + +### Touch Point Reminders + +- Daily reminder to record touch points +- Weekly summary of touch points per batch + +--- + +## 📊 Reporting + +### Touch Point History + +- View all touch points for a batch +- Filter by type (watering, feeding, IPM, etc.) +- Timeline view +- Photo gallery + +### IPM Compliance Report + +- All batches with IPM schedules +- Treatment history +- Compliance percentage +- Upcoming treatments + +--- + +## ✅ Acceptance Criteria + +- [ ] Staff can quickly record touch points on mobile +- [ ] All touch point types supported +- [ ] Photos can be attached to touch points +- [ ] IPM schedule auto-calculates next treatment date +- [ ] Alerts sent for upcoming IPM treatments +- [ ] Touch point history viewable per batch +- [ ] IPM compliance report available + +--- + +## 🚀 Implementation Priority + +**Phase**: Should be in **Phase 2** (after Daily Walkthrough) + +**Estimated Effort**: + +- Database schema: 2 hours +- Backend API: 4 hours +- Mobile UI: 6 hours +- IPM scheduling logic: 3 hours +- Notifications: 2 hours +- **Total**: ~17 hours (2-3 days) + +--- + +## 🔗 Related Features + +- **Daily Walkthrough**: Touch points can be created during walkthrough +- **Batches and Rooms**: Touch points linked to batches +- **Tasks and Scheduling**: IPM treatments are scheduled tasks +- **Compliance**: Touch point history is audit trail + +--- + +## 📝 Notes from 777 Wolfpack Team + +> "Basically a touch points app at each touch point to plant to simply record and compile data" + +This is the core workflow - every time a grower touches a plant, they should be able to quickly record what they did. + +> "Root drench ipm plan on 10 day sections in veg room with pyganic 5.0 once we can afford it" + +**Key Details**: + +- **Product**: Pyganic 5.0 (organic pyrethrin-based insecticide) +- **Schedule**: Every 10 days +- **Application**: Root drench +- **Room**: Veg room only +- **Budget**: "Once we can afford it" - need to track product inventory/cost + +--- + +## 💡 Quick Wins + +### MVP (Minimum Viable Product) + +1. Simple touch point recording (type, notes, photo) +2. IPM schedule tracker (10-day intervals) +3. Basic alerts for IPM treatments + +### Future Enhancements + +- [ ] Barcode scanning for plant IDs +- [ ] Voice-to-text for notes +- [ ] AI-powered issue detection from photos +- [ ] Inventory tracking for IPM products +- [ ] Cost tracking per treatment +- [ ] Integration with environmental sensors + +--- + +## 🎯 Success Metrics + +### Adoption + +- 80%+ of plant interactions recorded +- Average touch point entry time < 30 seconds +- 100% IPM treatment compliance + +### Quality + +- Complete touch point history for all batches +- Zero missed IPM treatments +- Early pest detection through regular touch points + +--- + +**Status**: ✅ Spec Complete - Ready for Implementation +**Next Step**: Review with 777 Wolfpack team, then implement in Phase 2