01 / CAPTURETransaction intake
Manual entry is always available for cash and missing records. Smart Sync explains why SMS access is needed before requesting Android permission, then scans supported bank and UPI debit messages. The parser extracts amount, direction, date, merchant, sender, and reference information while deliberately rejecting OTP, promotional, balance, and loan messages.
02 / CLEANUPSMS parsing & categorization
Different institutions describe the same spend differently. The parser handles rupee formats, UTR or reference values, card spends, UPI handles, and merchant patterns. A fingerprint built from time, amount, and reference or normalized merchant helps collapse duplicate bank-and-UPI alerts while preserving the richer record. Merchant intelligence canonicalizes common names and uses fuzzy matching to suggest matches; manual merchant overrides and category changes keep the user in control.
03 / UNDERSTANDLedger, history & insights
The recorded transaction becomes one item in a local ledger: browseable by time, category, and search context. Dashboard analytics use the full current-month dataset, while the recent-activity feed stays intentionally concise. Configurable categories prevent the UI from forcing every purchase into a generic bucket. Export can share the same transaction data as CSV or JSON rather than trapping it inside the app.
04 / PLANGoals & weekly targets
Savings goals track a target amount, saved progress, and remaining amount. Weekly targets watch a category-specific limit and combine ledger activity with manually logged off-app spend, so a budget is not falsely “safe” just because a purchase happened outside a bank feed. Local notifications can report completed scans and scheduled weekly summaries.
05 / SHAREGroups — the Splitwise-style module
Shared expenses are modeled separately from a personal transaction. A group contains members, split expenses, individual shares, and settlement history. While entering an expense, a payer and participating members are selected, then the total can be divided equally, by percentage, or as explicit amounts. The app calculates outstanding balances and simplifies debts into the smallest practical set of repayments, then lets a settlement be recorded optimistically so the UI responds immediately.
- PeopleMembers can be added from device contacts, saved contacts, or manually—useful when a group is assembled in the moment.
- ExpensesEvery shared bill keeps its participants, payer, chosen split method, and resulting individual obligations.
- Settle upOutstanding balances and the activity feed make it clear who owes whom; recorded settlements bring the group back to a known state.
06 / RECOVEROffline-first sync & realtime consistency
Transaction, goal, target, and group data are cached in SQLite. When connectivity returns, operations are serialized so overlapping pulls and pushes cannot leave projections half-updated. Delta sync begins from the latest known transaction timestamp; a stale or malformed local state can fall back to a full rebuild. Pending writes are flushed with bounded retry. For groups, Supabase Realtime listens for changes to groups, members, expenses, splits, and settlements, coalesces quick bursts of events, and refreshes only affected group projections instead of reloading every screen.