Developer overview
Set up the Flutter workspace and understand Salli's local-first engineering boundaries.
Salli is a Flutter application with a Kotlin Android capture layer and a local-first data architecture. The repository does not require a backend to run the product.
Requirements
- Flutter with Dart
>=3.4.0 <4.0.0 - Android SDK for Android builds
- Xcode and CocoaPods for iOS builds
- A physical device for production-like SMS or receipt validation
Run
cd salli_app
flutter pub get
flutter analyze --no-fatal-infos
flutter test
dart run tool/sms_pilot_report.dart
flutter run
Repository map
docs/ internal product and engineering records
documentation/ public Mintlify user and developer guide
salli_app/
lib/core/ exact money and wallet-currency primitives
lib/domain/ entities and deterministic use cases
lib/data/ encrypted store, SMS, OCR, rules, reminders
lib/application/ Riverpod state and serialized write-through
lib/presentation/ screens, sheets, widgets, and Ledger theme
lib/l10n/ English, Sinhala, and Tamil ARB sources
assets/ parser, corpus, classifier, icons, bank marks
test/ unit, widget, data, parser, and contract tests
tool/ SMS pilot and classifier tooling
Non-negotiable invariants
- Money is integer minor units end to end.
- A false-positive SMS transaction is a release blocker.
- Financial state remains useful without network access or an account.
- Manual entry remains complete when SMS permission is absent.
- Raw financial content does not enter logs, analytics, or support packages.
- User-visible calculations must expose their evidence or formula.
Current version
- App version:
0.1.2+5 - Database schema:
28 - Public documentation domain:
docs.prabhavalabs.com