feat: Plant Touch Points & IPM Tracking Spec
📋 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
This commit is contained in:
parent
84ac830a10
commit
d83c794963
2 changed files with 343 additions and 21 deletions
|
|
@ -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 |
|
||||
|-------|----------|------|-------------|------|
|
||||
| <admin@runfoo.run> | password123 | OWNER | $50.00 | Facility Owner |
|
||||
| <manager@runfoo.run> | password123 | MANAGER | $35.00 | Test Manager |
|
||||
| <grower@runfoo.run> | password123 | GROWER | $30.00 | Test Grower |
|
||||
| <staff@runfoo.run> | 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 |
|
||||
|-------|----------|------|-------------|------|
|
||||
| <travis@runfoo.run> | password123 | MANAGER | $35.00 | Travis |
|
||||
| <jen@runfoo.run> | password123 | GROWER | $30.00 | Jen |
|
||||
| <king@runfoo.run> | password123 | GROWER | $30.00 | King |
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
328
specs/plant-touch-points-ipm.md
Normal file
328
specs/plant-touch-points-ipm.md
Normal file
|
|
@ -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
|
||||
Loading…
Add table
Reference in a new issue