Skip to content

A sample code that uses Zebra's AI Vision SDK to capture multiples barcodes at the same time and save them in a TXT, CSV, Excel file or upload them using HTTP/HTTPS Post method to a Web Server running in a Docker Image.

Notifications You must be signed in to change notification settings

ltrudu/AI_MultiBarcodes_Capture

Repository files navigation

AI MultiBarcode Capture Application

License Platform Language Version API SDK

Apache MySQL Docker HTML5 JavaScript CSS3

A comprehensive Android enterprise application demonstrating Zebra AI Vision SDK capabilities for simultaneous multi-barcode detection, tracking, and session-based data management with enterprise deployment features.

πŸ“š Complete Setup & Deployment Documentation - Comprehensive guides for quick start, Docker deployment, API integration, and enterprise configuration.

Please note that this is a Work In Progress.

Report any issues using the Issues manager of the original repository: https://github.com/ltrudu/AI_MutliBarcodes_Capture

πŸ“… What's New

Version 1.27 πŸš€

Simplified Android Authentication

Streamlined the Android application HTTP post configuration by removing authentication complexity for improved demo experience.

β€’ πŸ”“ Authentication Removal: Removed authentication checkbox, username, and password fields from Android app HTTP post settings

β€’ πŸ“± Simplified Configuration: Android app now requires only endpoint URL configuration for HTTP/HTTPS communication

β€’ 🌐 Direct Communication: HTTP/HTTPS requests now connect directly to web server without authentication headers

This release focuses on ease of use for demonstration and development scenarios while maintaining all core barcode scanning and data export functionality.

Server Update πŸ”„

Network IP Update Scripts

Added automatic IP update scripts to handle network changes when connecting to new WiFi networks or different locations.

β€’ New Scripts: update-network-ip.bat (Windows) and update-network-ip.sh (Linux/macOS) automatically detect and update IP configuration

β€’ Antivirus-Safe: Scripts use only standard system commands to avoid security software conflicts

β€’ Data Preservation: Docker container restart maintains all session and barcode data

β€’ Updated Documentation: Added "Managing IP Changes" guide to the wiki

WebServer Update Scripts: β€’ Live Updates: update-webserver.bat (Windows) and update-webserver.sh (Linux/macOS) update website files without rebuilding containers

β€’ Smart Container Management: Automatically handles container status checking, starting stopped containers when needed

β€’ Complete File Sync: Updates all website files, API endpoints, configurations, and language translations in running containers

β€’ Zero Data Loss: Updates preserve all database data and user sessions while applying latest code changes

β€’ Development Workflow: Streamlined git-to-deployment process for efficient development and maintenance

β€’ Comprehensive Guide: Complete documentation available in "Updating the Server" wiki page

HTTPS Certificate Management & Download Features: β€’ πŸ” Automatic SSL Certificate Generation: Self-signed CA and server certificates automatically generated with create-certificates.bat and create-certificates.sh scripts

β€’ πŸ“₯ Web-Based Certificate Downloads: Download CA certificates directly from the web interface settings for easy Windows and Android installation

β€’ 🌐 Secure HTTPS Support: Full HTTPS implementation with Apache SSL on port 3543, providing encrypted communication for enterprise environments

β€’ πŸ“± Android System Certificate Support: Generated Android system certificates (.pem format) for device-wide SSL trust without app-embedded certificates

β€’ πŸͺŸ Windows Certificate Integration: Windows-compatible CA certificates for browser trust and enterprise certificate management

β€’ πŸ“– Interactive Installation Guide: Built-in modal popup with step-by-step certificate installation instructions for Windows and Android platforms

β€’ πŸ”„ Certificate Deployment Pipeline: Automated certificate copying to web-accessible directories during container startup and updates

β€’ πŸ›‘οΈ Enterprise Security: Complete PKI infrastructure with certificate chain validation for secure enterprise communications

πŸ“‹ View Complete Changelog for previous versions and detailed release history.

πŸ“– Quick Start Links

