ML-Powered Asset Tracking App
Built a cross-platform mobile app with ML-powered serial number scanning that improved asset data entry accuracy by 50%, deployed across IT operations for 250+ employees.
Context
IT operations needed to track thousands of hardware assets — laptops, monitors, peripherals — with serial numbers that had to be manually typed into a spreadsheet. Human transcription errors led to mismatched records, lost assets, and hours spent reconciling data.
Challenge
Serial numbers come in multiple formats (Apple, Dell, Lenovo) with different character patterns. The app needed to work offline in warehouses with spotty connectivity, scan barcodes and use OCR interchangeably, and sync reliably with the Airtable backend. It also had to support batch scanning for inventory audits.
Solution
A Flutter mobile application with a multi-modal scanning system:
Three Scan Modes: Single scan for quick lookups, multi-scan for batch inventory operations, and OCR mode using Google ML Kit for reading serial numbers directly off hardware labels.
Offline-First Architecture: Dual-storage system with Sembast (local NoSQL) and Airtable (cloud). A cache-through pattern checks local storage first, falls back to remote, and syncs automatically when connectivity returns.
Smart Serial Validation: Custom type-specific validation recognizes Apple, Dell, and Lenovo serial number formats, auto-correcting common OCR misreads.
Repository Pattern: Clean separation between UI, business logic, data access, and external API integration enables easy testing and future backend changes.
┌─────────────┐ ┌──────────────┐ ┌──────────────┐
│ Camera │────▶│ ML Kit OCR │────▶│ Serial # │
│ Feed │ │ / ZXing │ │ Validation │
└─────────────┘ └──────────────┘ └──────┬───────┘
│
┌──────────────┐ ┌──────▼────────┐
│ Airtable │◀───▶│ Repository │
│ (Cloud) │ │ + Cache Layer │
└──────────────┘ └───────┬───────┘
│
┌───────▼───────┐
│ Sembast │
│ (Local DB) │
└───────────────┘
Deployment
Deployed to IT staff across multiple offices and warehouses. The app runs on both Android and iOS devices, with Airtable serving as the shared backend. Background cache refresh keeps data current when the app resumes from sleep. The asset scanner integrates with the Brother Label Printer IoT system for on-demand asset sticker printing.
Impact
- 50% improvement in asset data entry accuracy
- Eliminated manual serial number transcription errors that led to lost assets
- Batch scanning reduced inventory audit time from days to hours
- Offline-first design enabled warehouse use without WiFi dependency