Cardabase is your digital wallet for loyalty cards. Save all your shop cards in one secure place and access them instantly.
- Light/dark mode themes
- Modern look with user-friendly layout
- Light, fast and smooth experience
- Encrypted storage
- Support for modern barcode types
- Password protected cards
- Share cards easily with QR Codes
- Does not need internet connection
More info here
OR
- Download latest official release.
- Locate the "cardabase-(version you got).apk" file (usually in the Internal storage/Downloads folder).
- Allow installing apps from unknown sources.
- Install it by clicking on the "Install" button.
Note
F-Droid releases might not be in sync with those from GitHub.
By downloading the app you agree:
- To accept the MIT license;
- That the owner, creators, and contributors are not responsible for any hardware, software, emotional, or other damages made by bugs in the app. Download and use at your own risk;
- To allow Cardabase to use local storage (camera, internet connection - optional).
- add biometric identification for the password
- 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
- anonymous bug reporting (to Discord issue tracker)
- idk, let me know via issues ;)
From 1.5.0, Cardabase uses this storage system:
'ID': VALUE # EXAMPLE,
'cardName': <Card Name>,
'cardId': <Card ID>,
'redValue': <R value>,
'greenValue': <G value>,
'blueValue': <B value>,
'cardType': <Card Type>,
'hasPassword': <Password>,
'uniqueId': <Unique ID>,
'tags': <Tags>,
<Card Name>- Name of the card (String)<Card ID>- ID of the card (String)<R value>- Value of Red color, 0 - 255 (int)<G value>- Value of Green color, 0 - 255 (int)<B value>- Value of Blue color, 0 - 255 (int)<Card Type>- Type of the card, they can be THESE or THESE, (same types) (String)<Password>- If the card has a password or not (bool)<Unique ID>- ID of each card, YYYYMMDDHHMMSSX, X is a bonus number only applied when importing all cards at once (String)<Tags>- List of tags to categorize the cards (List with Strings in it)
From 1.3.0, you can easily import a card via QR Code.
This is how the structure of the data in the QR Code looks like:
'cardName': controller.text, 'cardId': controllercardid.text, 'redValue': redValue, 'greenValue': greenValue, 'blueValue': blueValue, 'cardType': cardTypeText, 'hasPassword': hasPassword, 'uniqueId': uniqueId, 'tags': selectedTags.toList(),
<Card Name>- Name of the card (String)<Card ID>- ID of the card (String)<R value>- Value of Red color, 0 - 255 (int)<G value>- Value of Green color, 0 - 255 (int)<B value>- Value of Blue color, 0 - 255 (int)<Card Type>- Type of the card, they can be THESE or THESE, (same types) (String)<Password>- If the card has a password or not (bool)
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
- Edin DivoviΔ
- Wim Van Laer
- All the bug reporters that make the app even better.
For support, message me on Discord: "georgeyt9769".
Contact me for more info :). If your phone does not have issues with the app, you can add your device into the Tests file.
git clonethe repository,cd cardabase-appinto it,flutter pub getto download the dependencies,flutter build apkin Terminal (you can add--split-per-abiif 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.38.5 (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 lineorg.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)









