Skip to content

About

An Android App for saving your loyalty cards, purely FOSS, free, no Google or 3rd party services. Try it now!πŸ“±

Topics

Resources

Stars

57 stars

Watchers

2 watching

Forks

Latest commit

Β 

History

368 Commits

Folders and files

Repository files navigation


Cardabase

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


πŸ‘Œ 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.

▢️ Live Demo

Try the interactive web preview here!

Note

The web demo is automatically compiled from the latest codebase to showcase upcoming and experimental features. Because it runs directly in the browser, platform-native capabilities (such as hardware camera scanning or device storage) may be limited or behave differently than on Android.

πŸ”œ 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

About

An Android App for saving your loyalty cards, purely FOSS, free, no Google or 3rd party services. Try it now!πŸ“±

Topics

Resources

Stars

57 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages