PassesBox is a small security-focused app. Good contributions keep the vault local, the behavior predictable, and the platform support honest.
Open an issue first for larger changes, especially anything that touches encryption, backup formats, authentication, or storage.
git clone https://github.com/gabrimatic/passes_box.git
cd passes_box
flutter pub get
flutter runlib/
├── main.dart
├── app.dart # App widget, theme, routes
├── core/
│ ├── index.dart # Barrel export
│ ├── models/
│ │ └── password.dart # PasswordModel
│ ├── navigation/
│ │ ├── get_pages.dart # Route definitions
│ │ └── navigation.dart # Navigation helpers
│ ├── values/
│ │ ├── colors.dart
│ │ ├── strings.dart
│ │ └── values.dart # Shared preferences, constants
│ └── widgets/
│ └── widgets.dart # Reusable widgets
├── repository/
│ ├── db.dart # Database + encryption layer
│ ├── db_factory_io.dart
│ └── db_factory_web.dart
└── src/
├── startup/
│ └── vault_recovery_page.dart # Recovery when local vault storage cannot open
├── splash/
│ └── view/page.dart # Biometric auth gate
├── home/
│ ├── controller/
│ │ ├── controller.dart # GetX controller, CRUD
│ │ └── io.dart # Backup / restore
│ ├── dialogs/
│ │ └── dialogs.dart # Password entry, settings, delete
│ └── view/
│ └── page.dart
└── about/
└── page/about_page.dart
- State management: GetX
- Database: sembast with an AES-256-GCM encrypted codec
- Platform-conditional imports for IO vs Web database factories
- All database operations return Futures and must be awaited
- PasswordModel equality is by database key
flutter analyze
flutter testCI runs both commands before Android and Web builds. Tagged release builds run the same verification before packaging Android, Web, macOS, and Windows artifacts. Changes to credential parsing, generation, validation, restore behavior, or clipboard handling should include focused tests for the behavior being changed.
| Platform | Command |
|---|---|
| Android | flutter build apk |
| iOS | flutter build ios --no-codesign |
| macOS | flutter build macos |
| Web | flutter build web |
-
flutter analyzepasses with no issues -
flutter testpasses - Tested on at least one target platform
- No hardcoded secrets or keys
- Commit message is one line, descriptive
- No unrelated changes included
Use the bug report template. Include:
- Platform and OS version
- Flutter version (
flutter --version) - Steps to reproduce
- Expected vs actual behavior
See SECURITY.md.