Family Budget

Local SPA for family budget tracking: import bank statements, categorize transactions, view analytics.

Monorepo structure

family_budget/
├── backend/     — Node.js API server (Express + TypeScript)
├── frontend/    — React SPA (Vite + TypeScript)
├── shared/      — Shared TypeScript types (API contracts, entities)
├── docs/        — Specifications and backlog
└── package.json — npm workspaces root

Tech stack

Layer Choice Rationale
Backend Express + TypeScript Simple, well-known, sufficient for a small local app
Frontend React + Vite + TS Fast dev experience, modern tooling
Database PostgreSQL Deployed on Synology NAS
Migrations Knex Lightweight, SQL-close, supports seeds
Shared Pure TypeScript types Zero-runtime, imported by both backend and frontend

Prerequisites

  • Node.js >= 20
  • PostgreSQL >= 15
  • npm >= 10

Getting started

# Install all workspace dependencies
npm install

# Build shared types (must be done before backend/frontend)
npm run build -w shared

See backend/README.md and frontend/README.md for per-package instructions.

Description
No description provided
Readme 757 KiB
Languages
TypeScript 84.6%
CSS 15%
HTML 0.4%