Files
personal-finance/frontend-web
Alexander Zinn 40210c454e Add lock files for package management and update architecture documentation
- Introduced bun.lock and package-lock.json to manage dependencies for the project.
- Enhanced backend API architecture documentation with additional security and documentation guidelines.
- Made minor formatting adjustments across various files for consistency and clarity.
2025-12-11 02:11:43 -05:00
..
2025-12-07 12:19:38 -05:00

Personal Finances

A modern personal finance management application for tracking net worth, managing debt, invoicing clients, and monitoring cashflow.

Features

Net Worth Tracking

  • Track assets (cash, investments, property, vehicles)
  • Track liabilities (mortgages, loans, credit cards)
  • Visualize net worth over time with charts
  • View asset allocation breakdown

Debt Management

  • Organize debts by custom categories
  • Track multiple accounts per category
  • Monitor paydown progress with visual indicators
  • View by category or individual account

Invoicing

  • Create and manage invoices
  • Track invoice status (draft, sent, paid, overdue)
  • Manage client database
  • View outstanding and paid totals

Cashflow

  • Track income sources with various frequencies
  • Categorize expenses (essential vs discretionary)
  • Monitor savings rate
  • Log recent transactions

Tech Stack

  • React 19 with TypeScript
  • Vite for fast development and builds
  • Redux Toolkit for state management
  • React Router for navigation
  • shadcn/ui + Tailwind CSS for UI components
  • Recharts for data visualization
  • date-fns for date formatting
  • Lucide React for icons

Getting Started

Prerequisites

  • Bun (or Node.js 18+)

Installation

cd frontend-web
bun install

Development

bun run dev

Open http://localhost:5174 in your browser.

Build

bun run build

Preview Production Build

bun run preview

Project Structure

src/
├── components/
│   ├── ui/           # shadcn/ui components
│   ├── dialogs/      # Modal dialog components
│   └── Layout.tsx    # Main app layout with sidebar
├── pages/
│   ├── NetWorthPage.tsx
│   ├── DebtsPage.tsx
│   ├── InvoicesPage.tsx
│   ├── ClientsPage.tsx
│   └── CashflowPage.tsx
├── store/
│   ├── slices/       # Redux slices for each feature
│   ├── store.ts      # Redux store configuration
│   ├── hooks.ts      # Typed Redux hooks
│   └── index.ts      # Barrel exports
├── App.tsx           # Root component with routing
├── main.tsx          # Entry point
└── index.css         # Global styles and theme

Design

  • Dark glass aesthetic with subtle transparency
  • Minimal, clean interface
  • Funnel Sans for headings
  • Inter for body text
  • Greyscale palette with green accents for positive values