How developer-akbar/finance-manager-mobile-app-v2 works
FinMan is a local-first personal-finance app. The main workflow is entering or importing financial activity, persisting it on-device, and viewing account, category, dashboard, and analytics summaries. It also covers budgets, investment and stock tracking, and shared-expense settlement. The README describes no cloud sync, while the tree and sampled settings/sync code show an optional Google Drive synchronization feature; source excerpts do not establish all of its wiring. The graph preserves documented capabilities, but omits uncertain links for unsampled feature implementations.
Main entry points: App.jsx App bootstrap and navigation · index.js Local database · Transactions.jsx Transactions · usePortfolio.js Portfolio orchestration
Components 29
App shell
- App bootstrap and navigation
src/App.jsx - App state
src/contexts/AppContext.jsx - PIN lock
src/components/Common/PinLock.jsx
Core finance
- Transactions
src/components/Transactions/Transactions.jsx - Transaction entry
src/components/Transactions/AddTransaction.jsx - Accounts
src/components/Accounts/Accounts.jsx - Categories
src/components/Categories/Categories.jsx - Budgets
src/database/budgets.js - Recurring activity
src/database/recurring.js - Shared expenses
src/components/Groups/GroupSplitManager.jsx - Settlement calculation
src/utils/debtSimplifier.js
Insights
Investments
- Portfolio views
src/components/Accounts/InvestmentsPortfolio.jsx - Portfolio orchestration
src/hooks/usePortfolio.js - Fund positions
src/utils/mutualFundPositionEngine.js - Stock inventory
src/components/Accounts/StockManager.jsx - Market valuation
src/utils/valuationProvider.js
Import and sync
- Transaction import
src/components/Transactions/TransactionSyncModal.jsx - Import parsers
src/utils/xlsParser.js - Cloud sync controls
src/components/Settings/CloudSyncManager.jsx - Sync and merge
src/services/cloudSyncEngine.js - Encrypted backup
src/utils/cryptoBackup.js - Google Drive transport
src/services/googleDriveSync.js - Google sign-in
src/services/googleAuth.js
Local storage
- Local database
src/database/index.js
Other components
- Finance user
- Google Drive
Connections 31
- Finance user → App bootstrap and navigation: opens and navigates
- App bootstrap and navigation → Local database: initializes
- App bootstrap and navigation → App state: provides state
- App bootstrap and navigation → PIN lock: wraps views
- App bootstrap and navigation → Dashboard: renders
- App bootstrap and navigation → Transactions: renders
- App bootstrap and navigation → Accounts: renders
- App bootstrap and navigation → Categories: renders
- App state → Transactions: supplies app state
- Transactions → Transaction entry: opens entry
- Transactions → Local database: persists activity
- Accounts → Local database: reads accounts
- Categories → Local database: reads categories
- Budgets → Local database: stores budgets
- Recurring activity → Local database: stores schedules
- Shared expenses → Settlement calculation: computes balances
- Dashboard → App state: uses app state
- Analytics → App state: uses app state
- Reports → Local database: exports finance data
- Portfolio views → Portfolio orchestration: shows portfolio
- Portfolio orchestration → Fund positions: derives fund positions
- Portfolio orchestration → Market valuation: fetches valuations
- Portfolio orchestration → Local database: uses transaction data
- Stock inventory → Local database: reads and updates inventory
- Transactions → Transaction import: opens import
- Transaction import → Import parsers: parses files
- Cloud sync controls → Google sign-in: authenticates
- Cloud sync controls → Sync and merge: previews and syncs
- Sync and merge → Encrypted backup: encrypts and decrypts
- Sync and merge → Google Drive transport: reads and uploads snapshots
- Google Drive transport → Google Drive: transfers backups