feat(frontend): Oberfläche mit RRULE-Editor und Logo-Auswahl

- Vite, React 18, TypeScript und Tailwind mit dunklem Standard-Theme über
  CSS-Variablen, heller Modus umschaltbar und in localStorage gemerkt
- Anmeldung, erzwungener Passwortwechsel, Layout mit Seitenleiste
- API-Client mit stiller Token-Erneuerung, TanStack Query mit Fehler-Toasts
- Seiten Recurrences (inkl. Detail-Drawer), Transactions, Merchants, Settings
- Geführter RRULE-Editor mit Vorlagen, Expertenmodus, deutschem Klartext und
  Live-Vorschau der nächsten Termine vom preview-Endpunkt
- Firmen-Kachelgrid mit Logo, Markenfarbe und Logo-Auswahldialog samt Upload
- Beträge durchgängig in de-DE, Eingabe in beiden Schreibweisen
- 49 Tests, tsc --noEmit und eslint sauber, Produktionsbundle baut

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014e7t8UpmoVNMtWivY5LiSH
This commit is contained in:
moneyfy
2026-09-09 16:23:04 +02:00
co-authored by Claude Opus 5
parent 8edb69fe6a
commit 8d6fcfeb58
57 changed files with 13064 additions and 2 deletions
+23 -1
View File
@@ -1,6 +1,7 @@
# Entwicklungs-Helfer für moneyfy.
.DEFAULT_GOAL := help
BACKEND := backend
FRONTEND := frontend
PY := $(BACKEND)/.venv/bin/python
UV := uv
@@ -49,5 +50,26 @@ format: ## Code formatieren und automatisch behebbare Regelverstöße korrigiere
cd $(BACKEND) && .venv/bin/ruff check --fix .
cd $(BACKEND) && .venv/bin/ruff format .
.PHONY: fe-install
fe-install: ## Frontend-Abhängigkeiten installieren
cd $(FRONTEND) && npm ci
.PHONY: fe-dev
fe-dev: ## Frontend mit Hot Reload starten (Proxy auf das Backend)
cd $(FRONTEND) && npm run dev
.PHONY: fe-lint
fe-lint: ## tsc und eslint
cd $(FRONTEND) && npm run typecheck
cd $(FRONTEND) && npm run lint
.PHONY: fe-test
fe-test: ## Frontend-Tests ausführen
cd $(FRONTEND) && npm run test
.PHONY: fe-build
fe-build: ## Produktionsbundle bauen
cd $(FRONTEND) && npm run build
.PHONY: check
check: lint test ## Lint und Tests zusammen
check: lint test fe-lint fe-test ## Alle Prüfungen von Backend und Frontend