How eliasilyz/money-manager works
Money Manager is an offline-first personal finance app. A user records transactions or transfers through feature screens; Riverpod providers mediate application state, repositories implement domain contracts, and Drift DAOs persist records in local SQLite. The README also documents budgeting, goals, debts, recurring reminders, analytics, security, and encrypted local/Google Drive backup. The sampled source is primarily platform scaffolding, so detailed feature-to-service wiring is inferred only where the README explicitly describes the architecture; uncertain links are omitted.
Main entry points: router.dart App routing · repositories Repositories · backup_service.dart Backup and restore · transactions Transactions
Components 24
User experience
- Transactions
lib/features/transactions - Transfers
lib/features/transfers - App routing
lib/routing/router.dart
Finance features
- Accounts
lib/features/accounts - Budgets and goals
lib/features/budgets - Debts
lib/features/debts - Recurring payments
lib/features/recurring - Currencies
lib/features/currencies - Dashboard and analytics
lib/features/dashboard - Calendar
lib/features/calendar - Financial notes
lib/features/notes - Categories
lib/features/categories
Domain and storage
- Domain services
lib/domain - Repositories
lib/data/repositories - Drift DAOs
lib/database/daos - Local SQLite
lib/database/database.dart
Privacy and support
- App security
lib/features/security - Encryption utilities
lib/core/crypto/crypto_utils.dart - Backup and restore
lib/features/settings/application/backup_service.dart - Google Drive
lib/features/settings/application/google_drive_service.dart - Local reminders
lib/features/settings/application/notification_service.dart - Localization
lib/l10n - Adaptive theme
lib/theme
Other components
- User
Connections 31
- User → App routing: opens app
- App routing → Transactions: routes to
- App routing → Transfers: routes to
- App routing → Accounts: routes to
- App routing → Budgets and goals: routes to
- App routing → Debts: routes to
- App routing → Recurring payments: routes to
- App routing → Currencies: routes to
- App routing → Dashboard and analytics: routes to
- App routing → Calendar: routes to
- App routing → Financial notes: routes to
- App routing → Categories: routes to
- Transactions → Domain services: uses services
- Transactions → Repositories: uses providers
- Transfers → Repositories: uses providers
- Accounts → Repositories: uses providers
- Budgets and goals → Repositories: uses providers
- Debts → Repositories: uses providers
- Recurring payments → Repositories: uses providers
- Currencies → Repositories: uses providers
- Dashboard and analytics → Repositories: uses providers
- Calendar → Repositories: uses transactions
- Financial notes → Repositories: uses providers
- Categories → Repositories: uses providers
- Repositories → Drift DAOs: queries and writes
- Drift DAOs → Local SQLite: reads and writes
- Backup and restore → Local SQLite: backs up data
- Backup and restore → Encryption utilities: encrypts exports
- Backup and restore → Google Drive: uploads backups
- App security → Encryption utilities: hashes PIN
- Recurring payments → Local reminders: schedules reminders