Anton 56b5c81ec5 feat(frontend): адаптация под мобильные устройства
- Мобильная навигация: hamburger-меню и drawer вместо фиксированного sidebar
- Модальные окна на весь экран при ширине < 480px
- Адаптивные заголовки страниц и фильтры (touch-friendly)
- Card view для таблицы операций при ширине < 600px
- Горизонтальный скролл вкладок настроек
- Увеличенные touch-targets (44px) для пагинации и кнопок
- Уменьшенная высота графиков на мобильных
- Поддержка safe-area-inset для устройств с вырезами
- theme-color в index.html

Made-with: Cursor
2026-03-10 11:50:36 +03:00
2026-03-02 11:39:04 +03:00
2026-03-02 00:34:40 +03:00
2026-03-02 23:22:40 +03:00
2026-03-02 00:35:39 +03:00
2026-03-02 23:22:40 +03:00

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%