How shahedpy/exptra works
EXPTRA is an offline-first personal finance app. Users navigate to transaction entry, record income or expenses (optionally organized by categories and sources), or record lending and borrowing; they can review activity on the dashboard and inspect scoped reports. The app also manages categories and sources and supports exporting and restoring local backups. The README documents Drift/SQLite storage and backup integrations, but the Dart implementations were not sampled, so internal call ownership and detailed data flow cannot be verified; the graph shows only documented high-level relationships.
Main entry points: main_navigation_page.dart Main navigation · repositories Data repositories · database_backup_service.dart Backup and restore · lend_borrow Lend and borrow
Components 16
App experience
- App entry
lib/main.dart - Main navigation
lib/modules/navigation/main_navigation_page.dart - Dashboard
lib/modules/dashboard - Backup and restore
lib/core/db/database_backup_service.dart
Finance activity
- Transaction history
lib/modules/income_expense/income_expense_page.dart - Income entry
lib/modules/income_expense/add_income_page.dart - Expense entry
lib/modules/income_expense/add_expense_page.dart - Lend and borrow
lib/modules/lend_borrow
Organization and insights
- Expense categories
lib/modules/expense_category - Income sources
lib/modules/income_source - Reports
lib/modules/reports
Local data
- Data repositories
lib/data/repositories - Local database
lib/core/db/app_database.dart
Other components
- User
- File picker
- System share sheet
Connections 28
- User → App entry: opens app
- App entry → Main navigation: starts
- User → Main navigation: navigates
- Main navigation → Dashboard: opens
- Main navigation → Transaction history: opens
- Main navigation → Lend and borrow: opens
- Main navigation → Expense categories: opens
- Main navigation → Income sources: opens
- Main navigation → Reports: opens
- User → Income entry: enters income
- User → Expense entry: enters expense
- User → Lend and borrow: records activity
- User → Backup and restore: backs up or restores
- User → Expense categories: manages categories
- User → Income sources: manages sources
- User → Reports: reviews totals
- Backup and restore → File picker: selects backup
- Backup and restore → System share sheet: shares backup
- Income entry → Data repositories: stores entries
- Expense entry → Data repositories: stores entries
- Lend and borrow → Data repositories: stores activity
- Expense categories → Data repositories: manages categories
- Income sources → Data repositories: manages sources
- Dashboard → Data repositories: reads summaries
- Transaction history → Data repositories: reads history
- Reports → Data repositories: reads aggregates
- Data repositories → Local database: reads and writes
- Backup and restore → Local database: exports or restores