Added PlantTouchPoint and IPMSchedule models. Implemented touch-points and IPM controllers/routes. Updated frontend with Dashboard feed and IPM widgets.
254 lines
4.7 KiB
Markdown
254 lines
4.7 KiB
Markdown
# Quick Implementation Plan - Priority Features
|
|
|
|
**Date**: 2025-12-09
|
|
**Focus**: Get core features working ASAP
|
|
|
|
---
|
|
|
|
## 🎯 **IMMEDIATE PRIORITIES** (Next 2-3 Days)
|
|
|
|
### 1. Fix Walkthrough Error (NOW)
|
|
|
|
**Time**: 30 minutes
|
|
**Status**: ✅ DONE
|
|
**Action**: Fixed controller empty body crash and unified routing.
|
|
|
|
---
|
|
|
|
### 2. Shopping List / Facility Supplies (PHASE 3A)
|
|
|
|
**Time**: 8-12 hours (1-2 days)
|
|
**Priority**: 🔴 CRITICAL
|
|
|
|
#### What You'll Get
|
|
|
|
- Item catalog (filters, toilet paper, cleaning supplies, PPE, etc.)
|
|
- Current inventory levels
|
|
- **Shopping list** (items below min threshold)
|
|
- Quick "Add to Shopping List" button
|
|
- Mark items as "Ordered" or "Received"
|
|
|
|
#### Implementation
|
|
|
|
**Database** (1 hour):
|
|
|
|
```prisma
|
|
model SupplyItem {
|
|
id String @id @default(cuid())
|
|
name String
|
|
category SupplyCategory
|
|
quantity Int
|
|
minThreshold Int
|
|
unit String
|
|
location String?
|
|
lastOrdered DateTime?
|
|
notes String?
|
|
}
|
|
|
|
enum SupplyCategory {
|
|
FILTER
|
|
CLEANING
|
|
PPE
|
|
OFFICE
|
|
BATHROOM
|
|
KITCHEN
|
|
MAINTENANCE
|
|
OTHER
|
|
}
|
|
```
|
|
|
|
**Backend API** (2 hours):
|
|
|
|
- `GET /api/supplies` - List all items
|
|
- `GET /api/supplies/shopping-list` - Items below threshold
|
|
- `POST /api/supplies` - Add item
|
|
- `PATCH /api/supplies/:id` - Update quantity
|
|
- `POST /api/supplies/:id/order` - Mark as ordered
|
|
|
|
**Frontend UI** (5-7 hours):
|
|
|
|
- Supplies page with grid/list view
|
|
- Shopping list page (filtered view)
|
|
- Quick add form
|
|
- Quantity adjustment (+/- buttons)
|
|
- "Add to Shopping List" button
|
|
- "Mark as Ordered" button
|
|
|
|
**Total**: 8-10 hours
|
|
|
|
---
|
|
|
|
### 3. Touch Points (PHASE 2.1)
|
|
|
|
**Time**: 12-15 hours (2 days)
|
|
**Priority**: 🟡 HIGH
|
|
|
|
#### What You'll Get
|
|
|
|
- Quick "Log Touch Point" button
|
|
- Touch types: Water, Feed, Prune, Train, Inspect, IPM
|
|
- Photo upload
|
|
- Notes
|
|
- History view per batch
|
|
|
|
#### Implementation
|
|
|
|
**Database** (1 hour):
|
|
|
|
- PlantTouchPoint model (already designed)
|
|
|
|
**Backend API** (3 hours):
|
|
|
|
- `POST /api/touch-points` - Log touch point
|
|
- `GET /api/touch-points` - List with filters
|
|
- `GET /api/batches/:id/touch-points` - Batch history
|
|
|
|
**Frontend UI** (8-11 hours):
|
|
|
|
- Quick log modal (mobile-optimized)
|
|
- Touch type selector (big buttons)
|
|
- Photo capture
|
|
- Batch selector
|
|
- History timeline
|
|
- Filter by type/date
|
|
|
|
**Total**: 12-15 hours
|
|
|
|
---
|
|
|
|
### 4. Task Lists (PHASE 4A - SIMPLIFIED)
|
|
|
|
**Time**: 6-8 hours (1 day)
|
|
**Priority**: 🟡 HIGH
|
|
|
|
#### What You'll Get
|
|
|
|
- Simple task list (no scheduling yet)
|
|
- Create task
|
|
- Assign to user
|
|
- Mark complete
|
|
- Filter by status
|
|
|
|
#### Implementation
|
|
|
|
**Database** (30 min):
|
|
|
|
```prisma
|
|
model Task {
|
|
id String @id @default(cuid())
|
|
title String
|
|
description String?
|
|
assignedTo String?
|
|
status TaskStatus
|
|
dueDate DateTime?
|
|
completedAt DateTime?
|
|
createdBy String
|
|
}
|
|
|
|
enum TaskStatus {
|
|
TODO
|
|
IN_PROGRESS
|
|
DONE
|
|
}
|
|
```
|
|
|
|
**Backend API** (2 hours):
|
|
|
|
- `GET /api/tasks` - List tasks
|
|
- `POST /api/tasks` - Create task
|
|
- `PATCH /api/tasks/:id` - Update task
|
|
- `DELETE /api/tasks/:id` - Delete task
|
|
|
|
**Frontend UI** (3-5 hours):
|
|
|
|
- Task list page
|
|
- Create task modal
|
|
- Task cards with status
|
|
- Filter by status/assignee
|
|
- Mark complete button
|
|
|
|
**Total**: 6-8 hours
|
|
|
|
---
|
|
|
|
## 📊 **TOTAL EFFORT FOR ALL 3**
|
|
|
|
| Feature | Time | Priority |
|
|
|---------|------|----------|
|
|
| Shopping List | 8-12 hours | 🔴 Critical |
|
|
| Touch Points | 12-15 hours | 🟡 High |
|
|
| Task Lists | 6-8 hours | 🟡 High |
|
|
| **TOTAL** | **26-35 hours** | **3-5 days** |
|
|
|
|
---
|
|
|
|
## 🚀 **RECOMMENDED APPROACH**
|
|
|
|
### Day 1 (Today)
|
|
|
|
- ✅ Fix walkthrough error
|
|
- ✅ Deploy mobile bottom nav
|
|
- 🔄 Start Shopping List (database + backend)
|
|
|
|
### Day 2
|
|
|
|
- ✅ Complete Shopping List (frontend)
|
|
- ✅ Test and deploy
|
|
- 🔄 Start Touch Points (database + backend)
|
|
|
|
### Day 3
|
|
|
|
- ✅ Complete Touch Points (frontend)
|
|
- ✅ Test and deploy
|
|
- 🔄 Start Task Lists (database + backend)
|
|
|
|
### Day 4
|
|
|
|
- ✅ Complete Task Lists (frontend)
|
|
- ✅ Test and deploy
|
|
- ✅ Polish and bug fixes
|
|
|
|
### Day 5
|
|
|
|
- ✅ User testing with 777 Wolfpack team
|
|
- ✅ Gather feedback
|
|
- ✅ Plan next features
|
|
|
|
---
|
|
|
|
## 💡 **QUICK WINS**
|
|
|
|
If you want something working TODAY:
|
|
|
|
### Shopping List MVP (4 hours)
|
|
|
|
- Just the database and basic CRUD
|
|
- Simple list view
|
|
- Add/remove items
|
|
- Mark as "Need to Order"
|
|
- **Deploy by end of day**
|
|
|
|
### Touch Points MVP (6 hours)
|
|
|
|
- Just log touch points (no photos)
|
|
- Simple form
|
|
- History view
|
|
- **Deploy tomorrow**
|
|
|
|
---
|
|
|
|
## ✅ **WHAT'S ALREADY DONE**
|
|
|
|
- ✅ All specs written
|
|
- ✅ Database schemas designed
|
|
- ✅ API endpoints defined
|
|
- ✅ UI mockups described
|
|
- ✅ Mobile-first foundation
|
|
- ✅ Authentication & RBAC
|
|
- ✅ Daily Walkthrough
|
|
|
|
**We're 80% of the way there - just need to build it!**
|
|
|
|
---
|
|
|
|
**Status**: Ready to implement. Just say which feature to start with! 🚀
|