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](https://www.virustotal.com/gui/file/16c68fd2161573f337b175c8c68a9be98f416b9bd91790286c44bb13466e6526) ## ๐Ÿ“ฒ Installation [Get it on F-Droid](https://f-droid.org/packages/com.georgeyt9769.cardabase/) [Get it on Orion Store](https://rookieenough.github.io/Orion-Data/redirect.html?id=cardabase) OR [Get it on GitHub](https://github.com/GeorgeYT9769/cardabase-app/releases/latest) 1. โฌ†๏ธ Download [latest official release](https://github.com/GeorgeYT9769/cardabase-app/releases/latest) โฌ†๏ธ. 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](https://georgeyt9769.github.io/cardabase-app/)! > [!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 - [Edin Divoviฤ‡](https://www.youtube.com/@NotEdin_) - [Wim Van Laer](https://github.com/wim07101993) - All the bug reporters that make the app even better. ## ๐Ÿ™Œ Support Buy Me a Coffee
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/M5J124MU0N) ## ๐Ÿค 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](https://github.com/GeorgeYT9769/cardabase-app/blob/1daf9c7244a081fe847b499cc55509c10772668d/android/app/build.gradle#L86) 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](https://docs.gradle.org/current/userguide/compatibility.html). 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