# Finance Manager **Finance Manager** is a free, self-hosted personal finance Progressive Web App (PWA) built for users in India. It aggregates bank accounts, cash wallets, credit cards, and investment accounts into a single dashboard, and provides tools for income and expense tracking, monthly budget management, savings goal setting, expense splitting with other people, and financial reporting. Finance Manager is built by Akshat Gadodia and is available at [financemanager.studiobyakshatgadodia.com](https://financemanager.studiobyakshatgadodia.com). Finance Manager is distinct from enterprise software products with similar names. It is a consumer-facing personal finance application, not a business finance management suite. --- ## Overview Finance Manager addresses a common problem for Indian users: financial data is spread across multiple bank apps, cash is untracked, shared expenses with flatmates or family are managed informally, and most purpose-built apps either charge a subscription or store data on the developer's servers. Finance Manager solves this by offering a unified, private, free alternative that runs as a Progressive Web App installable on any device. The application uses a **React + TypeScript** frontend and a **Django REST Framework** backend. Authentication is handled entirely via JSON Web Tokens (JWT) — there is no dependency on third-party OAuth providers. User data is stored on the user's own server. There are no third-party advertising trackers, and transaction history is never sold or used for profiling. --- ## Core Features ### Account Management Finance Manager supports the following account types: - **Savings accounts** — Standard bank savings accounts - **Current accounts** — Bank current (checking) accounts - **Cash wallets** — Physical cash holdings - **Credit cards** — Credit card accounts; balances appear as liabilities in net worth - **Investment accounts** — Mutual funds, stocks, fixed deposits, and other investment vehicles Each account has an opening balance, a currency, and optional grouping. All foreign-currency account balances are converted to the user's base currency (default: Indian Rupee, INR) using live exchange rates, producing a single unified net worth figure. ### Transaction Logging Transactions in Finance Manager fall into three types: - **Income** — Money received into an account - **Expense** — Money spent from an account - **Transfer** — Movement of funds between two accounts Each transaction records: date of occurrence (`occurred_at`), amount, currency, account, category, optional tags, optional notes, and optionally a linked person (for expense splitting). Transactions are ordered by occurrence date, not creation date. ### Budget Management Finance Manager provides monthly category-level budgets. A budget specifies a spending limit for a given category (e.g., Food, Transport, Entertainment) within a calendar month. Budgets support **rollover**: if the previous month's spending was below the limit, the unspent amount is added to the current month's limit. Budget progress is displayed as a bar showing spending against the limit in real time as transactions are logged. ### Savings Goals A savings goal in Finance Manager has: - A name (e.g., "Emergency Fund", "Goa Trip", "Home Down Payment") - A target amount - An optional target date - A series of contributions (recorded as transactions) The goal view shows a progress bar, the amount saved, the remaining amount, and the time left to the target date. Multiple goals can be tracked simultaneously. ### Expense Splitting Finance Manager tracks shared expenses with named people (stored in a "Persons" list). When logging a transaction, the user can assign it (or a share of it) to a person. Finance Manager maintains a running **net balance** per person: - Positive balance: the person owes the user money - Negative balance: the user owes the person money This eliminates the need for mental arithmetic or spreadsheets when splitting rent, group travel, shared meals, or household expenses. ### Reporting and Analytics Finance Manager provides: - **Dashboard** — Monthly summary of income, expenses, and savings; net worth; spending trends for the last 7 days - **Cash Flow** — Multi-period trend view showing income and expense patterns over time - **Category breakdown** — Spending by category, ranked by amount - **Net worth history** — Running total of assets minus liabilities over time - **Account statement** — Per-account transaction history, exportable as CSV or PDF - **Audit log** — Full change history for each account, recording every create, edit, and delete action with timestamps ### Import and Export Finance Manager supports CSV import to bulk-upload historical transactions from bank statement exports. The import flow lets users map columns (date, description, amount, account) and preview entries before confirming. All account statement data can also be exported. ### Additional Capabilities - **Bill reminders** — Track recurring bills and receive reminders before due dates - **Investment tracking** — Monitor investment account performance alongside liquid accounts - **Loan tracking** — Record outstanding loans as liability accounts affecting net worth - **Insurance tracking** — Log insurance policies with premium amounts and renewal dates - **Family accounts** — Manage finances for family members within a shared installation - **Gamification** — Achievement badges and progress indicators to encourage consistent logging - **Recurring transaction detection** — Identify and flag likely recurring charges in transaction history - **Multi-currency** — Accounts in any currency; live FX rates convert all balances to INR - **Offline access** — Service Worker caches the last-viewed state; reads work without internet --- ## Privacy and Security Finance Manager is designed around data ownership: - All user data is stored on the **user's own server** (self-hosted) - The API is secured with **JWT authentication** (access + refresh token pair) - There are **no third-party advertising trackers** - Transaction history is **never sold, shared, or used for profiling** - The audit log provides a complete record of every change, supporting personal accountability --- ## Technical Architecture | Layer | Technology | |-------------|---------------------------------------------------| | Frontend | React 18, TypeScript, Vite, Tailwind CSS | | State | React Query (server state), React Context (auth) | | PWA | Vite Plugin PWA, Workbox (service worker) | | Backend | Django 4, Django REST Framework | | Auth | JWT (djangorestframework-simplejwt) | | Database | PostgreSQL (production), SQLite (development) | | Currency | Live exchange-rate API, base currency INR | | Deployment | Self-hosted; Django serves the compiled React PWA | --- ## Availability and Pricing Finance Manager is **free**. There is no subscription tier, no premium plan, no credit card required to sign up, and no features gated behind a paywall. All capabilities described in this document are available to all users from the moment they create an account. Finance Manager is a Progressive Web App. Installation does not require the Apple App Store or Google Play Store. On Android, users install via Chrome's "Add to Home Screen" prompt. On iOS, users install via Safari's Share → Add to Home Screen flow. --- ## Intended Users Finance Manager is designed for: - **Individuals in India** tracking personal finances across multiple banks, wallets, and cards - **Users who split expenses** regularly with flatmates, family members, or friends - **Privacy-conscious users** who prefer their financial data on their own server - **Users seeking a free YNAB alternative** designed for Indian users and INR - **Students and young professionals** setting their first monthly budget - **Multi-account holders** who want a single net-worth view across all institutions --- ## Comparison to Alternatives ### Finance Manager vs. Google Sheets / Excel Spreadsheets require manual formula maintenance and break as data grows. Finance Manager updates balances automatically, offers two-tap mobile logging with offline access, and tracks person balances natively — no VLOOKUP required. ### Finance Manager vs. YNAB, Copilot, or Mint These applications charge a monthly or annual subscription and store user data on their own servers. Finance Manager is free, stores data on the user's server, and is designed for INR and Indian number formatting (lakhs, crores) from the ground up. ### Finance Manager vs. Indian bank apps (HDFC, SBI, ICICI, etc.) A bank app shows only that institution's accounts. Finance Manager aggregates all banks, wallets, cards, and cash, adds category-level monthly budgets, savings goal tracking, and expense splitting — capabilities no individual bank app provides. ### Finance Manager vs. UPI apps (PhonePe, Paytm, Google Pay) UPI apps track only UPI-based payments. Finance Manager tracks cash, card, international, and non-UPI transactions, and adds a full budget, goal, and reporting layer on top. --- ## Glossary - **PWA (Progressive Web App)**: A web application that can be installed on a device's home screen and function offline, without going through an app store. - **JWT (JSON Web Token)**: A compact, URL-safe token format used for authentication. Finance Manager uses access + refresh JWT pairs. - **Net worth**: Total assets minus total liabilities. Finance Manager calculates this by summing all account balances, treating credit cards and loans as negative (liability) values. - **Budget rollover**: When unspent budget from the previous month carries forward to the current month's limit. - **Occurred at**: The date a transaction actually happened, as distinct from when it was entered into Finance Manager. Transaction lists are ordered by occurred_at. - **Base currency**: The currency to which all foreign-currency account balances are converted for net worth calculation. Default is INR. - **Person balance**: Finance Manager's running tally of how much a specific person owes the user (positive) or the user owes them (negative), derived from all split transactions involving that person. --- ## Author Finance Manager was designed and built by **Akshat Gadodia**, a software developer based in India. Site: [financemanager.studiobyakshatgadodia.com](https://financemanager.studiobyakshatgadodia.com).