FLUTTER ECOSYSTEM

GeorgeYT9769/cardabase-app

Um aplicativo Android para salvar seus cartões de fidelidade, totalmente FOSS, gratuito, sem serviços do Google ou terceiros. Experimente agora! 📱

Capa do projeto Cardabase
Stars
57
Forks
9
Último push (UTC)
14 de set. de 2026
Status do projeto
Ativo
Juraj Ondovčík GitHub avatar
GITHUB User

Juraj Ondovčík ↗

Learning Flutter Check out my app, Cardabase!

LinguagensDartCC++CMakeHTMLGoKotlinRubyShellDockerfile

Tópicos técnicos

Pacotes e exemplos relacionados

Dependências usadas

Lista de dependências 43 itens

Categorias de apps

README original

Texto original em inglês. Visite o GitHub para a versão atual.

Expandir / recolher README


Cardabase

Lightweight digital wallet to securely scan, store, and manage loyalty cards offline.

Banner
GitHub Repo stars GitHub forks GitHub license GitHub Downloads (all assets, all releases) Downloads@latest Commit Activity F-Droid
Discord


👌 Key Features

  • 100% Offline & Private: No tracking, no data collection, and no internet connection required to manage your cards.
  • Fast Barcode Scanning: Easily scan physical cards using your device's camera or import them from images.
  • Encrypted Storage: Protect your sensitive cards and data with password-secured local encryption.
  • Screen Brightness Control: Automatically adjusts your screen brightness when displaying a card for seamless scanning at checkout counters.
  • Import & Export: Take full control of your data with easy backup and restore options.
  • Modern, Lightweight UI: Fast, clean design optimized for daily use without bloat.

🛡️ Security

More info here

📲 Installation

Get it on F-Droid

Get it on Orion Store

OR

Get it on GitHub

  1. ⬆️ Download latest official release ⬆️.
  2. Locate the "cardabase-(version you got).apk" file (usually in the Internal storage/Downloads folder).
  3. Allow installing apps from unknown sources.
  4. Install it by clicking on the "Install" button.

[!NOTE] F-Droid releases might not be in sync with those from GitHub.

🔜 Coming soon

  • add a counter to every card, so when card is clicked, it would add a point, then this could be used to sort by the most used cards
  • custom color theme, custom theme builder
  • advanced front image editor
  • idk, let me know via issues ;)

📌 Permissions

Currently, the app uses these permissions (+ why are they needed) :

  • android.permission.WRITE_EXTERNAL_STORAGE - used by the storage system to save the app's data, mandatory
  • android.permission.READ_EXTERNAL_STORAGE - used by the storage system to save the app's data, mandatory
  • android.permission.MANAGE_EXTERNAL_STORAGE - used by the import and export system, optional
  • android.permission.WRITE_SETTINGS - used by the brightness controller, optional
  • android.permission.VIBRATE - used to vibrate the device on actions, optional
  • android.permission.INTERNET - used to check the latest version of the app and fetch the online changelog, optional
  • android.permission.CAMERA - used to read barcodes and take pictures of the cards, optional
  • android.permission.READ_MEDIA_IMAGES - used to select images for cards, optional
  • android.permission.READ_MEDIA_VISUAL_USER_SELECTED - used to select images for cards, optional
  • android.permission.USE_BIOMETRIC - for fingerprint verification if a card password is used, optional

🤝 Thanks to

🙌 Support

Buy Me a Coffee
ko-fi

🤝 Contributing

Contact me for more info :). If your phone does not have issues with the app, you can add your device into the Tests file.

🔨 Self-Building

  1. git clone the repository,
  2. cd cardabase-app into it,
  3. flutter pub get to download the dependencies,
  4. flutter build apk in Terminal (you can add --split-per-abi if you want to get multiple versions).

[!NOTE] Signing of the app is ON. You need a singature key and a key.properties in the /cardabase-app/android folder or else the build will fail. You can change THIS LINE to debug to sign it with a debug key.

Used versions:

  • Flutter: 3.47.2 (or newer, used Flutter version is always added as a submodule, so you can use that one)
  • Java: JDK-21
  • Gradle: 8.14.2

Note: Java and Gradle versions must be compatible with each other. See this Compatibility Matrix.

You may need to:

  • Specify JAVA_HOME in gradle.properties = android/gradle.properties, add a line org.gradle.java.home="C:\\path\\to\\the\\jdk", where you have to specify your path, (<- in case of multiple/no versions or JAVA_HOME environment variable not specified)
  • Change Gradle version in gradle-wrapper.properties = android\gradle\wrapper\gradle-wrapper.properties, last line "distributionUrl" (change the "X.X" or "X.X.X" number). (<- in case of different Gradle installation)

📸 Screenshots

Homepage light mode Card view light mode New card light mode Settings light mode Homepage dark mode Card view dark mode New card dark mode Settings dark mode