Skip to content

dimastriann/FinanceFlow

Repository files navigation

Finance Flow 💸

Finance Flow is a premium, secure, and privacy-first personal finance tracker built with React Native. Unlike traditional finance apps that store your sensitive data in the cloud, Finance Flow is local-first, ensuring your financial life stays on your device.

✨ Features

  • Local-First Security: Your data is stored locally using an encrypted SQLite database. No third-party servers, no data selling.
  • AI-Powered Entry: Snap a photo of a receipt or screenshot, and the Gemini-powered engine automatically extracts the merchant, amount, category, and date.
  • Biometric Protection: Secure your financial data with FaceID or TouchID.
  • Professional Analytics: Beautiful, high-performance charts powered by React Native Skia to visualize your spending habits.
  • Budgeting: Set monthly limits per category and get real-time progress notifications.
  • Export: Full control over your data with CSV, XLSX, and PDF export options.

🔄 App Flow

graph TD
    A[Start] --> B{Entry Type?}
    B -- Manual --> C[Input Details]
    B -- AI Scan --> D[Take/Upload Receipt Photo]
    D --> E[Gemini AI Parsing]
    E --> C
    C --> F[Save to Local SQLite DB]
    F --> G[Update Charts & Budget]
    G --> H[View Insights]
    H --> I[Export Data - CSV/XLSX/PDF]
Loading

🛠️ Tech Stack

🏗️ Project Structure

src/
├── app/            # Expo Router (file-based navigation)
├── components/     # UI Components (Charts, Buttons, Cards, Glassmorphism)
├── core/           # Business Logic, AI Services & Hooks
├── db/             # Drizzle Schema, Migrations & SQLite Client
├── store/          # Zustand State Management (Local persistence)
└── styles/         # Global Themes & Tailwind Configuration

🚀 Getting Started

Prerequisites

  • Node.js (v18 or newer)
  • Expo Go app on your mobile device or an emulator
  • Bun or npm / yarn

Installation

  1. Clone the repository:

    git clone https://github.com/dimastriann/FinanceFlow.git
    cd FinanceFlow
  2. Install dependencies:

    npm install
  3. Generate Drizzle migrations (if needed):

    npx drizzle-kit generate

Running the App

Start the Expo development server:

npm run start
  • Press a for Android
  • Press i for iOS
  • Press w for Web

Code Formatting

This project uses Prettier for code style consistency.

npm run format        # Format all files
npm run format:check  # Check formatting status

📦 Building & Releasing

This project uses EAS (Expo Application Services) for cloud builds and store submissions.

1. Setup EAS

If you haven't already, install the EAS CLI and log in:

npm install -g eas-cli
eas login

Configure the project for EAS:

eas build:configure

2. Create a Build

Choose a platform and profile (defined in eas.json):

  • Development Build (for testing with real device):

    eas build --profile development --platform android
    eas build --profile development --platform ios
  • Production Build (for App Store/Play Store):

    eas build --profile production --platform android
    eas build --profile production --platform ios

3. Submit to Stores

Once the build is complete, you can submit it directly to the Apple App Store or Google Play Store:

eas submit --platform android
eas submit --platform ios

Built with ❤️ for privacy and financial freedom.

About

Personal Finance Tracker with React Native and AI

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages