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💰
