Case study 02 / 08 · Transport · Self-service kiosks

Self-service kiosks

CAMRAIL ticketing on interactive kiosks in Douala and Yaoundé stations, then a multi-service kiosk for an intercity bus operator: thermal printer, QR reader and ID-document scanner.

CAMRAIL: deployed in stationsHardware + software
Fig. 02 — Multi-service kiosk
  • Thermal printer
  • ID scanner
  • Touch screen · Nuxt 4
  • QR reader

01

Context

Buying a train or bus ticket usually means queuing at a counter. Self-service kiosks let travellers search a trip, pay and print their ticket without an agent.

02

My contribution

  • CAMRAIL ticketing: a web ticket-sales application deployed on interactive kiosks in Douala and Yaoundé stations.
  • Multi-service kiosk: sole developer of the kiosk client (Tauri 2 + Nuxt 4) and of the façade API (Nuxt / Nitro) that connects it to the operator’s ERP.
  • Peripheral control: thermal printer, QR-code reader, passport and ID-document scanner.

03

Architecture

Fig. 02 — Application layers
KioskLocked-down Windows app: Tauri 2 + Nuxt 4, 1280 × 1024 screen
PeripheralsThermal printer, QR reader, ID scanner through a native Tauri sidecar
FaçadeHosted Nuxt / Nitro service that holds the credentials and reshapes ERP responses
ERPFares, seat availability and ticket issuance on the operator side
Key decision

Make the kiosk a thin client: no credentials, no fares and no persisted data on the machine. Everything goes through the hosted façade, which limits the damage a compromised kiosk could do.

04

Quality & evidence

Commits on the kiosk client
150+
Executable specification and decision log
OpenSpec
Data stored on the kiosk
0

05

Outcome

CAMRAIL ticketing running on kiosks in Douala and Yaoundé stations; the multi-service kiosk is being prepared for a two-kiosk pilot on the Douala–Yaoundé route.

Interested in this kind of platform?
Let’s talk.

Contact meDownload my CV
© 2026 Jordan Tukum Folem — Douala, CameroonBuilt with Nuxt 4 · source code ↗