Original Idea
Warehouse Pick List Optimizer A handheld mobile app that batches picks by zone and guides the fastest path.
Product Requirements Document (PRD): OptiRoute Warehouse Picker
1. Executive Summary
OptiRoute Warehouse Picker is a high-performance, industrial-grade handheld mobile application designed to solve the "last-yard" inefficiency in logistics. By leveraging advanced spatial algorithms (A*), real-time batching, and augmented reality, the app reduces picker travel time by an estimated 25-30%. Built on a local-first architecture with React Native 0.83.1 and NestJS v11, it ensures 100% uptime even in Wi-Fi dead zones, integrating directly with enterprise hardware (Zebra/Honeywell) for sub-15ms scanning latency.
2. Problem Statement
Manual warehouse picking is plagued by "dead-heading" (empty travel), inefficient routing, and high error rates due to manual list reading. Standard Warehouse Management Systems (WMS) often lack real-time spatial awareness, leading to pickers crisscrossing the warehouse. Furthermore, standard mobile apps fail in industrial environments due to network "dead zones," high battery drain, and sluggish hardware scanner integration.
3. Goals & Success Metrics
- Reduce Travel Distance: Decrease average distance traveled per pick by 25%.
- Increase Pick Accuracy: Achieve 99.9% accuracy through mandatory barcode/SKU validation.
- Zero-Downtime Connectivity: 100% task availability in Wi-Fi dead zones via local-first sync.
- System Responsiveness: Route recalculation in <200ms; scan-to-UI latency in <15ms.
- Battery Life: Sustain a full 10-hour shift on a single charge using hardware-optimized drivers.
4. User Personas
- Picker (Pat): High-energy, on their feet all day. Needs a simple, high-contrast UI that works with gloves and requires minimal taps.
- Shift Supervisor (Sam): Needs to see real-time picker locations, identify bottlenecks, and re-assign high-priority batches.
- Inventory Manager (Ian): Focuses on accuracy and stock levels. Needs immediate alerts for "missing" items or replenishment triggers.
5. User Stories
- As a Picker, I want the app to group items from the same aisle together so I don't have to walk back and forth.
- As a Picker, I want an AR highlight on the specific bin so I don't waste time reading small bin labels.
- As a Picker, I want to be able to pick items even when the Wi-Fi drops out so my workflow isn't interrupted.
- As a Supervisor, I want to see a heatmap of picker activity so I can optimize warehouse layout.
- As an Inventory Manager, I want the WMS to update the second an item is scanned so we have a real-time view of stock.
6. Functional Requirements
6.1 Core Features
- Dynamic Batching Engine: Groups orders by spatial proximity and priority scores.
- Spatial Routing (PostGIS): Uses
pgr_astarwith Contraction Hierarchies to calculate the shortest path through the warehouse grid. - Offline-First Task Management: Local SQLite storage that syncs via binary Protobuf to the backend.
- Hardware Scanning: Native integration with Zebra DataWedge 15.0 via Intent-based TurboModules.
- Shortage Workflow: If an item is missing, the app triggers a "Shortage" flag, notifies the manager, and reroutes the picker to the next best location.
6.2 Nice-to-Have Features
- AR Navigation: Digital "Path Painting" on the floor using ViroReact.
- Voice-Pick: Hands-free audio cues for bin locations.
- Predictive Replenishment: AI-driven alerts for bins likely to empty within the next 60 minutes.
7. Technical Requirements
7.1 Tech Stack
- Frontend: React Native 0.83.1 (React 19.2), Fabric Renderer, TurboModules enabled.
- Backend: NestJS v11.1.12 on Node.js v22+ (LTS), Fastify adapter.
- Database: PostgreSQL 17 with PostGIS (Routing), Redis Stack (Geospatial caching).
- Offline Sync: PowerSync for PostgreSQL-to-SQLite synchronization using Protobuf serialization via JSI.
- Infrastructure: AWS ECS (Compute), AWS PrivateLink (Secure SAP connection), AWS Private CA (mTLS).
7.2 Hardware Integrations
- Zebra/Honeywell: Intent-based scanning via Android Broadcast Intents (DataWedge 15.0).
- Indoor Positioning: Situm SDK for hybrid Wi-Fi/BLE/VPS positioning.
8. Data Model
8.1 Entity: Warehouse_Map
bin_id: UUID (PK)location: GEOMETRY(PointZ, 4326)zone_id: Stringis_blocked: Boolean (Dynamic weighting for routing)
8.2 Entity: Pick_Batch
batch_id: UUID (PK)picker_id: UUID (FK)status: Enum (Pending, In_Progress, Complete)path_geometry: LINESTRING (Pre-calculated route)
8.3 Entity: Pick_Task
task_id: UUID (PK)sku: Stringquantity_requested: Intquantity_picked: Intbin_id: UUID (FK)
9. API Specification
9.1 Get Optimized Batch (REST)
- Endpoint:
GET /v1/batches/next - Input:
picker_id,current_location (x,y,z) - Response:
200 OKwith JSON (Batch ID, Ordered Task List, Path Polyline).
9.2 Inventory Sync (WebSocket/MQTT)
- Topic:
warehouse/inventory/updates - Payload:
{ "task_id": "uuid", "sku": "string", "delta": -1, "timestamp": "ISO8601" }
10. UI/UX Requirements
- High Contrast: Use WCAG AAA compliant colors (Yellow on Black) for bin IDs.
- Target Size: All buttons must be at least 48x48dp to accommodate gloved hands.
- AR Mode: A "Scan" button that toggles the camera with a ViroReact overlay highlighting the target bin in green.
- Haptic Feedback: Distinct vibration patterns for "Correct Scan" (Short pulse) vs "Error" (Triple long pulse).
11. Non-Functional Requirements
- Performance: Route calculation < 200ms using pre-calculated Contraction Hierarchies in PostGIS.
- Security: mTLS (Mutual TLS) using private PKI for all API Gateway to on-premise ERP (SAP S/4HANA) communication.
- Availability: Offline-first architecture must allow 4 hours of autonomous operation.
- Battery: Maximum 8% battery drain per hour of active use.
12. Out of Scope
- Customer-facing order tracking.
- Payment processing or invoicing.
- Forklift telemetry (Phase 2).
- Direct payroll integration.
13. Risks & Mitigations
- Risk: Wi-Fi dead zones preventing real-time sync.
- Mitigation: Local-first PowerSync architecture; data batches sent when 4G/Wi-Fi signal strength > -70dBm.
- Risk: AR drift in long aisles.
- Mitigation: QR-code "Relocalization Anchors" on every 5th aisle end-cap.
- Risk: Battery depletion during overtime.
- Mitigation: Headless JS for background processing; dynamic screen dimming.
14. Implementation Tasks
Phase 1: Project Setup & Core Architecture
- [ ] Initialize React Native 0.83.1 project with New Architecture enabled.
- [ ] Setup NestJS v11.1.12 with Fastify and Node.js 22.
- [ ] Configure PostgreSQL 17 with PostGIS and pgRouting extensions.
- [ ] Establish OIDC Auth flow with Okta/Azure AD.
Phase 2: Spatial & Routing Engine
- [ ] Import warehouse CAD/Grid data into PostGIS
Warehouse_Map. - [ ] Implement
pgr_astarrouting logic with Contraction Hierarchies. - [ ] Build NestJS service for Batching Logic (Spatial Proximity grouping).
- [ ] Create Protobuf schemas for high-speed data serialization.
Phase 3: Hardware & Offline Sync
- [ ] Implement PowerSync for local-first SQLite data persistence.
- [ ] Develop TurboModule for Zebra DataWedge 15.0 Intent listening.
- [ ] Configure Headless JS for background "Scan-to-Sync" tasks.
- [ ] Implement mTLS with Private CA for secure ERP communication.
Phase 4: AR & UI Development
- [ ] Build high-contrast React Native UI components (Pick List, Bin Detail).
- [ ] Integrate Situm SDK for indoor positioning.
- [ ] Implement ViroReact (ReactVision) for bin highlighting overlays.
- [ ] Set up Haptic feedback and hardware-level LED control for scanners.
Phase 5: Testing & Optimization
- [ ] Perform battery-life benchmarking (8-hour shift simulation).
- [ ] Test 16KB memory page compatibility on Android 15/16 ruggedized devices.
- [ ] Conduct field testing in known Wi-Fi dead zones to validate sync.
- [ ] Finalize SAP S/4HANA integration via AWS PrivateLink.