How lciszewski27/where-is-my-money works
Where is my money? is an offline-first Android app for tracking shared debts, repayments, and balances. The main workflow is to enter a debt, associate it with a person and optionally a category or due date, then review balances and record settlements; dashboard, person-detail, and statistics views present the resulting state. Room stores financial records locally, while preferences and JSON backup support customization and user-controlled portability. The graph follows the documented architecture and sampled source; several screen-to-view-model and settings integrations are represented at subsystem level because their implementation excerpts were not provided.
Main entry points: ui Screen state · AppNavHost.kt Navigation host · PersonDetailScreen.kt Person details · MainActivity.kt Main activity
Components 21
App shell
- Main activity
app/src/main/java/dev/lciszewski27/whereismymoney/MainActivity.kt - App dependencies
app/src/main/java/dev/lciszewski27/whereismymoney/WhereIsMyMoneyApp.kt - Navigation host
app/src/main/java/dev/lciszewski27/whereismymoney/ui/navigation/AppNavHost.kt
User experience
- Dashboard
app/src/main/java/dev/lciszewski27/whereismymoney/ui/dashboard/DashboardScreen.kt - Debt entry
app/src/main/java/dev/lciszewski27/whereismymoney/ui/adddebt/AddDebtScreen.kt - Person details
app/src/main/java/dev/lciszewski27/whereismymoney/ui/person/PersonDetailScreen.kt - Statistics
app/src/main/java/dev/lciszewski27/whereismymoney/ui/stats/StatsScreen.kt - Settings
app/src/main/java/dev/lciszewski27/whereismymoney/ui/settings/SettingsScreen.kt - Backup settings
app/src/main/java/dev/lciszewski27/whereismymoney/ui/settings/pages/BackupSettingsPage.kt - Screen state
app/src/main/java/dev/lciszewski27/whereismymoney/ui
Debt domain
- Debt repository
app/src/main/java/dev/lciszewski27/whereismymoney/domain/repository/DebtRepository.kt - Repository implementation
app/src/main/java/dev/lciszewski27/whereismymoney/data/repository/DebtRepositoryImpl.kt - Debt calculations
app/src/main/java/dev/lciszewski27/whereismymoney/domain/usecase - Money utilities
app/src/main/java/dev/lciszewski27/whereismymoney/domain/util
Local data
- Room database
app/src/main/java/dev/lciszewski27/whereismymoney/data/local/AppDatabase.kt - Data access
app/src/main/java/dev/lciszewski27/whereismymoney/data/local/dao - User preferences
app/src/main/java/dev/lciszewski27/whereismymoney/data/local/preferences/UserPreferencesDataStore.kt - JSON backup
app/src/main/java/dev/lciszewski27/whereismymoney/data/local/BackupService.kt
Other components
- App user
- Android share sheet
- Avatar image service
Connections 26
- App user → Main activity: opens
- Main activity → App dependencies: reads preferences
- Main activity → Navigation host: hosts
- Navigation host → Dashboard: shows
- Navigation host → Debt entry: hosts sheet
- Navigation host → Person details: shows
- Navigation host → Statistics: shows
- Navigation host → Settings: shows
- Dashboard → Screen state: dispatches events
- Debt entry → Screen state: dispatches events
- Person details → Screen state: dispatches events
- Statistics → Screen state: observes state
- Settings → Screen state: observes state
- Screen state → Debt repository: requests data
- Debt repository → Repository implementation: implemented by
- Repository implementation → Data access: queries and updates
- Data access → Room database: reads and writes
- Repository implementation → Money utilities: converts balances
- Screen state → Debt calculations: runs workflows
- Debt calculations → Debt repository: requests data
- Settings → Backup settings: opens backup
- Backup settings → JSON backup: imports and exports
- JSON backup → Data access: reads and writes
- App dependencies → User preferences: provides
- Person details → Android share sheet: shares reminder
- Avatar image service → Person details: loads contributor images