Badge Magic with LEDs - mobile and desktop app, iOS, Mac, Android
# Project Overview
**Badge Magic App** is a Flutter cross-platform application for designing and
programming LED badges and electronic displays. It allows users to create
custom messages and layouts using text, images, clipart, QR codes, barcodes,
and other elements, then transfer them to compatible LED badge devices.
## Tech Stack
- **Framework**: Flutter (stable channel)
- **Language**: Dart
- **State Management**: Provider pattern
- **Supported Platforms**: Android, iOS, Linux, macOS, Windows, Web
## Repository Structure
```text
badgemagic-app/
โโโ android/ # Android-specific platform code
โโโ iOS/ # iOS-specific platform code
โโโ linux/ # Linux-specific platform code
โโโ macos/ # macOS-specific platform code
โโโ windows/ # Windows-specific platform code
โโโ web/ # Web-specific platform code
โโโ lib/ # Code shared by all platforms
โ โโโ badgemagic_module/ # Core badge logic, BLE transfer, data generators
โ โโโ badge_animation/ # Badge animation definitions
โ โโโ badge_effect/ # Badge effect definitions
โ โโโ globals/ # Global state and singletons
โ โโโ providers/ # State management using Provider
โ โโโ services/ # App-level services
โ โโโ utils/ # Helper functions and utilities
โ โโโ view/ # UI screens and widgets
โ โโโ virtualbadge/ # Virtual badge preview
โ โโโ l10n/ # Localization (i18n) files
โ โโโ constants.dart # Shared constants
โ โโโ main.dart # App entry point
โโโ test/ # Unit and widget tests
โโโ assets/ # Images, clipart, icons, and fonts
โโโ .github/
โ โโโ workflows/ # CI/CD workflows
โโโ pubspec.yaml # Dependencies and project configuration
โโโ README.md # Project documentation
```
## Coding Standards
- Adhere to the coding style described in <https://dart.dev/effective-dart/style>.
- Adhere to the SOLID design principles described in <https://simple.wikipedia.org/wiki/SOLID_(object-oriented_design)>.
- Adhere to Object-Oriented Design best practices described in <http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod>.
- Keep in mind the architecture recommendations described in <https://docs.flutter.dev/app-architecture/guide>.
## Commit Style
- Adhere to the commit style described in the file `commitStyle.md` in the `docs` folder of this project.
## UI guidelines
- The UI of the app must be consistent
- The UI of the app should adhere to the best practices for adaptive design described in <https://docs.flutter.dev/ui/adaptive-responsive/best-practices>.