Skip to content
adyptc-progPublic

About

Offline loyalty cards & memberships for small businesses — QR/NFC, no server, no accounts. Flutter, Android. AGPL-3.0.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

Fidelio

Local loyalty and membership management for small businesses. No server. Works offline. No accounts.

License: AGPL v3 Flutter Android


What is Fidelio?

Fidelio is a free, open-source Flutter app that lets small businesses manage loyalty cards and memberships entirely on-device — no server, no subscription, no internet connection required.

Works for coffee shops, salons, restaurants, delivery services, gyms, and any business that wants to reward loyal customers.


Features

Business Mode

  • Create and manage customers
  • Issue membership cards (with expiry dates and entry counts)
  • Issue loyalty cards — stamps, points, visit challenges, delivery
  • Validate access via QR scan or NFC (Android)
  • View full check-in history
  • Daily automatic USB backup
  • Unlimited cards with an activation license (see Free Tier & Activation License)

Client Mode

  • Import cards by scanning a business QR code or via NFC
  • Wallet view in list or grid
  • Generate a dynamic QR or NFC access code for any card
  • Update card locally after each visit

Privacy note: barcode and QR scanning uses Google ML Kit, which runs on the phone (camera images never leave it). Since version 1.0.5 the app has no Internet permission: it is stripped from the merged manifest and the ML Kit telemetry backend is unregistered (see android/app/src/main/AndroidManifest.xml), so nothing can be sent off the phone. Earlier versions let ML Kit send Google technical diagnostics, as described in Google's ML Kit data disclosure. Customer and card data never leave the phone.


How It Works

Business creates card  →  shares via QR/NFC
Client imports card    →  generates dynamic access code
Business scans code    →  validates locally, updates card

All validation happens on-device. QR codes are time-limited and signed with HMAC-SHA256. NFC uses Android HCE (Host Card Emulation). Replay attacks are prevented by a unique index on each signature.


Free Tier & Activation License

The complete source code — including the 10-card free limit — is published here under the AGPL-3.0. The code is not sold, and the rights the AGPL gives you (to use, study, modify and redistribute it) don't depend on buying anything.

What is sold is an activation license: a signed file, tied to one Business ID, that unlocks the 10-card limit in the Fidelio business app distributed by Volt Academy (the Android APK available at voltacademy.app/fidelio.html).

Cards per business Requirement
Up to 10 Free
Unlimited Activation license — 30, 60 or 180 days, or permanent

Licenses are bought at voltacademy.app/fidelio.html, where current prices are listed. Expirable licenses bought for the same Business ID add up, and the license becomes permanent automatically once their total reaches the price of a permanent license.

To activate a license:

  1. Open the License screen in the app and copy your Business ID.
  2. Buy a license on the site with that Business ID and download fidelio_license.json.
  3. Back on the License screen, tap Select License File and pick the file from your phone storage or from a USB-C stick. A file placed at /Fidelio/fidelio_license.json on a USB-C stick is also detected automatically.

The Fidelio client wallet apps on the App Store and Google Play are free and don't need a license.

Questions about licenses: voltacademy.app/contact.html


Platform Support

Feature Android iOS
QR scan & generate ✅ ✅
NFC access ✅ ❌
USB backup ✅ ❌
License import (file or USB) ✅ ❌

NFC and USB features use Android platform channels and are not available on iOS.


Getting Started

Requirements

  • Flutter SDK 3.10+
  • Android SDK (minSdk 24 — Android 7.0)

Run

git clone https://github.com/adyptc-prog/fidelio.git
cd fidelio
flutter pub get
flutter run

Test

flutter test
dart analyze

Build release APK

flutter build apk --release

Architecture

Clean architecture with three layers:

lib/
  domain/       # Entities, service interfaces, value objects
  data/         # Drift/SQLite repositories, Android services
  features/     # UI screens per feature
  app/          # Riverpod providers, router, theme
  • State management: Riverpod (AsyncNotifierProvider)
  • Navigation: GoRouter
  • Database: Drift (SQLite, local-only)
  • QR: mobile_scanner + qr_flutter

Author

Adrian Petcu — Volt Academy


Contributing

Pull requests are welcome. For major changes, open an issue first.

All contributions must be compatible with the AGPL-3.0 license.


License

Fidelio — Local Loyalty & Membership App
Copyright (C) 2026 Adrian Petcu — Volt Academy

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

The full text of the GNU Affero General Public License v3.0 is in LICENSE.

SPDX-License-Identifier: AGPL-3.0-or-later

About

Offline loyalty cards & memberships for small businesses — QR/NFC, no server, no accounts. Flutter, Android. AGPL-3.0.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages