How pvhung2112/cashew works
Cashew is a cross-platform personal-finance app. The principal workflow is entering transactions, organizing them into budgets and goals, then reviewing account balances and spending insights. Its Flutter interface also supports search, filtering, currency conversion, notifications, backup, and cross-device sync. The README identifies Drift/SQL and Firebase; the source excerpts do not include the Dart implementations, so links between these subsystems are limited to documented capabilities rather than inferred call chains.
Main entry points: tables.dart Drift database · syncClient.dart Sync client · main.dart Flutter app · homePage.dart Home dashboard
Components 17
App experience
- Flutter app
budget/lib/main.dart - Home dashboard
budget/lib/pages/homePage/homePage.dart
Finance features
- Transactions
budget/lib/pages/addTransactionPage.dart - Search and filters
budget/lib/pages/transactionsSearchPage.dart - Budgets
budget/lib/pages/budgetPage.dart - Goals
budget/lib/pages/objectivePage.dart - Accounts
budget/lib/pages/accountsPage.dart - Currency conversion
budget/lib/pages/exchangeRatesPage.dart - Spending insights
budget/lib/struct/spendingSummaryHelper.dart
Data and storage
- Drift database
budget/lib/database/tables.dart - Backup and restore
budget/lib/widgets/accountAndBackup.dart - CSV import/export
budget/lib/widgets/importCSV.dart
Connected services
- Sync client
budget/lib/struct/syncClient.dart - Firebase services
budget/lib/firebase_options.dart - Notifications
budget/lib/struct/initializeNotifications.dart
Other components
- User
- Exchange-rate service
Connections 19
- User → Flutter app: uses
- Flutter app → Home dashboard: shows
- User → Transactions: records
- User → Budgets: sets budgets
- User → Goals: sets goals
- User → Accounts: manages
- User → Search and filters: searches
- Transactions → Drift database: stores transactions
- Budgets → Drift database: stores budgets
- Goals → Drift database: stores goals
- Accounts → Drift database: stores accounts
- Home dashboard → Spending insights: shows summaries
- Spending insights → Drift database: reads finance data
- Currency conversion → Exchange-rate service: gets rates
- Sync client → Drift database: syncs data
- Sync client → Firebase services: uses
- Backup and restore → Drift database: backs up data
- CSV import/export → Drift database: imports and exports
- Notifications → User: sends reminders