Uber: Taxi kiosk check-in at Václav Havel Airport Prague
For Uber, we delivered a kiosk check-in system at Prague Airport that lets passengers order taxis without the mobile app.
Kiosk operations with uninterrupted uptime.
Average interaction response after user confirmation.
Successfully completed rides through kiosk check-in.
Arriving passengers often had no mobile app context or wanted the fastest possible booking flow.
We built a kiosk-first check-in flow with touch-optimized UX and a resilient backend.
Payment integrations were implemented with traceable, auditable transaction handling.
- Self-service kiosks deployed at Prague Airport
- Central admin dashboard for live monitoring
- Stable operation during peak arrivals
- React
- Node.js
- PostgreSQL
- Payment integration
- Kiosk hardware
For Uber, we delivered a specialized kiosk check-in system deployed directly at Vaclav Havel Airport Prague. The objective was to remove friction for passengers who, after landing, do not want to or cannot use a mobile app. We needed to build a solution that stayed intuitive even for users under travel stress, could handle heavy peak traffic, and still met strict requirements for secure payment processing. From day one, we designed the architecture to combine a simple user flow with a robust backend and clearly defined operational management.
The biggest technical challenge was combining physical kiosk hardware, online payments, and continuous availability. A kiosk must stay consistent even under unstable connectivity, securely pass data to the central system, and still provide immediate on-screen feedback. We implemented the frontend in React, optimized for touch interaction and clear navigation across just a few steps. The Node.js and PostgreSQL backend was designed with emphasis on transactional reliability, operational auditability, and straightforward extension for additional operating scenarios.
A key part of the delivery was a central administration system for the operations team. It enables monitoring of kiosk status, incident handling, utilization tracking, and evaluation of key metrics in real time. In practice, this gives the operations team full visibility across the network and the ability to react quickly without manual on-site intervention.
Payment integration was implemented with a strong focus on security and stability. The transaction flow was designed to minimize the risk of interrupted payments while keeping every operation clearly traceable. This was essential for both internal reporting and long-term maintainability. Alongside implementation, we also established operational practices for monitoring, alerting, and staged releases so the system could handle production traffic without downtime, including during high-demand airport periods.
The result is a self-service solution that runs 24/7 and gives passengers a reliable way to order a taxi directly at the airport. The Uber project showed that a well-designed bridge between a physical contact point and a digital ecosystem can significantly improve both user experience and operational efficiency. We delivered a complete technical solution from architecture and implementation to long-term sustainable operations.
This delivery proved that physical kiosks can feel as fast and reliable as native digital channels.










