A Flutter application for scanning, storing, and managing QR codes and barcodes. This app allows users to scan codes using their device's camera and store the information locally for quick access later.
- Scan QR codes and barcodes using your device's camera
- Store scanned cards locally in a SQLite database
- View detailed information of each card including a generated QR code
- Offline functionality - no internet connection required
- Cross-platform support (Android, iOS)
Before you begin, ensure you have the following installed:
- Flutter SDK (version 3.7.0 or higher)
- Android Studio (for Android development)
- Xcode (for iOS development, macOS only)
- Git
git clone https://github.com/Pieter-Geerts/cards.git
cd cardsflutter pub get-
Start an Android Emulator:
- Open Android Studio
- Go to AVD Manager (Android Virtual Device Manager)
- Create a new virtual device if you don't have one
- Start the emulator
-
Check Available Devices:
flutter devices
-
Run the Application:
flutter run
If you have multiple devices connected, specify the device:
flutter run -d <device_id>
- Enable USB debugging on your device (Settings > Developer options)
- Connect your device via USB
- Run the application:
flutter run
lib/
├── main.dart # Application entry point
├── helpers/
│ └── database_helper.dart # SQLite database management
├── models/
│ └── card_item.dart # Data model for cards
└── pages/
├── home_page.dart # Main screen with card list
├── card_detail_page.dart # Detailed view of a card
└── add_card_page.dart # Camera scanner for adding new cards
The app uses SQLite to store all cards locally on the device. The database structure is:
Cards Table:
id: INTEGER (Primary Key)title: TEXTdescription: TEXTname: TEXT (Contains the scanned QR/barcode data)
You can edit a card's title and description by tapping the edit (pencil) icon on the card detail page. After saving, your changes will be persisted in the local database and reflected in the card list.
If you do not see your changes immediately, try returning to the main card list or restarting the app to refresh the view.
Run the tests using:
flutter test- Ensure you have the proper permissions set in AndroidManifest.xml
- For Android 6.0+ (API 23+), the app will request camera permission at runtime
- If using an emulator, ensure it supports camera emulation or use a physical device
- The database is created at first run
- If you need to reset the database, clear the app data or uninstall and reinstall
If you encounter compatibility issues, verify your package versions in pubspec.yaml match the following:
- mobile_scanner: ^7.0.0
- qr_flutter: ^4.0.0
- sqflite: ^2.2.0
- path: ^1.8.3
For detailed documentation, development guides, and workflows, visit:
- Release Guide - Complete release process
- Git Workflow - Development workflow setup
- Scripts Documentation - Available automation scripts
- Dependency Management - Managing dependencies
Contributions are welcome! Please start by reading our:
- Git Workflow Guide - Setup development environment
- Release Guide - Understanding the release process
Feel free to submit a Pull Request following our workflow guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.