Project Highlights
Real-time RFID tag streaming via Zebra FX9600 reader with 8-antenna support
Dual validation system combining RFID scanning with barcode verification (HPRT N80)
Offline-first architecture with local SQLite database for uninterrupted operations
Comprehensive packing history with Excel export and multi-filter reporting
Role-based access control with JWT authentication and 30-day session management
Configurable reader settings including antenna power, sensitivity, and region selection
Project Info
Tech Stack
Problem → Solution → Impact
Problem
Warehouse Hansae relied on manual packing processes: slow scanning, frequent human errors, operators struggled to track items, and no RFID integration. This led to inefficiencies, delayed shipments, and difficulty maintaining accurate inventory records.
Solution
Built an offline-first desktop application with full Zebra FX9600 RFID integration, dual validation system (RFID + barcode), packing list management, user role controls, and an operational dashboard for real-time monitoring.
Impact
- Packing accuracy significantly improved with dual validation
- Faster packing process with real-time RFID scanning
- Clear operational oversight through dashboard and reporting
- No internet dependency - works fully offline
- New operators can start working immediately with intuitive UI
Engineering Challenges & Solutions
Technical obstacles encountered during development and the architectural decisions made to overcome them.
Offline-first architecture without third-party logging services
Implemented local log engine combining Flutter logging with .NET Serilog, built-in log viewer with filtering, and 30-day retention policy - all stored locally in SQLite.
Real-time RFID streaming with high-throughput data
Designed SSE (Server-Sent Events) pipeline from Zebra FX9600 through .NET bridge to Flutter, with tag deduplication at 500-1000ms intervals to handle rapid consecutive reads.
Dual validation system (RFID + Barcode) with zero false-positives
Built hybrid matching engine that cross-references RFID EPC codes with EDI barcodes, ensuring each scanned item is validated against the packing list before marking as complete.
Configurable multi-antenna RFID reader management
Created abstraction layer for Zebra FX9600 8-antenna configuration, allowing per-antenna power level control, sensitivity adjustment, and region selection through a user-friendly settings UI.
Session management with long-lived authentication
Implemented JWT-based authentication with auto-refresh tokens, enabling 30-day sessions without re-login while maintaining security through role-based access control.
Architecture Overview
The system follows a layered architecture with clear separation between presentation, business logic, and hardware integration. Flutter handles the UI layer with Riverpod state management, communicating with a .NET 8 Worker Service that acts as a bridge between the application and RFID hardware.
Screenshots
Interested in working together?
Let's discuss your next project and create something amazing.
Get In Touch