Skip to content

GeorgeYT9769/cardabase-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

229 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


Cardabase

Cardabase is your digital wallet for loyalty cards. Save all your shop cards in one secure place and access them instantly.


πŸ‘Œ Features

  • 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

πŸ›‘οΈ Security

More info here

πŸ“² Installation

Get it on F-Droid

OR

  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.

❗ Acknowledgments

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).

πŸ”œ Coming soon

  • 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 ;)

πŸ“¦ Storage System

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)

πŸ“₯ Import a card via QR Code

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)

πŸ“Œ 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

🀝 Thanks to

πŸ™Œ Support

For support, message me on Discord: "georgeyt9769".

🀝 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.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 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

About

App for saving your loyalty cardπŸ“±πŸ’³

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors