110 lines
2.5 KiB
Markdown
110 lines
2.5 KiB
Markdown
# 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](https://bun.sh/) (or Node.js 18+)
|
|
|
|
### Installation
|
|
|
|
```bash
|
|
cd frontend-web
|
|
bun install
|
|
```
|
|
|
|
### Development
|
|
|
|
```bash
|
|
bun run dev
|
|
```
|
|
|
|
Open [http://localhost:5174](http://localhost:5174) in your browser.
|
|
|
|
### Build
|
|
|
|
```bash
|
|
bun run build
|
|
```
|
|
|
|
### Preview Production Build
|
|
|
|
```bash
|
|
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
|