Case study · Volo Libero Friuli
Volo Libero Friuli - Payment and membership management system
Crypto-protected NFC cards, offline-first Android app, custom hardware for automated showers, end-to-end membership and service management.
Summary
An integrated membership, payment and service-management system for a sports association. Cryptographically protected NFC cards, an offline-first staff mobile app, and custom hardware for automated showers. It turned the shower service from a significant cost for the association into a positive revenue stream. First year in production, preceded by roughly a year of field testing.
Client
Volo Libero Friuli, a sport-flying (paragliding) association in the province of Udine. The same client as the shuttle project delivered 3 years earlier: the long-term relationship meant we could start from a shared, real problem with no onboarding time.
Problem
Early on, the association had a single significant cash flow (the shuttles, paid in cash to the driver or by card at the refreshment point). As membership grew, new services appeared - showers, bike rental, gear rental - each managed inconsistently. The worst case was the showers: provided free for years, until the board realized the real cost of water and energy consumption had become unsustainable. There was no control, no traceability, and no way to analyze anything.
Solution
A three-layer integrated system. NFC membership cards with Ntag chips (versions 215/216), configured with a cryptographic key protecting read, write and cloning, and with dedicated registers for credit and membership data. A native Android app for staff, restricted, accessed via SSO with individual accounts for full traceability of every operation; it handles top-ups, payment acceptance, member records and memberships, and service and pricing configuration. An offline-first architecture with WAL-style buffering: at many points of use connectivity is absent or intermittent, so operations are persisted locally and published to the backend as soon as the network returns, with no data loss. Shower hardware built for the context: a 230V-powered station with an internal power supply, two independent solenoid valves to run two showers per station, NFC reading with pay-per-use billing, and coin acceptance too, to keep the service accessible to the public. Firmware written in-house.
Tech stack
Backend in Go, native Android app, TimescaleDB database. Analytics dashboards on Grafana, protected via SSO. Everything self-managed on the same Kubernetes cluster on Oracle Cloud used for the shuttle system.
Current status
First year in production. ~250 members registered with an active NFC card, ~50 transactions on peak days. NFC cards act as the single reference for membership, showers and shuttles. Services and pricing are configurable from the app: new payable services can be enabled with no development work.
Key result
The shower service, a significant liability for the association in previous years, was turned into a positive margin through the combination of a time limit on delivery and pay-per-use billing, while keeping it publicly accessible (coins included).