How packingproof/packingproof-desktop works
PackingProof is a desktop packing-evidence system: a barcode scan starts a recording associated with a tracking number, recording ends and is stored, and users can later search and play it back. The README also documents order-note speech and refund checks, multi-workstation/mobile uploads, LAN web access, NAS archiving, and an extension API/market. The tree and sampled excerpts support the database query and extension recording preparation details; links among several other runtime subsystems are documented capabilities rather than inspected call sites.
Main entry points: VideoLifecycleCoordinator.cs Recording lifecycle · VideoDatabase.cs Video database · WebServer.cs LAN web server · ExtensionRecordingQueryService.cs Extension recording queries
Components 27
Capture and recording
- Scan input
ExpressPackingMonitoring/Input - Camera capture
ExpressPackingMonitoring/Services/MediaFoundation - Barcode recognition
ExpressPackingMonitoring/Services/CameraBarcodeRecognitionService.cs - Recording lifecycle
ExpressPackingMonitoring/Services/VideoLifecycleCoordinator.cs - Video encoding
ExpressPackingMonitoring/Helpers/EncodingHelper.cs
Order assistance
- Order information relay
ExpressPackingMonitoring/Services/OrderInfoRelay.cs - Speech service
ExpressPackingMonitoring/Audio/SpeechService.cs - Refund lookup
ExpressPackingMonitoring/Services/PrintedRefundLookupCoordinator.cs
Storage and archive
- Video database
ExpressPackingMonitoring/Data/VideoDatabase.cs - Recording storage plan
ExpressPackingMonitoring/Services/StorageLocationResolver.cs - Archive service
ExpressPackingMonitoring/Services/ArchiveService.cs - NAS archive provider
ExpressPackingMonitoring/Services/NasArchiveProvider.cs
Playback and integrations
- LAN web server
ExpressPackingMonitoring/Services/WebServer.cs - Playback resolver
ExpressPackingMonitoring/Services/PlaybackFileResolver.cs - Extension runtime
ExpressPackingMonitoring/Services/ExtensionRuntime.cs - Extension enrollment
ExpressPackingMonitoring/Services/ExtensionEnrollmentService.cs - Extension recording queries
ExpressPackingMonitoring/Services/ExtensionRecordingQueryService.cs - Extension market client
ExpressPackingMonitoring/Services/Extensions/ExtensionMarketClient.cs
Application runtime
- Desktop application
ExpressPackingMonitoring/App.xaml.cs - Host session
ExpressPackingMonitoring.Host/HostSession.cs
Other components
- Packing operator
- Barcode scanner
- Camera input
- Mobile workstations
- LAN browser
- Order userscript
- NAS or share
Connections 27
- Packing operator → Barcode scanner: scans label
- Barcode scanner → Scan input: submits code
- Packing operator → Camera input: packs parcel
- Camera input → Camera capture: provides frames
- Camera capture → Barcode recognition: supplies frames
- Barcode recognition → Recording lifecycle: triggers recording
- Scan input → Recording lifecycle: triggers recording
- Recording lifecycle → Video encoding: encodes video
- Recording lifecycle → Video database: records metadata
- Recording lifecycle → Recording storage plan: selects storage
- Recording storage plan → Archive service: plans archive
- Archive service → NAS archive provider: archives copy
- NAS archive provider → NAS or share: writes archive
- Order userscript → Order information relay: sends order data
- Order information relay → Speech service: provides order notes
- Recording lifecycle → Refund lookup: checks asynchronously
- Mobile workstations → Host session: uploads recordings
- Host session → Video database: registers recordings
- LAN browser → LAN web server: requests playback
- LAN web server → Video database: queries recordings
- LAN web server → Playback resolver: resolves video
- Extension runtime → Extension enrollment: requests authorization
- Extension runtime → Extension recording queries: queries recordings
- Extension recording queries → Video database: queries metadata
- Extension recording queries → Playback resolver: resolves recording
- Extension market client → Extension runtime: installs extensions
- Desktop application → Host session: starts host session