An open API service indexing awesome lists of open source software.

https://github.com/pacphi/finima

Personal finance
https://github.com/pacphi/finima

Last synced: about 1 month ago
JSON representation

Personal finance

Awesome Lists containing this project

README

          

# Finima πŸ’Έ

**Your finances, finally under your control.**

> _Finance + Intelligence = Finima._ Because understanding your money shouldn't require handing it to someone else.

[![CI](https://github.com/pacphi/finima/actions/workflows/ci.yml/badge.svg)](https://github.com/pacphi/finima/actions/workflows/ci.yml)
[![Release](https://github.com/pacphi/finima/actions/workflows/release.yml/badge.svg)](https://github.com/pacphi/finima/actions/workflows/release.yml)
[![Check Links](https://github.com/pacphi/finima/actions/workflows/check-links.yml/badge.svg)](https://github.com/pacphi/finima/actions/workflows/check-links.yml)
[![GitHub release](https://img.shields.io/github/release/pacphi/finima.svg)](https://github.com/pacphi/finima/releases)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

Finima is a **privacy-first, self-hosted personal finance intelligence platform**. Import transactions from any bank, let a local AI classify and analyze them, and get deep insight into your spending, savings, and cash flow β€” without your data ever leaving your machine.

πŸ”’ **No cloud sync. No subscriptions. No data brokers.** Just fast, private, intelligent finance.

---

## πŸ’‘ Why Finima?

Most finance apps ask you to trust them with your most sensitive data. Finima flips that model entirely. Here's what makes it different:

- 🏠 **100% self-hosted** β€” your financial data lives on your hardware, under your rules. No SaaS, no terms-of-service surprises.
- πŸ€– **Local AI categorization** β€” an Ollama-powered LLM classifies your transactions on-device. No cloud API calls, ever.
- πŸ“‚ **Bank-agnostic import** β€” bring data from any institution via CSV, OFX, QIF, or XLSX, with a guided column-mapping UI.
- ⚑ **Built for speed** β€” a Rust backend processes thousands of transactions in milliseconds; the React frontend stays snappy at any scale.
- πŸ”„ **Learns your patterns** β€” recurring transaction detection, inter-account flow analysis, and a composite health score that improves as it learns your finances.
- πŸ”‘ **Passwordless by default** β€” magic-link sign-in means no passwords to forget, reuse, or breach.

---

## πŸ“Έ Screenshots


Dashboard β€” financial health at a glance
Β 
Transactions β€” AI-categorized with search and filters


DashboardΒ Β Β Β Β Β Β Β Transactions


Money Flow β€” Sankey diagram of inter-account transfers
Β 
Budget β€” category budgets with real-time progress


Money FlowΒ Β Β Β Β Β Β Β Budget Tracker


Goals β€” savings targets with contribution tracking
Β 
Recurring β€” subscription and recurring payment detection


Savings GoalsΒ Β Β Β Β Β Β Β Recurring Payments


Portfolios β€” account groupings and net worth tracking
Β 
News β€” financial articles with AI summaries


PortfoliosΒ Β Β Β Β Β Β Β Financial News

---

## ✨ What It Does

| Capability | How |
| -------------------------------------- | ---------------------------------------------------------------------------------------------- |
| πŸ€– **AI categorization** | Local LLM labels every transaction β€” no cloud API calls, no data leaving your server |
| πŸ“‚ **Multi-format import** | CSV, OFX, QIF, XLSX β€” guided column-mapping UI works with any bank export |
| πŸ’° **Budget tracking** | Set category budgets, watch real-time progress bars fill as you spend |
| 🎯 **Savings goals** | Define targets, see automatic contribution tracking month by month |
| πŸ”„ **Recurring detection** | Surfaces every subscription, utility bill, and regular payment automatically |
| 🌊 **Money flow visualization** | Sankey diagrams reveal exactly how money moves across your accounts |
| πŸ“Š **Financial health score** | Composite gauge of spending habits, savings rate, and debt load β€” all in one number |
| πŸ“ˆ **Cash flow & net worth charts** | Waterfall, donut, and time-series views so trends are impossible to miss |
| πŸ“° **Financial news with AI digest** | Aggregated articles with LLM-generated summaries, filtered to what matters to you |
| ⚑ **Real-time progress** | WebSocket updates stream import and AI processing status live β€” no page refreshes needed |

## βš™οΈ How It Works

```text
Bank export β†’ Upload via UI β†’ Parse & normalize β†’ AI categorization β†’ Store in PostgreSQL
↓
Ollama LLM (on-device)
↓
Analysis: budgets Β· goals Β· recurring Β· health score Β· flows
↓
React dashboard (real-time via WebSocket)
```

Under the hood: a Rust workspace of 8 crates handles ingestion, auth, analysis, AI, and the API layer. PostgreSQL is the single source of truth. Ollama runs the model locally. MinIO provides S3-compatible object storage for uploaded files.

## πŸš€ Quick Start

```bash
# Clone and configure
git clone https://github.com/pacphi/finima.git
cd finima
cp .env.example .env

# Start everything at once
make start # infrastructure + backend + frontend
# β†’ Open http://localhost:5173
```

Or step by step:

```bash
make docker-infra # Start PostgreSQL + MinIO (+ Ollama when LLM=ollama)
make dev # Start backend (port 3000) + frontend (port 5173)
```

**Prerequisites:** Docker, Rust 1.85+, Node.js 24+, pnpm 10+ β€” or just Docker for infrastructure.
See [Quick Start](docs/guides/quick-start.md) for the full setup guide, or [Getting Started](docs/guides/getting-started.md) if you prefer a step-by-step walkthrough with no assumed technical knowledge.

## πŸ—οΈ Architecture

```text
React 19 SPA (TypeScript) ──REST + WebSocket──→ Axum API Gateway
β”‚ β”‚
React Router Rust Workspace
Zustand state β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
Recharts + Tailwind β”‚ β”‚ β”‚
finima-llm finima-analysis finima-ingest
β”‚ β”‚ β”‚
Ollama LLM PostgreSQL 16 MinIO / S3
```

- πŸ¦€ **Backend:** Rust (Axum 0.8), 8 workspace crates, SQLx, async throughout
- βš›οΈ **Frontend:** React 19, TypeScript, Vite, Tailwind CSS, Recharts
- πŸ”’ **Privacy:** embeddings and AI inference run entirely on your machine

See [Architecture Overview](docs/guides/architecture-overview.md) for the full design and [ADRs](docs/ADRs/README.md) for the rationale behind key decisions.

## 🎯 Features at a Glance

- πŸ”‘ **Magic-link auth** β€” passwordless sign-in, zero credentials to manage
- πŸ“‚ **Smart import** β€” any bank, any format, guided column mapping
- πŸ€– **On-device AI** β€” Ollama + Gemma 4, no cloud required
- πŸ’° **Budget & goals** β€” real-time category budgets and savings targets
- 🌊 **Money flow (Sankey)** β€” visualize inter-account transfers at a glance
- πŸ“Š **Health score** β€” one number that captures your financial fitness
- πŸ”„ **Recurring radar** β€” auto-detect subscriptions and regular payments
- πŸ“ˆ **Charts everywhere** β€” waterfall, donut, time-series, net worth timeline
- πŸ“° **News digest** β€” financial headlines with AI-written summaries
- πŸŒ™ **Dark / light mode** β€” plus configurable currency and date formats

## πŸ“š Documentation

### πŸ‘₯ For Everyone

| Document | Description |
| ----------------------------------------------------------------- | --------------------------------------------------- |
| [Getting Started](docs/guides/getting-started.md) | Step-by-step setup β€” no technical knowledge needed |
| [Quick Start](docs/guides/quick-start.md) | Concise setup guide for developers |
| [User Guide](docs/guides/user-guide.md) | End-to-end walkthrough of every feature |
| [UI Overview](docs/guides/user-interface-overview.md) | Visual tour of every screen |
| [Glossary](docs/guides/glossary.md) | Plain-language definitions for every term |
| [Deployment](docs/guides/deployment.md) | Production deployment β€” bare metal, Docker, cloud |

### πŸ‘©β€πŸ’» For the Team

| Document | Description |
| ----------------------------------------------------------------- | --------------------------------------------------- |
| [Maintainer Guide](docs/guides/maintainer-guide.md) | Dev setup, coding standards, PR workflow |
| [Architecture Overview](docs/guides/architecture-overview.md) | System design β€” crates, data flow, boundaries |
| [Object Storage](docs/guides/object-storage-setup.md) | MinIO / S3 configuration |
| [Backup & Recovery](docs/guides/database-backup.md) | Database backup and point-in-time restore |
| [Observability](docs/guides/observability.md) | Metrics, tracing, and dashboard setup |
| [Troubleshooting](docs/guides/troubleshooting.md) | Common issues and fixes |

### πŸ›οΈ Architecture Decisions

See all ADRs in [docs/ADRs](docs/ADRs/README.md).

### πŸ—ΊοΈ Domain Model

See all DDDs in [docs/DDDs](docs/DDDs/README.md).

## πŸ› οΈ Development

```bash
make help # all available targets
make ci # format-check + lint + typecheck + unit tests
make test # unit tests only (no Docker needed)
make test-all # full suite β€” auto-starts test DB, runs everything
make test-llm # LLM tests β€” auto-starts Ollama, pulls model
```

See the [Maintainer Guide](docs/guides/maintainer-guide.md) for the full developer reference.

## πŸ”§ Tech Stack

| Layer | Technology |
| -------------- | ------------------------------------------------------------------------------------- |
| Backend | Rust, Axum 0.8, PostgreSQL 16 (SQLx), Tokio, MinIO / S3 |
| AI | Ollama (Gemma 4), local inference, on-device categorization and feed summarization |
| Frontend | React 19, TypeScript, Vite 8, Tailwind CSS, Recharts, React Router, Zustand |
| Auth | Magic-link (passwordless), JWT, SHA-2 |
| Infrastructure | Docker Compose, GitHub Actions CI, Dependabot, Prometheus-compatible metrics |

## πŸ“„ License

[MIT](LICENSE)

---

_Finima: because your finances deserve intelligence, not just a spreadsheet._