FinTrack Complete Step-by-Step User & Feature Tutorial
Comprehensive walkthrough of every screen, route, menu drawer item, form control, and feature workflow directly mapped from the FinTrack codebase.
-
1Launch FinTrack for the First Time
FinTrack checks
SharedPreferences("app_settings", "setup_complete"). If false, the app lands on thesetupscreen. -
2Select Your Primary Base Currency
Tap the
Base Currencydropdown (e.g.,USD ($),INR (₹),EUR (€),GBP (£)). This sets your baseline accounting currency for all multi-currency conversions and net worth calculations. -
3Keep Default Accounts Generator Checked
Leave the "Create Default Accounts" checkbox checked. This automatically populates default major heads, minor heads, and accounts (Cash, Bank Account, Credit Card).
-
4Tap "Complete Setup"
Saves
setup_complete = truein settings and navigates to thepermissionsroute.
✅ Expected Result
Your base currency is established, standard accounting heads are generated, and you proceed to permissions setup.-
1Grant Receive SMS Permission
Tap
Grant SMS Permissionto allowSmsReceiver.ktto detect incoming bank transaction messages automatically. -
2Grant Post Notifications Permission (Android 13+)
Tap
Grant Notification Permissionto receive payment due alerts, subscription reminders, and backup status notifications. -
3Tap "Continue to App"
Navigates to the main Dashboard (
homeroute).
-
1Open Navigation Drawer & Tap Settings
Tap top-left hamburger menu or swipe right from left edge > tap
Settings. -
2Select App Theme
Tap
Themedropdown and choose:Light— Standard light color scheme.Dark— Standard dark mode.OLED— Pitch black theme optimized for AMOLED battery savings.
-
3Customize Primary Accent Color
Tap
Colorbutton. Adjust the Red, Green, and Blue sliders in the dialog to generate your personalized Material 3 primary tint. -
4Select App Language
Tap
Languagedropdown and select English, Spanish (Español), German (Deutsch), Chinese (中文), or Russian (Русский).
-
1Enable Biometric App Lock & Inactivity Timeout
Toggle
App Lockswitch ON. TapInactivity Timeoutdropdown to select auto-lock duration:5 seconds,15 seconds,30 seconds,1 minute,5 minutes, orKeep unlocked until app closure. -
2Enable Disable Screenshots (FLAG_SECURE)
Toggle
Disable ScreenshotsON. Prevents screen recording, screenshots, and Android task switcher previews of your sensitive financial data. -
3Enable Ultra-Secure Mode (Database Encryption at Rest)
Toggle
Ultra-Secure ModeON. Prompts to set a master password. When enabled, FinTrack encrypts your SQLite database file on disk using PBKDF2 + AES-GCM 256-bit encryption whenever the app is closed!
⚠️ Important Notice on Ultra-Secure Mode
When Ultra-Secure Mode is active, you must enter your Master Password on app startup (`DecryptionScreen`) to decrypt the database into memory!-
1Navigate to Manage Headers
Drawer > tap
Manage Headers(Route:manage_heads). -
2Switch Between Major and Minor Tabs
Tap
Majortab to view top-level heads, orMinortab to view parent sub-groups (e.g., Bank Accounts, Credit Cards, Loans). -
3Add New Major / Minor Head
Tap
+ Addfloating button (Route:add_head). Enter head Name. If Minor Head, select parentMajor Headfrom dropdown list. -
4Edit or Toggle Status
Use the toggle switch on any item row to enable/disable it, or tap Edit / Delete icons.
💡 System Protection Rule
System-critical mandatory heads (like "On Account (Loan)" or "Credit Card") cannot be deleted to prevent database corruption.-
1Navigate to Categories & Accounts Manager
Drawer > tap
Categories(Route:manage_categories) > tap+ Addfloating button (Route:add_category). -
2Select Item Type Chip
Select filter chip at the top:
Income,Expense, orAccounts. -
3Enter Details for Account (Micro Head)
- Name: e.g.,
Chase CheckingorCash Wallet. - Emoji Icon: Select an emoji from the horizontal icon slider (e.g. 🏦, 💵, 💳).
- Opening Balance: Enter current balance (e.g.,
1500.00). - Minor Head: Select parent group (e.g.,
Bank Accounts). - Credit Card Options: If linked to Credit Card head, enter
Credit Limit,Billing Cycle Start,Billing Cycle End, andPayment Due Date. - Is Emergency Fund: Toggle ON if this account is dedicated to your emergency fund.
- Default Due Days: Optional default payment window days.
- Name: e.g.,
-
4Draft Auto-Save Protection
If you press back or tap "Modify Heads" to create a new parent head, your inputs are preserved automatically in
viewModel.draftAccount! -
5Tap "Save"
Saves entry to database and refreshes all dropdowns instantly.
-
1Navigate to Tags Hub
Drawer > tap
Tags(Route:manage_tags) > tap+ Add Tag(Route:add_tag). -
2Configure Tag Options
- Name: e.g.,
#Vacation2026or#TaxDeductible. - Tracking Type: Select
Income,Expense, orBoth. - Target Number: Optional goal target (e.g.
2000.00for trip limit).
- Name: e.g.,
-
3View Tag Summary Analytics
Drawer > Tags >
Summary by Tags(Route:summary_by_tags) to compare actual tagged spending against target goal numbers!
-
1Open Add Transaction Screen
From Dashboard, tap the primary
+Floating Action Button (Route:add_transaction). -
2Select Transaction Type Filter Chip
Expense— Outflow reducing net worth.Income— Inflow increasing net worth.Transfer— Movement between two of your own accounts.
-
3Enter Amount & Use Built-in Calculator
Type numeric amount. Tap calculator icon next to input to open floating calculator dialog to sum bill items (e.g.
45.50 + 12.00). -
4Select Accounts & Categories
- From Account: Source account (e.g., Checking Account).
- Category / To Account: Select Expense/Income category OR destination account if Transfer.
- Party (Optional): Select counterparty for On-Account transactions.
-
5Set Date & Time Pickers
Defaults to current time. Tap date/time fields to open DatePickerDialog and TimePickerDialog.
-
6Configure Additional Options
- Merchant Name: Enter merchant name (e.g.
Amazon). - Discretionary Toggle: Toggle ON if this is non-essential ("Want") spending.
- Tags: Select project tags (e.g.
#Vacation). - Invoice & Due Days: Optional invoice number and due period days.
- Merchant Name: Enter merchant name (e.g.
-
7Tap "Save Transaction"
Saves entry to SQLite, updates balances, recalculates budgets, and triggers background alert checks.
✅ Transfer Rule Reminder
Always select `Transfer` mode when transferring funds between your bank accounts or paying off credit card bills!-
1Enable Multi-Entry Switch
In Add Transaction, toggle
Multi-Entryswitch ON. -
2Enter Overall Total Amount
Type full receipt amount (e.g.,
$150.00). -
3Add Itemized Rows
Tap
+ Add Itemto add category split rows:- Row 1: Category =
Groceries, Amount =$100.00. - Row 2: Category =
Household Supplies, Amount =$30.00. - Row 3: Category =
Electronics, Amount =$20.00.
- Row 1: Category =
-
4Sum Validation Check
If split row sum does not equal overall receipt total ($150.00), FinTrack displays a mismatch dialog showing exact variance before saving!
-
1Select Foreign Currency
Select foreign currency code (e.g.
EUR) from Foreign Currency dropdown. -
2Enter Foreign Amount
Enter price in foreign currency (e.g.
€100.00). -
3Toggle Manual Rate Override
Check
Manual Rateif your credit card issuer charged specific markup fees, and type the exact final local base currency charge shown on your mobile banking alert!
-
1Create Transaction Template
Drawer >
Templates(Route:templates) > tap+ Add Template(Route:add_transaction_template). Pre-configure account, category, amount, and note. -
2Log Entry in One Tap
Tap
Use Templateon any saved template card to instantly log transactions! -
3Use Quick Entry Screen (QuickEntryScreen.kt)
Access `quick_entry` route via home widget shortcut for rapid 3-second logging without opening the full app!
-
1Open Add Loan Screen
Drawer >
Subscriptions> selectLoans Tab> tapAdd Loan. -
2Select Loan Type Chip
Select
Borrowing(Liability - money you owe) orLending(Asset - money owed to you). -
3Enter Principal, Interest Rate & Tenure
- Name: e.g.
Home Mortgage Chase. - Principal Amount: Sum borrowed (e.g.
250000.00). - Annual Interest Rate (%): APR percentage (e.g.
6.5). - Total Tenure: Total periods (e.g.
360for 30 years). - Frequency:
Monthly,Quarterly,Half Yearly, orYearly.
- Name: e.g.
-
4Select Gap Interest Method
Select
Days (Actual/365)orBank Convention (Month/Odd)to account for broken-period interest accrued between disbursement date and first repayment date. -
5Review Auto-Calculated EMI or Manual Override
FinTrack computes standard EMI using Annuity Due logic:
LoanCalculator.calculateStandardEMI(). If you manually edit the EMI field, FinTrack uses a binary search solver (calculatePeriodicRateFromEMI()) to back-calculate implied interest rates! -
6Inspect Full Amortization Schedule & Save
Tap
View Full Scheduleoverlay to inspect principal vs interest breakdown for all periods, then tap Save.
✅ Expected Result
Creates a dedicated Loan micro-head account, establishes party tracking, and adds EMI payment reminders to your dashboard.-
1Open Credit Card Dashboard
Drawer > tap
Credit Cards. -
2Swipe Card Pager
Swipe horizontally across top card pager cards to inspect individual card summaries (Total Balance, Credit Limit, Utilization Gauge).
-
3Inspect Billed vs. Unbilled Overlays
Tap
Billed Transactionsto view current statement balance due, or tapUnbilled Transactionsto view charges incurred in the current active cycle. -
4Pay Card Statement
Tap
Pay Statementto open a pre-configured Transfer entry from your checking account to your credit card!
💡 Credit Score Impact Alert
If card credit utilization exceeds 30%, `FinancialInsightEngine.kt` generates a warning alert on your home dashboard to help protect your credit score!-
1Open Subscription Dashboard
Drawer > tap
Subscriptions. -
2Switch Between Tabs
Tap
Subscriptions,Recurring Transfers, orLoanstabs. -
3Enable Auto-Record Switch
Toggle
Auto-Recordswitch ON for fixed subscriptions.ReminderWorker.ktwill automatically record transaction entries on due dates! -
4Perform Catch-Up Payment
If you missed logging past dues, tap
Catch-Up Paymenton any subscription card to log all pending historical months in one tap!
-
1Open Budgets Hub
Drawer > tap
Budgets> tapSet / Remove Budget(Route:manage_budgets) > tap+ Add Budget(Route:add_budget). -
2Select Target Categories & Accounts
Tap
Select Categoriesand select categories (e.g., Groceries + Dining Out). -
3Set Amount & Duration
Enter budget ceiling (e.g.
$500.00). Select duration:Daily,Weekly,Monthly,Half Yearly,Yearly, orCustom(e.g., 14 days). -
4Toggle Higher-Is-Better Switch
Leave OFF for expense ceilings (Red when over budget). Toggle ON for income/savings targets (Green when over target)!
-
5View Budget vs. Actual (BudgetComparisonScreen.kt)
Drawer > Budgets >
Budget vs Actual(Route:budget_vs_actual) to inspect real-time progress bars and run-rate projections!
-
1Open Rules Manager
Drawer > tap
Auto Rules> tap+ Add Rule. -
2Configure Rule Pattern Criteria
- Rule Name: e.g.
Amex Uber Rule. - Sender ID (msgFrom): Bank SMS sender code (e.g.
AMEX-US). - Contains Text: Keyword pattern (e.g.
Uber).
- Rule Name: e.g.
-
3Set Automatic Pre-Mappings
Select pre-assigned
Account(e.g. Amex Credit Card),Category(e.g. Transportation),Party, andTags. -
4Save Rule
When an SMS arrives matching these criteria,
SmsReceiver.ktautomatically extracts the transaction amount and logs the entry!
-
1Select Destination Account
Drawer > tap
Import Statement> select target Account (e.g. Chase Checking). -
2Pick CSV File
Tap
Select CSV Fileand pick your bank export CSV file from device storage. -
3Map Interactive Table Header Roles
In the parsed preview table, map each column header dropdown to its role:
Date,Amount,Description, andType (Debit/Credit). -
4Perform Bulk Category Tagging
Select multiple transaction rows in the preview > tap
Bulk Edit> assign category to 50 entries in one click! -
5Finalize Import
Tap
Import Selectedto commit verified entries to your SQLite database.
-
1Open Notes Screen
Drawer > tap
Notes> tap+ Add Note. -
2Select Note Type
Choose
Text,Checklist, orDrawingcanvas. -
3Organize with Notebooks & Color Coding
Select Notebook folder, select visual card color, and toggle
Pin Noteto pin top financial tasks to your notepad screen!
-
1Open Database Administration Screen
Drawer > tap
Database. -
2Configure WebDAV Credentials
- Server URL: HTTPS WebDAV URL (e.g.
https://cloud.example.com/remote.php/dav/files/user/). - Username & Password: Enter WebDAV account credentials.
- Server URL: HTTPS WebDAV URL (e.g.
-
3Configure End-to-End Encryption (E2EE)
Toggle
Encrypt Remote BackupsON. Enter your master backup passphrase (PBKDF2 + AES-GCM 256-bit encryption viaEncryptionService.kt). -
4Set Scheduled Auto-Backup Interval
Select Schedule Frequency:
Off,Daily, orWeekly.BackupWorker.kthandles periodic background uploads. -
5Tap "Sync Now"
Triggers immediate backup upload to test cloud connection.