How omdkrm/money-managment works
مدیریت سرمایه is a Persian-language Android wealth and portfolio app. Users record transactions and assets, then review portfolio values, dashboards, reports, and diagnostics; market-price synchronization and safe local/cloud backup support that workflow. The graph separates UI, portfolio logic, market data, and persistence. Edges are limited to relationships shown by excerpts or the source index; provider dispatch details and several screen-to-data interactions were not sampled, so they are omitted or marked unverified.
Main entry points: MainActivity.kt App navigation · WealthRepository.kt Wealth repository · StrategyDiagnostic.kt Price diagnostics · CompositeMarketDataProvider.kt Market data provider
Components 31
App interface
- App navigation
app/src/main/java/ir/modiriatsarmaye/app/MainActivity.kt - Dashboard
app/src/main/java/ir/modiriatsarmaye/app/ui/screens/DashboardScreen.kt - Portfolio view
app/src/main/java/ir/modiriatsarmaye/app/ui/screens/PortfolioScreen.kt - Transactions
app/src/main/java/ir/modiriatsarmaye/app/ui/screens/TransactionsScreen.kt - Add transaction
app/src/main/java/ir/modiriatsarmaye/app/ui/screens/AddTransactionSheet.kt - Reports
app/src/main/java/ir/modiriatsarmaye/app/ui/screens/ReportsScreen.kt - Settings and backup
app/src/main/java/ir/modiriatsarmaye/app/ui/screens/MoreScreen.kt - Gold diagnostics
app/src/main/java/ir/modiriatsarmaye/app/ui/components/GoldDiagnosticCard.kt - Stock diagnostics
app/src/main/java/ir/modiriatsarmaye/app/ui/components/StockDiagnosticCard.kt - Persian date picker
app/src/main/java/ir/modiriatsarmaye/app/ui/components/PersianDatePickerDialog.kt
Portfolio services
- Wealth state
app/src/main/java/ir/modiriatsarmaye/app/ui/viewmodel/WealthViewModel.kt - Wealth repository
app/src/main/java/ir/modiriatsarmaye/app/data/repository/WealthRepository.kt - Portfolio calculations
app/src/main/java/ir/modiriatsarmaye/app/util/CalculationEngine.kt - Persian formatting
app/src/main/java/ir/modiriatsarmaye/app/util/PersianUtils.kt - Jalali calendar
app/src/main/java/ir/modiriatsarmaye/app/util/JalaliDate.kt
Market pricing
- Market data provider
app/src/main/java/ir/modiriatsarmaye/app/data/market/CompositeMarketDataProvider.kt - Gold prices
app/src/main/java/ir/modiriatsarmaye/app/data/market/GoldPriceProvider.kt - Stock prices
app/src/main/java/ir/modiriatsarmaye/app/data/market/StockPriceProvider.kt - Fund prices
app/src/main/java/ir/modiriatsarmaye/app/data/market/FundMarketPriceProvider.kt - Instrument mapping
app/src/main/java/ir/modiriatsarmaye/app/data/market/AssetInstrumentMapper.kt - Stock mapping
app/src/main/java/ir/modiriatsarmaye/app/data/market/StockInstrumentMapper.kt - Fund mapping
app/src/main/java/ir/modiriatsarmaye/app/data/market/FundInstrumentMapper.kt - Market price model
app/src/main/java/ir/modiriatsarmaye/app/data/market/MarketPrice.kt - Price diagnostics
app/src/main/java/ir/modiriatsarmaye/app/data/market/StrategyDiagnostic.kt
Persistence and backup
- Room database
app/src/main/java/ir/modiriatsarmaye/app/data/local/AppDatabase.kt - Data access objects
app/src/main/java/ir/modiriatsarmaye/app/data/local/Daos.kt - Safe backup restore
app/src/main/java/ir/modiriatsarmaye/app/data/backup/SafeBackupManager.kt - Google Drive backup
app/src/main/java/ir/modiriatsarmaye/app/data/cloud/GoogleDriveBackupManager.kt - Data cleanup
app/src/main/java/ir/modiriatsarmaye/app/data/local/SafeDataCleanup.kt - Initial data
app/src/main/java/ir/modiriatsarmaye/app/data/local/InitialData.kt
Other components
- User
Connections 38
- User → App navigation: opens app
app/src/main/java/ir/modiriatsarmaye/app/MainActivity.kt - App navigation → Wealth state: creates state
app/src/main/java/ir/modiriatsarmaye/app/MainActivity.kt - App navigation → Dashboard: routes to
app/src/main/java/ir/modiriatsarmaye/app/MainActivity.kt - App navigation → Portfolio view: routes to
app/src/main/java/ir/modiriatsarmaye/app/MainActivity.kt - App navigation → Transactions: routes to
app/src/main/java/ir/modiriatsarmaye/app/MainActivity.kt - App navigation → Add transaction: routes to
app/src/main/java/ir/modiriatsarmaye/app/MainActivity.kt - App navigation → Reports: routes to
app/src/main/java/ir/modiriatsarmaye/app/MainActivity.kt - App navigation → Settings and backup: routes to
app/src/main/java/ir/modiriatsarmaye/app/MainActivity.kt - Portfolio view → Gold diagnostics: renders
app/src/main/java/ir/modiriatsarmaye/app/ui/screens/PortfolioScreen.kt - Portfolio view → Stock diagnostics: renders
app/src/main/java/ir/modiriatsarmaye/app/ui/screens/PortfolioScreen.kt - Persian date picker → Jalali calendar: uses dates
app/src/main/java/ir/modiriatsarmaye/app/ui/components/PersianDatePickerDialog.kt - Wealth state → Wealth repository: requests data
app/src/main/java/ir/modiriatsarmaye/app/ui/viewmodel/WealthViewModel.kt - Wealth state → Portfolio calculations: calculates
app/src/main/java/ir/modiriatsarmaye/app/ui/viewmodel/WealthViewModel.kt - Wealth repository → Room database: reads and writes
app/src/main/java/ir/modiriatsarmaye/app/data/repository/WealthRepository.kt - Wealth repository → Market data provider: fetches prices
app/src/main/java/ir/modiriatsarmaye/app/data/repository/WealthRepository.kt - Wealth repository → Portfolio calculations: calculates holdings
app/src/main/java/ir/modiriatsarmaye/app/data/repository/WealthRepository.kt - Wealth repository → Safe backup restore: validates restore
app/src/main/java/ir/modiriatsarmaye/app/data/repository/WealthRepository.kt - Wealth repository → Google Drive backup: uses cloud backup
app/src/main/java/ir/modiriatsarmaye/app/data/repository/WealthRepository.kt - Wealth repository → Data cleanup: cleans data
app/src/main/java/ir/modiriatsarmaye/app/data/repository/WealthRepository.kt - Wealth repository → Initial data: resets defaults
app/src/main/java/ir/modiriatsarmaye/app/data/repository/WealthRepository.kt - Room database → Initial data: seeds database
app/src/main/java/ir/modiriatsarmaye/app/data/local/AppDatabase.kt - Safe backup restore → Room database: restores transactionally
app/src/main/java/ir/modiriatsarmaye/app/data/backup/SafeBackupManager.kt - Settings and backup → Safe backup restore: uses backup
app/src/main/java/ir/modiriatsarmaye/app/ui/screens/MoreScreen.kt - Market data provider → Gold prices: dispatches
app/src/main/java/ir/modiriatsarmaye/app/data/market/CompositeMarketDataProvider.kt - Market data provider → Stock prices: dispatches
- Market data provider → Fund prices: dispatches
app/src/main/java/ir/modiriatsarmaye/app/data/market/CompositeMarketDataProvider.kt - Gold prices → Instrument mapping: maps instruments
app/src/main/java/ir/modiriatsarmaye/app/data/market/GoldPriceProvider.kt - Stock prices → Stock mapping: maps instruments
app/src/main/java/ir/modiriatsarmaye/app/data/market/StockPriceProvider.kt - Fund prices → Fund mapping: maps instruments
app/src/main/java/ir/modiriatsarmaye/app/data/market/FundMarketPriceProvider.kt - Gold prices → Market price model: produces prices
app/src/main/java/ir/modiriatsarmaye/app/data/market/GoldPriceProvider.kt - Stock prices → Market price model: produces prices
app/src/main/java/ir/modiriatsarmaye/app/data/market/StockPriceProvider.kt - Fund prices → Market price model: produces prices
app/src/main/java/ir/modiriatsarmaye/app/data/market/FundMarketPriceProvider.kt - Gold prices → Price diagnostics: records results
app/src/main/java/ir/modiriatsarmaye/app/data/market/GoldPriceProvider.kt - Stock prices → Price diagnostics: records results
app/src/main/java/ir/modiriatsarmaye/app/data/market/StockPriceProvider.kt - Fund prices → Price diagnostics: records results
app/src/main/java/ir/modiriatsarmaye/app/data/market/FundMarketPriceProvider.kt - Gold diagnostics → Price diagnostics: displays
app/src/main/java/ir/modiriatsarmaye/app/ui/components/GoldDiagnosticCard.kt - Stock diagnostics → Price diagnostics: displays
app/src/main/java/ir/modiriatsarmaye/app/ui/components/StockDiagnosticCard.kt - Persian formatting → Jalali calendar: formats dates
app/src/main/java/ir/modiriatsarmaye/app/util/PersianUtils.kt