Guide Description
15-Minute Quick Start Get the system running in 15 minutes
Installation Guide Complete system installation
Android App Configuration Configure the mobile barcode scanner
Docker WMS Setup Deploy and use the web management system
πŸ“š All Documentation Complete documentation index

πŸš€ Key Features

πŸ” Advanced Barcode Detection

  • Multi-Barcode Simultaneous Tracking: Detect and track multiple barcodes in real-time
  • 50+ Barcode Symbologies Support: Including QR Code, Data Matrix, Code 128, UPC/EAN, PDF417, Aztec, and many more
  • AI-Powered Recognition: Leverages Zebra AI Vision SDK v3.0.2 with barcode localizer model v5.0.1
  • Real-time Entity Tracking: Visual overlay with bounding boxes and decoded values
  • Configurable Detection Settings: Customizable symbology enabling/disabling

πŸ“Š Session Management

  • Session-Based Workflow: Organize barcode captures into manageable sessions
  • Multiple Export Formats:
    • Text files (.txt)
    • CSV files (.csv)
    • Excel files (.xlsx) with Apache POI integration
  • File Browser Integration: Navigate and manage session files with swipe gestures
  • Last Session Persistence: Resume previous sessions seamlessly
  • Session Viewer: Review captured data with edit and delete capabilities

✏️ Data Management

  • In-App Editing: Edit barcode data, quantities, and metadata
  • Swipe Gestures: Left swipe to reveal edit and delete options
  • Quantity Management: Track quantities with increment/decrement controls
  • Data Validation: Form validation and error handling

🏒 Enterprise Features

  • Complete Web Management System: Real-time web interface for centralized barcode session monitoring and management
  • 🌐 Advanced Multilingual Support: Enterprise-grade translation system supporting 76+ Android languages with dynamic discovery
  • πŸš€ Ultra-Fast Translation Pipeline: Speed-optimized translation engine with 10-20x performance improvements, batch processing, and parallel execution
  • πŸ”„ Automated Translation Workflow: AI-powered translation automation with Google Translate API integration and quality validation
  • 🌍 Dynamic Language Discovery: Automatic detection and population of available language files in the web interface
  • Docker Infrastructure: Production-ready containerized deployment with Apache, MySQL, and phpMyAdmin
  • Enterprise REST API: Comprehensive backend with session management, device tracking, and data export
  • Real-Time Data Synchronization: Live dashboard updates with 1-second refresh intervals
  • Multi-Device Support: Device hostname tracking and identification for enterprise environments
  • Managed Configuration Support: Full EMM/MDM integration for enterprise deployment
  • Real-time Policy Updates: Configuration changes applied without app restart
  • Nested Configuration Structure: Organized settings with collapsible barcode symbology groups
  • Administrator Notifications: Toast notifications for policy updates
  • Dynamic Registration: Android 8.0+ compatible managed configuration system

🚨 Advanced Error Reporting

  • Dual-Channel Feedback System:
    • EMM feedback channels for enterprise devices
    • Email fallback for comprehensive coverage
  • Automatic Error Reporting: LogUtils.e() calls trigger detailed reports
  • Comprehensive Reports: Include device info, app version, stack traces, and timestamps
  • Enterprise Integration: Direct integration with EMM systems for error visibility

πŸ“± Screenshots

Entry Choice Screen Entry Choice Screen Menu Camera Preview with Detection Captured Barcodes View Session Management Folders Session Management File With Selection Session Management Menu Settings Configuration Session Data Editor Session Data Editor Row Swipe Left Barcode Quantity Editor

πŸ—οΈ Architecture

Core Activities

  • SplashActivity: Application launcher with branding and permissions
  • EntryChoiceActivity: Session management and AI Vision SDK initialization
  • CameraXLivePreviewActivity: Real-time camera preview with barcode detection
  • CapturedBarcodesActivity: Review and manage captured barcode data
  • SessionViewerActivity: Browse and edit existing session data
  • BrowserActivity: File management with swipe gesture support
  • SettingsActivity: Configuration interface for app preferences
  • BarcodeDataEditorActivity: In-app data editing with form validation

