How thudao612/cashew works
Cashew is a cross-platform personal-finance app. The main workflow is to record and organize transactions, apply them to budgets or goals, then review spending and account summaries. Local Drift storage underpins financial records; documented branches include currency conversion, sync and backup, reminders, and CSV import/export. The README documents capabilities, but sampled implementation is limited, so several internal call relationships cannot be verified and are not shown.
Main entry points: tables.dart Drift database · main.dart App shell · addTransactionPage.dart Transactions · accountsPage.dart Accounts and wallets
Components 19
Finance workflows
- Transactions
budget/lib/pages/addTransactionPage.dart - Search and history
budget/lib/pages/transactionsListPage.dart - Budgets
budget/lib/pages/addBudgetPage.dart - Goals
budget/lib/pages/addObjectivePage.dart
Insights and accounts
- Accounts and wallets
budget/lib/pages/accountsPage.dart - Dashboard insights
budget/lib/pages/homePage/homePage.dart - Currency conversion
budget/lib/struct/currencyFunctions.dart
Storage and platform
- App shell
budget/lib/main.dart - Drift database
budget/lib/database/tables.dart - Database access
budget/lib/struct/databaseGlobal.dart - CSV import
budget/lib/widgets/importCSV.dart - CSV export
budget/lib/widgets/exportCSV.dart
Sync and integrations
- Sync client
budget/lib/struct/syncClient.dart - Firebase authentication
budget/lib/struct/firebaseAuthGlobal.dart - Backup controls
budget/lib/widgets/accountAndBackup.dart - Notifications
budget/lib/struct/initializeNotifications.dart
Other components
- User
- Firebase services
- Google Drive
Connections 16
- User → App shell: opens
- App shell → Transactions: shows finance UI
- App shell → Dashboard insights: shows summaries
- Transactions → Drift database: stores records
- Search and history → Drift database: reads records
- Budgets → Drift database: stores budgets
- Goals → Drift database: stores goals
- Accounts and wallets → Drift database: reads accounts
- Dashboard insights → Drift database: reads financial data
- Currency conversion → Accounts and wallets: supports conversion
- CSV import → Drift database: imports records
- CSV export → Drift database: exports records
- Sync client → Firebase services: syncs data
- Firebase authentication → Firebase services: authenticates
- Backup controls → Google Drive: backs up data
- Notifications → User: sends reminders