Files
personal-finance/frontend-web
Alexander Zinn cd93dcbfd2 Add backend API for personal finance management application
- Introduced a comprehensive backend API using TypeScript, Fastify, and PostgreSQL.
- Added essential files including architecture documentation, environment configuration, and Docker setup.
- Implemented RESTful routes for managing assets, liabilities, clients, invoices, and cashflow.
- Established a robust database schema with Prisma for data management.
- Integrated middleware for authentication and error handling.
- Created service and repository layers to adhere to SOLID principles and clean architecture.
- Included example environment variables for development, staging, and production setups.
2025-12-07 12:59:09 -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