How moneymanagerex/android-money-manager-ex works
Money Manager Ex for Android is a personal-finance app for managing accounts and transactions, budgets, currencies, investments, scheduled transactions, and reports. The usual user workflow is to open a database, work with financial records, then review summaries or export/synchronize data. The graph preserves these distinct product areas and the storage and service layers. Relationships are limited to calls or dependencies visible in excerpts and the source index, plus documented README context; unsampled UI-to-domain routes are not asserted.
Main entry points: AccountService.java Account Services · MmxOpenHelper.java SQLite Database · PocketBaseSyncEngine.java Cloud Sync · BudgetService.java Budget Service
Components 23
Database Workspace
- Database Workspace
app/src/main/java/com/money/manager/ex/home - Database Files
app/src/main/java/com/money/manager/ex/core/docstorage/FileStorageHelper.java - App Settings
app/src/main/java/com/money/manager/ex/settings/AppSettings.java - SQLite Database
app/src/main/java/com/money/manager/ex/database/MmxOpenHelper.java
Finance Management
- Accounts and Transactions
app/src/main/java/com/money/manager/ex/account - Account Services
app/src/main/java/com/money/manager/ex/servicelayer/AccountService.java - Account Repository
app/src/main/java/com/money/manager/ex/datalayer/AccountRepository.java - Account Model
app/src/main/java/com/money/manager/ex/domainmodel/Account.java - Currency Services
app/src/main/java/com/money/manager/ex/currency/CurrencyService.java - Investment Portfolio
app/src/main/java/com/money/manager/ex/investment - Price Updates
app/src/main/java/com/money/manager/ex/investment/prices/FreeCurrencyExchangeRateAPIService.java
Planning and Reports
- Budget Management
app/src/main/java/com/money/manager/ex/budget - Budget Service
app/src/main/java/com/money/manager/ex/budget/BudgetService.java - Budget Repositories
app/src/main/java/com/money/manager/ex/datalayer/BudgetRepository.java - Financial Reports
app/src/main/java/com/money/manager/ex/reports - Scheduled Transactions
app/src/main/java/com/money/manager/ex/scheduled - Recurring Service
app/src/main/java/com/money/manager/ex/servicelayer/RecurringTransactionService.java
App Services
- Cloud Sync
app/src/main/java/com/money/manager/ex/sync/PocketBaseSyncEngine.java - Sync Manager
app/src/main/java/com/money/manager/ex/sync/SyncManager.java - Money Arithmetic
money/src/main/java/info/javaperformance/money/Money.java
External Exchange
- Rate Provider
- PocketBase Service
app/src/main/java/com/money/manager/ex/sync/PocketBaseApiService.java
Other components
- Finance User
Connections 21
- Finance User → Database Workspace: opens database
- Database Workspace → Database Files: selects files
app/src/main/java/com/money/manager/ex/core/docstorage/FileStorageHelper.java - Database Files → SQLite Database: replaces database
app/src/main/java/com/money/manager/ex/core/docstorage/FileStorageHelper.java - Finance User → Accounts and Transactions: manages records
- Account Services → Account Repository: saves accounts
app/src/main/java/com/money/manager/ex/servicelayer/AccountService.java - Account Services → Account Model: creates account
app/src/main/java/com/money/manager/ex/servicelayer/AccountService.java - Account Repository → SQLite Database: persists records
- Currency Services → Account Services: loads accounts
app/src/main/java/com/money/manager/ex/currency/CurrencyService.java - Finance User → Budget Management: plans spending
- Budget Service → Budget Repositories: loads budgets
app/src/main/java/com/money/manager/ex/budget/BudgetService.java - Budget Service → SQLite Database: queries totals
app/src/main/java/com/money/manager/ex/budget/BudgetService.java - Finance User → Financial Reports: reviews finances
- Finance User → Scheduled Transactions: schedules transactions
- Recurring Service → Scheduled Transactions: uses recurrence
app/src/main/java/com/money/manager/ex/servicelayer/RecurringTransactionService.java - Finance User → Investment Portfolio: tracks portfolio
- Price Updates → Rate Provider: requests rates
- Finance User → Sync Manager: starts sync
- Sync Manager → Cloud Sync: coordinates sync
app/src/main/java/com/money/manager/ex/sync/PocketBaseSyncEngine.java - Cloud Sync → SQLite Database: reads and writes
app/src/main/java/com/money/manager/ex/sync/PocketBaseSyncEngine.java - Cloud Sync → PocketBase Service: pushes changes
app/src/main/java/com/money/manager/ex/sync/PocketBaseSyncEngine.java - Account Services → Money Arithmetic: calculates balances
app/src/main/java/com/money/manager/ex/servicelayer/AccountService.java