How detached-space/totals works
Totals is a local-first Flutter finance app centered on capturing bank SMS, turning them into transactions and balance updates, and presenting that data through accounts, budgets, history, and analytics. The graph also includes documented supporting capabilities: optional data sync, browser access, backup/import-export, security, and Android widgets. The README documents the principal relationships; sampled source excerpts cover Android SMS delegation, widget rendering, and shortcut launch handling, not the Dart runtime wiring, so those implementation links are not asserted beyond documented flows.
Main entry points: main.dart Flutter app · transaction_repository.dart Transactions · database_helper.dart Local database · server_service.dart Local HTTP server
Components 20
Transaction capture
- SMS receiver
app/android/app/src/main/kotlin/detached/totals/SafeIncomingSmsReceiver.kt - SMS parsing
app/lib/services/sms_service.dart - Transactions
app/lib/repositories/transaction_repository.dart
Finance management
- Accounts
app/lib/repositories/account_repository.dart - Categories
app/lib/repositories/category_repository.dart - Budgets
app/lib/services/budget_service.dart - Analytics
app/lib/screens/analytics_page.dart - Financial insights
app/lib/services/financial_insights.dart - Spending map
app/lib/_redesign/screens/spending_map_page.dart
App platform
- Local database
app/lib/database/database_helper.dart - Flutter app
app/lib/main.dart - Biometric lock
app/lib/_redesign/screens/lock_screen.dart - Home widgets
app/android/app/src/main/kotlin/detached/totals/ExpenseWidgetProvider.kt
External access
- Local HTTP server
app/lib/local_server/server_service.dart - Optional data sync
app/lib/services/data_sync/sync_service.dart - Export and import
app/lib/services/data_export_import_service.dart
Other components
- User
- Bank SMS
- Browser client
- Configured backend
Connections 23
- Bank SMS → SMS receiver: arrives as
README.md - SMS receiver → SMS parsing: delegates SMS
README.md - SMS parsing → Transactions: extracts transactions
README.md - Transactions → Local database: stores locally
README.md - Accounts → Local database: stores locally
README.md - User → Flutter app: uses
README.md - Flutter app → Accounts: manages
README.md - Flutter app → Transactions: views history
README.md - Flutter app → Categories: tags transactions
README.md - Flutter app → Budgets: configures
README.md - Budgets → Transactions: tracks spending
README.md - Flutter app → Analytics: presents analysis
README.md - Flutter app → Financial insights: presents insights
README.md - Flutter app → Spending map: offers opt-in map
README.md - Flutter app → Biometric lock: secures access
README.md - Flutter app → Home widgets: provides widget data
README.md - User → Local HTTP server: enables server
README.md - Browser client → Local HTTP server: requests data
README.md - Local HTTP server → Local database: reads finance data
README.md - User → Optional data sync: opts in
README.md - Optional data sync → Configured backend: pushes selected data
README.md - User → Export and import: backs up or restores
README.md - Export and import → Local database: imports and exports
README.md