Key Systems

  • BarcodeTracker: Core barcode detection using Zebra AI Vision SDK
  • EntityTrackerAnalyzer: Real-time multi-barcode tracking and analysis
  • ManagedConfigurationReceiver: Enterprise policy management
  • LogUtils: Centralized logging with automatic error reporting
  • FileUtil: Session file management and export capabilities

πŸ”§ Technical Specifications

Requirements

  • Android 14+ (API 34): Minimum supported version
  • Target SDK 35: Android 14+ optimization
  • Java 1.8: Language compatibility

Dependencies

  • Zebra AI Vision SDK: v3.0.2 - Core barcode detection engine
  • Barcode Localizer Model: v5.0.1 - AI model for barcode localization
  • CameraX: v1.4.2 - Modern camera functionality
  • Apache POI: v5.2.3 - Excel export capabilities
  • Gson: v2.13.1 - JSON serialization
  • Material Design Components: v1.12.0 - UI framework
  • Critical Permission Helper: 0.8.1 - Automatically grant critical permissions (Camera, Manage All Files) CriticalPermissionHelper Repository

Build Configuration

  • Android Gradle Plugin: 8.11.0
  • Gradle Wrapper: 8.9

πŸ“‹ Configuration

Managed Configuration Options

  • File Prefix: Default prefix for exported session files

  • Export Format: Choose between TXT, CSV, or XLSX

  • Barcode Symbologies: Enable/disable specific barcode types

  • Real-time Updates: Configuration changes applied without restart

  • More information on Managed Configuration here: Documentation

Supported Barcode Types

2D Codes: QR Code, Data Matrix, Aztec, PDF417, MaxiCode, and more
1D Codes: Code 128, Code 39, UPC/EAN, GS1 DataBar, and more
Postal Codes: US Planet, UK Postal, Canadian Postal, and more
Specialty Codes: GS1 DataMatrix, Composite codes, DotCode, and more

πŸ” Usage Examples

Basic Barcode Scanning (File Mode)

  1. Launch app and grant camera permissions
  2. Create new session or load existing one
  3. Point camera at barcodes for automatic detection
  4. Tap "Capture" to save detected barcodes
  5. Review and edit captured data
  6. Swipe left a captured barcode data row to access to delete button or edit button
  7. Use edit button to change quantity
  8. Use the merge button to merge quantities if there were previously scanned data in the session
  9. Export to desired format (TXT/CSV/XLSX)

Enterprise Web Management (HTTP Mode)

  1. Configure Docker environment and start web services
  2. Set Android app to HTTP(s) Post mode with endpoint URL
  3. Scan barcodes and upload sessions to web management system
  4. Monitor real-time scanning activity via web dashboard
  5. Manage sessions, view device information, and export data
  6. Track multiple devices simultaneously with hostname identification

Enterprise Deployment

  1. Configure barcode symbologies via EMM console
  2. Deploy app with managed configuration
  3. App receives real-time policy updates
  4. Error reports sent via EMM feedback channels
  5. Monitor app usage through enterprise dashboards

πŸ”— Additional Resources

πŸ“š Complete Documentation Wiki: Comprehensive Setup and Deployment Guides - 15+ detailed guides covering everything from quick start to enterprise deployment

Zebra AI Vision SDK Documentation: https://techdocs.zebra.com/ai-datacapture/latest/about/

More Android AI Samples: https://github.com/ZebraDevs/AISuite_Android_Samples

πŸ“ž Support

Please be aware that this library / application / sample is provided as a community project without any guarantee of support

For technical questions and community support:

  • GitHub Issues: Report bugs and feature requests in the original repository: link
  • Zebra Developer Portal: Technical documentation and resources
  • Community Forums: Connect with other developers

License

All content under this repository's root folder is subject to the Development Tool License Agreement. By accessing, using, or distributing any part of this content, you agree to comply with the terms of the Development Tool License Agreement.

About

A sample code that uses Zebra's AI Vision SDK to capture multiples barcodes at the same time and save them in a TXT, CSV, Excel file or upload them using HTTP/HTTPS Post method to a Web Server running in a Docker Image.

Resources

Stars

Watchers

Forks

Packages

No packages published