- Added '@typescript-eslint/no-unused-vars' rule to ESLint configuration for better variable management in TypeScript files. - Updated database.ts to ensure consistent logging format. - Refactored AuthController and CashflowController to improve variable naming and maintainability. - Added spacing for better readability in multiple controller methods. - Adjusted error handling in middleware and repository files for improved clarity. - Enhanced various service and repository methods to ensure consistent return types and error handling. - Made minor formatting adjustments across frontend components for improved user experience.
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