TB Menu - Touchscreen UI for Secure Product Selection

TB Menu is the primary user interface for the automated dispensary machine. Designed and built entirely by me using WPF, this application serves as the interactive layer between users and the hardware. It handles everything from user authentication to product selection, returns, and system settings all via a responsive touch interface optimized for 27" displays.

Tech Stack & Integration:
  • WPF/C# with MVVM architecture
  • XML-based dynamic configuration
  • Communication with hardware components (Vending Machine System, RFID readers, barcode scanners, label printers, internal IP cameras) is handled via TCP/IP using a custom protocol I designed, based on XML-formatted messages
  • PostgreSQL database accessed through Entity Framework for data persistence and user/product management
  • Windows Embedded environment, designed for industrial touchscreen terminals
Key Features:
  • Secure Login System:
    Supports multiple authentication methods: PIN/password, RFID card, card + password, and username + password combinations. Includes test login and a self-learning card mode for new users.
  • Product Dispensing & Returns:
    Users can browse products, add items to a virtual basket, and confirm dispensing actions. The return process includes configurable return reasons and directional guidance to collection boxes, with support for video confirmation and logging.
  • Role-Based Access to Products:
    Restricts product selection based on user roles and permissions defined in the web-based management application. Ensures users only see and interact with items they’re authorized to access.
  • Quality-Based Dispensing Logic:
    Products can be prioritized for dispensing based on quality attributes (e.g., dispense lower-quality items first). A designated Group Leader role can temporarily override this behavior for the current user session by scanning their RFID card, allowing access to higher-quality inventory when necessary.
  • Category & Basket Support:
    Hierarchical category navigation and basket functionality for bulk product selection. Settings allow for toggling max items, enabling/disabling features, and customizing UI labels.
  • Barcode & QR Code Product Lookup:
    Users can search for products by scanning an EAN barcode using the integrated scanner, allowing fast and accurate identification. Additionally, QR codes can be used to trigger predefined product selections prepared by the production department, streamlining routine dispensing tasks and reducing selection errors.
  • Secure Door Access:
    Allows authorized users to open the vending machine’s physical door by verifying both an RFID card and a user password, ensuring controlled access for restocking or maintenance.
  • Fully Configurable via XML/INI:
    All logic and UI behavior is backed by editable xml files, and accessory config files. Settings include localization, category hierarchies, display rules, contact information, machine-level customization and more.

Gallery

Menu_01
Menu_02
Menu_03
Menu_04
Menu_05
Menu_06
Menu_07
Menu_08
Next arrow right
An unhandled error has occurred. Reload 🗙