FinancAAR is a cross-platform (Android & iOS) personal-finance manager that helps you track income & expenses, manage debts, analyse spending trends and generate beautifully formatted financial reports β all offline and completely private.
This repository hosts the production-ready source code for the mobile client.
| Area | Highlights |
|---|---|
| Accounts | β’ Unlimited Cash and Card accounts |
| β’ Custom colours & emoji icons | |
| Transactions | β’ Fast add / edit flow with category selector |
| β’ Supports income, expense, transfer, debt payment | |
| Debts | β’ Track who you owe & who owes you |
| β’ Status updates (paid / unpaid) | |
| Smart Notifications | β’ Daily summary & personalised tips |
| β’ Schedules handled locally (works offline) | |
| Security | β’ PIN (4 & 6 digits) |
| β’ Biometric unlock (Fingerprint / Face ID) | |
| Analytics | β’ Charts for last 7 days / month / customised ranges |
| Financial Reports | β’ Multi-select data types (Transactions, Debts, Balances, Categories, Accounts) |
| β’ Preset ranges (1 day, 1 week, 1/3/6 months, all time) | |
| β’ Export to CSV, XLSX, PDF | |
β’ Share sheet or direct download to /Download (Android SAF) |
|
| Theming | β’ Light / Dark / System |
| Offline-first | β’ Local SQLite DB (no remote server needed) |
- React Native 0.79 (Hermes)
- Expo SDK 53
- TypeScript 5
expo-file-system,expo-print,expo-notifications,expo-secure-store,expo-local-authentication,expo-sqlite- React Navigation 7 (Stack & Bottom Tabs)
- Reanimated 3, Gesture Handler 2
- Charts β
react-native-chart-kit - XLSX β
xlsx 0.18(SheetJS)
src/
components/ # Reusable UI elements (AccountCard, Toastβ¦)
screens/ # App screens, incl. Settings & Reports modal
navigation/ # React-Navigation stacks & tabs
contexts/ # Theme & Auth contexts
hooks/ # Custom hooks (biometric, secure storage, notifications)
services/ # Local & push notification helpers
utils/ # DB wrapper, currency helper, exporter (CSV/XLSX/PDF)
types/ # Global type declarations- Node.js β₯20
- Expo CLI β
npm i -g expo-cli - A physical Android / iOS device or simulator/emulator
# 1. Clone repo
$ git clone https://github.com/UserAAR/FinancAAR-Mobile.git && cd FinancAAR-Mobile
# 2. Install deps
$ npm i # or yarn
# 3. Start dev server
$ npm run start # Expo dev menuPress "a" to open Android Emulator, "i" for iOS Simulator or scan QR with Expo Go.
This project does not require remote API keys.
All storage is local; only system permissions are requested at runtime (Notifications, Storage, Biometric).
# Install EAS CLI if needed
yarn global add eas-cli # or npm i -g eas-cli
# Configure (first time only)
eas build:configure
# Cloud build (AAB)
eas build -p android --profile productionThe build finishes with a download URL you can attach to a GitHub Release.
eas build -p ios --profile productionRequires Apple ID credentials & certificates (managed by EAS).
SQLite tables are created automatically on first run.
| Table | Fields (excerpt) |
|---|---|
| accounts | id (PK), name, type (cash/card), balance, color, emoji, createdAt |
| categories | id (PK), name, type (income/expense) |
| transactions | id (PK), amount, type, date, title, categoryId (FK), accountId (FK) |
| debts | id (PK), personName, amount, status, date |
See src/utils/database.ts for full schema & helper methods.
| Platform | When | API |
|---|---|---|
| Android | Export β Download | StorageAccessFramework (WRITE_EXTERNAL_STORAGE fallback API < 33) |
| Android & iOS | Reporting β Share | expo-sharing |
| Android & iOS | Biometric Login | expo-local-authentication |
| Android & iOS | Notifications | expo-notifications (foreground & scheduled) |
All permissions are requested just-in-time, with graceful handling if denied.
- Fork & clone repo.
git checkout -b feat/my-feature- Commit with conventional-commit messages.
git pushand open a PR.- CI/Lint must pass before merge.
- TypeScript strict
- ESLint + Prettier configured via Expo defaults.
- Commit messages follow Conventional Commits.
- Please use the GitHub issue templates located in
.github/ISSUE_TEMPLATEwhen reporting bugs or proposing features. Providing complete information helps us triage and resolve tickets faster. - Pull Requests must follow the PR template (
.github/PULL_REQUEST_TEMPLATE.md) and complete the checklist before review. - For general questions or support, open a thread in GitHub Discussions instead of filing an issue.
- By participating in this project you agree to abide by our Code of Conduct.
- Detailed development guidelines are available in CONTRIBUTING.md.
Detailed technical documentation now lives in the docs/ directory:
For general questions or implementation discussions, please open a thread in GitHub Discussions.
FinancAAR is distributed under a Proprietary License. You may freely download and use the compiled APK for personal, non-commercial purposes. Any other useβincluding but not limited to reproducing, modifying, or redistributing the source codeβrequires prior written permission from UserAAR. See LICENSE for full terms.
- Expo β making React Native painless.
- SheetJS for XLSX export.
- React Navigation & community libraries.
Net Savings = Current Total Assets - Previous Period Total Assets
- Source: Standard financial accounting principles
- Why Accurate: Measures actual wealth accumulation, not just cash flow
- Implementation:
database.calculateNetSavings()
Savings Rate = (Net Savings / Gross Income) Γ 100
- Source: Financial Independence community standards, CFP Board recommendations
- Why Accurate: Shows true percentage of income building wealth
- Implementation:
database.calculateSavingsRate()
Cash Flow Rate = ((Income - Expenses) / Income) Γ 100
- Source: Traditional budgeting methods
- Use Case: Month-to-month spending analysis
- Limitation: Doesn't account for asset changes or transfers
Health Score = Savings Rate (40%) + Net Savings (30%) + Trend (20%) + Balance (10%)
- Methodology: Weighted composite based on financial planning best practices
- Benchmarks:
- 80-100: Excellent financial health
- 60-79: Good financial health
- 40-59: Fair, needs improvement
- 0-39: Poor, requires immediate attention
- β All Account Balances: Real-time from user's actual accounts
- β All Transactions: Complete transaction history
- β Category Spending: Accurate categorized expenses
- β Income Tracking: All income sources recorded
- β Time Periods: 3-month, 6-month, 1-year analysis
- β Zero Sum Principle: All money flows tracked
- β Double Entry: Account balance changes = transaction totals
- β Period Consistency: Calculations verified across time periods
- β Industry Standards: Formulas match financial planning guidelines
- β¨ Offline-First Personal Finance β All data is stored locally using SQLite; no servers, no tracking.
- π¦ Unlimited Accounts β Create as many Cash and Card accounts as you need with custom colours & emoji icons.
- πΈ Comprehensive Transactions β Fast add / edit flow supporting income, expense, transfer and debt payment types.
- π€ Debt Management β Track who you owe (or who owes you), with status updates and visual summaries.
- π Advanced Analytics β Interactive charts for the last 7 days, month or any custom range; spot spending trends instantly.
- π§ AI Insights β AI-powered analysis delivers actionable tips to optimise your budget (processed fully on-device).
- π Smart Notifications β Daily summary & personalised suggestions, scheduled locally so they work even when offline.
- π Solid Security β 4- & 6-digit PIN, plus biometric unlock (Fingerprint / Face ID).
- π Rich Reporting & Export β Generate beautifully formatted CSV, XLSX and PDF reports; share via system sheet or save directly to
/Download. - π¨ Dynamic Theming β Light, Dark & System modes with instant switching.
- π Cross-platform β Runs smoothly on Android & iOS, thanks to Hermes & Reanimated 3 optimisations.
- π Financial Health Score β Composite metric (0-100) based on savings rate, net savings & balance trends.
πTake charge of your financial journey with FinancAARβwhere your money is in control and your future is secureπ°
