Central Backend & Realtime API for a Self-Service Kiosk Network
An airport self-service retail/kiosk platform
Overview
This is the central server that backs a network of self-service retail kiosks deployed in a high-traffic public transit environment. It exposes the HTTP API and realtime channels the touchscreen kiosks, hardware bridges and back-office tools all talk to.
The Challenge
A fleet of unattended kiosks needs a single authoritative backend to manage catalog data, sessions, transactions and device state, and to push live updates to terminals and operators without polling. The server had to be structured cleanly enough to evolve quickly while staying secure for public-facing terminals.
What We Built
An AdonisJS application following the framework’s MVC structure (app, providers, config, database, bootstrap). It uses Lucid for relational data and migrations, the AdonisJS auth and middleware stack for securing endpoints, and AdonisJS WebSocket for realtime push to connected kiosks and operator tooling. The ace CLI drives migrations and scaffolding, with server.js as the entry point.
Technologies & Approach
Node.js with the full AdonisJS suite, adonis-framework, adonis-lucid, adonis-auth, adonis-middleware, adonis-websocket, adonis-ace. A conventional, opinionated MVC framework was chosen to move fast while keeping authentication, routing and ORM concerns consistent across a multi-component system.
Outcome / Impact
Served as the hub of a multi-repo kiosk platform, coordinating the customer-facing front-end, hardware RPC bridges, media terminals and the back-office app around one realtime-capable API.
Capabilities Demonstrated
- Designing a central API for a distributed device/kiosk fleet
- Realtime WebSocket communication between server and terminals
- Authentication, middleware and relational data modeling with an MVC framework
- Acting as the integration backbone for a multi-component product