Tag Scanning Integration Requirements

Overview

This document specifies the technical requirements for integrating QR code and NFC tag scanning capabilities into the object creation workflow. The system supports dual functionality: tag association with new objects AND spatial relationship assignment via container tag scanning.

Functional Requirements

FR1: Scanning Capabilities

  • FR1.1: Support QR code scanning via device camera
  • FR1.2: Support NFC tag reading on compatible devices
  • FR1.3: Provide fallback manual entry option
  • FR1.4: Support batch scanning for multiple tags

FR2: Integration Points

  • FR2.1: Embed scan button prominently in CreateObjectModal header
  • FR2.2: Support dual context scanning (tag assignment + spatial relationships)
  • FR2.3: Enable scanning in batch creation workflows
  • FR2.4: Integrate with spatial hierarchy navigation
  • FR2.5: Support post-creation tag assignment workflows

FR3: Validation & Conflicts

  • FR3.1: Validate tag format and cryptographic signatures
  • FR3.2: Check for existing tag assignments
  • FR3.3: Handle manufacturer-issued tags
  • FR3.4: Provide conflict resolution UI

FR4: User Experience

  • FR4.1: Single-action scan button with clear dual purpose indication
  • FR4.2: Real-time camera overlay with detection feedback
  • FR4.3: Context-aware dialog flows for known vs unknown tags
  • FR4.4: Spatial relationship assignment prompts for container tags
  • FR4.5: Accessible scanning instructions and error recovery

Non-Functional Requirements

NFR1: Performance

  • NFR1.1: QR code detection < 500ms
  • NFR1.2: NFC read completion < 1s
  • NFR1.3: Validation response < 300ms

NFR2: Security

  • NFR2.1: Cryptographic validation of tags
  • NFR2.2: Secure storage of scanned data
  • NFR2.3: Protection against tag cloning

NFR3: Compatibility

  • NFR3.1: Support iOS 14+ and Android 10+
  • NFR3.2: Graceful degradation on unsupported devices
  • NFR3.3: Cross-browser compatibility

Technical Architecture

Frontend Components

CreateObjectModal/
├── ScanButton (header-level scan trigger)
├── CameraInterface (QR/NFC detection overlay)
├── TagResolutionDialog (known/unknown tag workflows)
└── SpatialContextPrompt (container relationship assignment)

Components/scanning/
├── TagScanner (core scanning logic)
├── CameraOverlay (visual detection feedback)
├── TagValidator (cryptographic verification)
└── ScanResultHandler (workflow coordination)

State Management

interface ScanState {
  isScanning: boolean;
  detectedTag?: string;
  resolutionResult?: TagResolutionResult;
  spatialContext?: SpatialContext;
  conflictData?: TagConflictData;
}

interface TagResolutionResult {
  type: 'KNOWN_OBJECT' | 'UNKNOWN_SPECIFIC' | 'UNKNOWN_GENERAL' | 'ERROR';
  objectId?: string;
  classId?: string;
  canEdit?: boolean;
  spatialContext?: string;
}

GraphQL Schema Requirements

  • resolveIdentifier: Tag lookup and classification
  • createObjectWithTag: Combined object creation and tag assignment
  • assignSpatialRelationshipByTag: Spatial context via container tags
  • tagConflictResolution: Handle tag reassignment workflows

Error Handling

  • Validation Errors: Malformed tag codes, invalid signatures
  • Permission Errors: Insufficient rights for tag assignment
  • Conflict Errors: Tag already assigned to different object
  • Camera Errors: Hardware access, detection failures

Implementation Priorities

Phase 1: Core Dual Functionality (Sprint 1)

  • ScanButton Integration: Add prominent scan trigger to CreateObjectModal
  • Basic QR Detection: Camera interface with QR code recognition
  • Tag Resolution: Implement resolveIdentifier query and basic dialog flows
  • Spatial Context: Support container tag scanning for spatial relationships

Phase 2: Enhanced User Experience (Sprint 2)

  • Advanced Dialogs: Complete known/unknown tag resolution workflows
  • Conflict Resolution: Handle tag assignment conflicts gracefully
  • Visual Feedback: Enhanced camera overlay with detection indicators
  • Error Recovery: Comprehensive error handling and user guidance

Phase 3: Advanced Features (Sprint 3)

  • NFC Integration: Add NFC tag reading capabilities
  • Batch Workflows: Support tag scanning in bulk creation scenarios
  • Offline Support: Queue scanned tags for later processing
  • Analytics: Track scanning patterns and success rates

Dependencies

  • Camera permissions API
  • Web NFC API (where available)
  • QR code scanning library
  • Cryptographic validation library

Testing Requirements

Unit Tests

Integration Tests

Device Testing Matrix