How krawmire/profitocracy works
Profitocracy is a local-first budgeting app for applying the 50-30-20 rule, tracking transactions and category budgets, and reviewing spending across billing periods. The usual user journey is to enter income or expenses, then inspect actual-versus-planned amounts and historical summaries; profiles, currencies, recurring entries, settings, and backup/import-export extend that journey. The graph distinguishes the mobile app, domain services, and SQLite persistence. Some feature wiring is not shown in the sampled source, so uncertain UI-to-service connections are omitted.
Main entry points: CalculationService.cs Budget calculations · App.xaml.cs App startup · TransactionService.cs Transaction operations · TransactionRepository.cs Transaction repository
Components 22
Mobile app
- App startup
src/Profitocracy.Mobile/App.xaml.cs - Authentication screen
src/Profitocracy.Mobile/Views/Auth/AuthPage.xaml.cs - App navigation
src/Profitocracy.Mobile/AppShell.xaml.cs - Budget home
src/Profitocracy.Mobile/ViewModels/Home/HomePageViewModel.cs - Transaction screens
src/Profitocracy.Mobile/ViewModels/Transactions/TransactionsPageViewModel.cs - Spending overview
src/Profitocracy.Mobile/ViewModels/Overview/OverviewPageViewModel.cs - Profile settings
src/Profitocracy.Mobile/ViewModels/Profiles/ProfileSettingsPageViewModel.cs - App settings
src/Profitocracy.Mobile/ViewModels/Settings/ImportExportSettingsPageViewModel.cs
Budget domain
- Budget calculations
src/Profitocracy.Core/Domain/Services/CalculationService.cs - Transaction operations
src/Profitocracy.Core/Domain/Services/TransactionService.cs - Profiles and budgets
src/Profitocracy.Core/Domain/Model/Profiles/Profile.cs - Transactions
src/Profitocracy.Core/Domain/Model/Transactions/Transaction.cs - Period summaries
src/Profitocracy.Core/Domain/Model/Summaries/Summary.cs - Categories
src/Profitocracy.Core/Domain/Model/Categories/Category.cs
Local persistence
- Profile repository
src/Profitocracy.Infrastructure/Persistence/Sqlite/Repositories/ProfileRepository.cs - Transaction repository
src/Profitocracy.Infrastructure/Persistence/Sqlite/Repositories/TransactionRepository.cs - Category repository
src/Profitocracy.Infrastructure/Persistence/Sqlite/Repositories/CategoryRepository.cs - SQLite database
src/Profitocracy.Infrastructure/Persistence/Sqlite/Configuration/DbConnection.cs
Device integrations
- Recurring worker
src/Profitocracy.Mobile/Platforms/Android/Work/RecurringTransactionWorker.cs - Local notifications
src/Profitocracy.Mobile/Services/Static/NotificationService.cs - Backup provider
src/Profitocracy.Infrastructure/Integrations/BackupProvider.cs
Other components
- Budget user
Connections 12
- Budget user → App startup: starts app
- App startup → Authentication screen: requires authentication
- App startup → App navigation: opens navigation
- Authentication screen → App navigation: authentication passed
- Budget calculations → Profile repository: loads and updates
- Budget calculations → Transaction repository: reads transactions
- Budget calculations → Category repository: reads categories
- Transaction operations → Profile repository: loads current profile
- Transaction operations → Transaction repository: reads and writes
- Transaction repository → SQLite database: queries and persists
- Recurring worker → Transaction operations: creates recurring entries
- Recurring worker → Local notifications: requests notification