This comprehensive update implements: Transport Tracking System: - Complete seed-to-seed lifecycle tracking with 9 event types - TransportChain blockchain for immutable transport records - Carbon footprint calculation per transport method - Food miles tracking with Haversine distance calculation - QR code generation for full traceability Demand Forecasting System: - Consumer preference registration and aggregation - Regional demand signal generation - Supply gap identification and market matching - Grower planting recommendations with risk assessment - Seasonal planning integration Vertical Farming Module: - Multi-zone facility management - Environmental control systems (HVAC, CO2, humidity, lighting) - Growing recipes with stage-based environment targets - Crop batch tracking with health scoring - Farm analytics generation Documentation: - Complete docs/ folder structure for Turborepo - Seed-to-seed transport concept documentation - Demand forecasting and seasonal planning guides - System architecture and user blockchain design - Transport API reference - Vertical farming integration guide Agent Report: - AGENT_REPORT.md with 5 parallel agent tasks for continued development - API routes implementation task - UI components task - Vertical farming pages task - Testing suite task - Documentation completion task
277 lines
9.5 KiB
Markdown
277 lines
9.5 KiB
Markdown
# Seed-to-Seed Transport System
|
|
|
|
The Seed-to-Seed Transport System is the core tracking mechanism of LocalGreenChain. It provides complete traceability from the moment a seed is sourced, through planting, growing, harvesting, consumption, and back to seed collection for the next generation.
|
|
|
|
## Overview
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────────────┐
|
|
│ SEED-TO-SEED LIFECYCLE │
|
|
├─────────────────────────────────────────────────────────────────────────┤
|
|
│ │
|
|
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
|
│ │ SEED │───→│ TRANSIT │───→│ PLANT │───→│ GROW │ │
|
|
│ │ SOURCE │ │ TO FARM │ │ │ │ │ │
|
|
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
|
|
│ │ │ │
|
|
│ │ ▼ │
|
|
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
|
│ │ │ SEED │←───│ HARVEST │←───│ MATURE │ │
|
|
│ │ │ SAVE │ │ │ │ │ │
|
|
│ │ └──────────┘ └──────────┘ └──────────┘ │
|
|
│ │ │ │ │
|
|
│ │ ▼ ▼ │
|
|
│ │ ┌──────────┐ ┌──────────┐ │
|
|
│ └────────→│ NEXT │ │ TRANSPORT │ │
|
|
│ │ GENERATION│ │ TO MARKET │ │
|
|
│ └──────────┘ └──────────┘ │
|
|
│ │ │
|
|
│ ▼ │
|
|
│ ┌──────────┐ │
|
|
│ │ CONSUMER │ │
|
|
│ │ DELIVERY │ │
|
|
│ └──────────┘ │
|
|
│ │
|
|
└─────────────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
## Transport Event Types
|
|
|
|
### 1. Seed Acquisition Transport
|
|
Track seeds from their source to the growing location.
|
|
|
|
```typescript
|
|
interface SeedAcquisitionTransport {
|
|
eventType: 'seed_acquisition';
|
|
seedBatchId: string;
|
|
sourceType: 'seed_bank' | 'previous_harvest' | 'trade' | 'purchase' | 'wild_collected';
|
|
sourceLocation: TransportLocation;
|
|
destinationLocation: TransportLocation;
|
|
quantity: number;
|
|
unit: 'seeds' | 'grams' | 'packets';
|
|
geneticLineageId?: string;
|
|
certifications?: string[];
|
|
transportMethod: TransportMethod;
|
|
environmentalConditions: TransportEnvironment;
|
|
}
|
|
```
|
|
|
|
### 2. Growing Transport
|
|
Track movement of plants during their growing lifecycle (transplanting, relocation).
|
|
|
|
```typescript
|
|
interface GrowingTransport {
|
|
eventType: 'growing_transport';
|
|
plantId: string;
|
|
reason: 'transplant' | 'relocation' | 'hardening_off' | 'seasonal_move';
|
|
fromLocation: TransportLocation;
|
|
toLocation: TransportLocation;
|
|
plantStage: PlantStage;
|
|
handlingMethod: 'bare_root' | 'potted' | 'root_ball' | 'hydroponic_transfer';
|
|
}
|
|
```
|
|
|
|
### 3. Harvest Transport
|
|
Track movement from growing site to processing/distribution.
|
|
|
|
```typescript
|
|
interface HarvestTransport {
|
|
eventType: 'harvest_transport';
|
|
plantIds: string[];
|
|
harvestBatchId: string;
|
|
fromLocation: TransportLocation;
|
|
toLocation: TransportLocation;
|
|
harvestType: 'full_harvest' | 'partial_harvest' | 'continuous_harvest';
|
|
produceWeight: number;
|
|
unit: 'kg' | 'lbs' | 'units';
|
|
packagingType: string;
|
|
temperatureRequired: TemperatureRange;
|
|
shelfLife: number; // hours
|
|
}
|
|
```
|
|
|
|
### 4. Distribution Transport
|
|
Track movement through distribution chain to consumers.
|
|
|
|
```typescript
|
|
interface DistributionTransport {
|
|
eventType: 'distribution';
|
|
harvestBatchId: string;
|
|
fromLocation: TransportLocation;
|
|
toLocation: TransportLocation;
|
|
destinationType: 'consumer' | 'market' | 'restaurant' | 'processor' | 'vertical_farm';
|
|
transportMethod: TransportMethod;
|
|
carbonFootprint: number; // kg CO2
|
|
distance: number; // km
|
|
}
|
|
```
|
|
|
|
### 5. Seed Saving Transport
|
|
Track seed collection and storage for next generation.
|
|
|
|
```typescript
|
|
interface SeedSavingTransport {
|
|
eventType: 'seed_saving';
|
|
parentPlantIds: string[];
|
|
newSeedBatchId: string;
|
|
seedCount: number;
|
|
viabilityTestDate?: string;
|
|
germinationRate?: number;
|
|
storageLocation: TransportLocation;
|
|
storageConditions: SeedStorageConditions;
|
|
nextGenerationId: string;
|
|
}
|
|
```
|
|
|
|
## Blockchain Recording
|
|
|
|
Each transport event creates a new block in the user's blockchain:
|
|
|
|
```typescript
|
|
interface TransportBlock {
|
|
index: number;
|
|
timestamp: string;
|
|
transportEvent: TransportEvent;
|
|
previousHash: string;
|
|
hash: string;
|
|
nonce: number;
|
|
|
|
// Additional verification
|
|
signatures: {
|
|
sender?: string;
|
|
receiver?: string;
|
|
verifier?: string;
|
|
};
|
|
|
|
// Environmental impact
|
|
carbonFootprint: number;
|
|
foodMiles: number;
|
|
}
|
|
```
|
|
|
|
## Chain of Custody
|
|
|
|
The system maintains an unbroken chain of custody:
|
|
|
|
```
|
|
Seed Bank (Block #1)
|
|
↓ Transport: seed_acquisition
|
|
Grower A (Block #2)
|
|
↓ Plant & Grow
|
|
Grower A (Block #3-20) [growth updates]
|
|
↓ Transport: harvest_transport
|
|
Local Hub (Block #21)
|
|
↓ Transport: distribution
|
|
Consumer B (Block #22)
|
|
↓ Consume & Save Seeds
|
|
Seed Storage (Block #23)
|
|
↓ Transport: seed_saving → New lineage begins
|
|
```
|
|
|
|
## Environmental Impact Tracking
|
|
|
|
Every transport calculates:
|
|
|
|
1. **Carbon Footprint**
|
|
- Vehicle emissions based on transport method
|
|
- Refrigeration/climate control energy
|
|
- Packaging materials lifecycle
|
|
|
|
2. **Food Miles**
|
|
- Actual distance traveled
|
|
- Mode-weighted distance (air vs truck vs local)
|
|
|
|
3. **Time-to-Consumer**
|
|
- Freshness degradation tracking
|
|
- Optimal delivery windows
|
|
|
|
4. **Resource Usage**
|
|
- Water (for any irrigation during transport)
|
|
- Electricity (refrigeration, lighting)
|
|
- Packaging waste
|
|
|
|
## Integration with User Blockchain
|
|
|
|
Each user's blockchain maintains their personal transport history:
|
|
|
|
```typescript
|
|
class UserTransportChain {
|
|
userId: string;
|
|
chain: TransportBlock[];
|
|
|
|
// Get all plants currently in user's possession
|
|
getCurrentInventory(): PlantInventory[];
|
|
|
|
// Get complete history for a plant
|
|
getPlantJourney(plantId: string): TransportEvent[];
|
|
|
|
// Calculate total environmental impact
|
|
getTotalFootprint(): EnvironmentalImpact;
|
|
|
|
// Get lineage across generations
|
|
getMultiGenerationLineage(plantId: string, generations: number): LineageTree;
|
|
}
|
|
```
|
|
|
|
## QR Code Integration
|
|
|
|
Each plant/batch gets a unique QR code containing:
|
|
|
|
```json
|
|
{
|
|
"plantId": "lgc_abc123",
|
|
"blockchainAddress": "0x...",
|
|
"quickLookup": "https://localgreenchain.org/track/lgc_abc123",
|
|
"lineageHash": "sha256...",
|
|
"currentCustodian": "user_xyz",
|
|
"lastTransportBlock": 42
|
|
}
|
|
```
|
|
|
|
Scanning provides instant access to:
|
|
- Complete growing history
|
|
- All transport events
|
|
- Environmental conditions throughout lifecycle
|
|
- Carbon footprint calculation
|
|
- Previous generation lineage
|
|
|
|
## API Endpoints
|
|
|
|
See [Transport API Documentation](../api/transport-api.md) for complete API reference.
|
|
|
|
### Key Endpoints
|
|
|
|
```http
|
|
POST /api/transport/seed-acquisition
|
|
POST /api/transport/growing
|
|
POST /api/transport/harvest
|
|
POST /api/transport/distribution
|
|
POST /api/transport/seed-saving
|
|
|
|
GET /api/transport/journey/:plantId
|
|
GET /api/transport/footprint/:userId
|
|
GET /api/transport/verify/:blockHash
|
|
```
|
|
|
|
## Best Practices
|
|
|
|
### For Growers
|
|
|
|
1. **Record promptly**: Log transport events as they happen
|
|
2. **Verify conditions**: Note temperature, humidity, handling
|
|
3. **Save seeds systematically**: Maintain genetic diversity
|
|
4. **Minimize transport**: Source locally, deliver locally
|
|
|
|
### For Transporters
|
|
|
|
1. **Maintain cold chain**: Use temperature loggers
|
|
2. **Optimize routes**: Reduce food miles
|
|
3. **Report delays**: Update estimated arrival times
|
|
4. **Handle gently**: Protect plant integrity
|
|
|
|
### For Consumers
|
|
|
|
1. **Scan on receipt**: Verify chain of custody
|
|
2. **Report issues**: Flag any problems immediately
|
|
3. **Save seeds**: Continue the genetic lineage
|
|
4. **Share feedback**: Help improve the system
|