On-Kiosk Hardware Bridge for NFC & HID Peripherals
An airport self-service retail/kiosk platform
Overview
A small local service that runs alongside the customer kiosk app and bridges the touchscreen UI to physical peripherals, NFC/contactless card readers and HID input devices such as scanners.
Why It Exists
A browser/Electron UI cannot talk directly to low-level reader hardware. This service exposes a local REST/RPC endpoint so the front-end can trigger reads and receive device events from peripherals attached to the terminal.
What We Built
A Node.js Restify service (index.js) that wraps nfc-pcsc for PC/SC contactless card readers and node-hid-stream for streaming HID device input. It surfaces these over a lightweight local HTTP/RPC API that the kiosk front-end calls, decoupling UI logic from the specific hardware on each terminal.
Technologies & Approach
Node.js with Restify for a minimal local API, nfc-pcsc for NFC/PCSC readers and node-hid-stream for HID peripherals. Keeping the bridge as a separate process makes the hardware layer independently restartable and swappable without touching the UI.
Outcome / Impact
Provided the hardware abstraction that let the touchscreen app read contactless cards and accept scanner input, a key piece of the self-service flow on each terminal.
Capabilities Demonstrated
- Integrating NFC/PCSC and HID peripherals from Node.js
- Building a local REST/RPC bridge between UI and hardware
- Streaming device events to a desktop kiosk app
- Decoupling hardware concerns into an independently deployable service