feat: Projektfundament mit Datenmodell, Migrationen und Seed

- Repo-Struktur für Backend, Frontend, Dokumentation und Gitea-Workflows
- FastAPI-Skeleton mit pydantic-settings und RFC-7807-artigem Fehlerformat
- Vollständiges Datenmodell (15 Tabellen) als SQLAlchemy-2.0-Modelle
- Alembic gegen die Async-Engine inklusive Erstmigration
- Idempotenter Seed für den deutschen Kategoriebaum und Standardregeln
- Endpunkte /api/health und /api/version
- pytest-Infrastruktur mit transaktionsisolierten Fixtures

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 13:12:08 +02:00
co-authored by Claude Opus 5
commit 0b06775be3
40 changed files with 2236 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
# Lokale Entwicklung: Hot Reload und offene Ports.
# Kopieren nach `docker-compose.override.yml` die Datei wird nicht eingecheckt.
services:
moneyfy-db:
# Datenbank direkt erreichbar, z. B. für psql oder einen SQL-Client.
ports:
- "127.0.0.1:5432:5432"
moneyfy-backend:
build:
context: ./backend
target: development
image: moneyfy-backend:dev
command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000", "--reload"]
environment:
ENVIRONMENT: development
DEBUG: "true"
COOKIE_SECURE: "false"
SCHEDULER_ENABLED: "false"
CORS_ORIGINS: http://localhost:5173
volumes:
# Quellcode einblenden, damit --reload greift.
- ./backend/app:/app/app:ro
- ./backend/alembic:/app/alembic:ro
ports:
- "127.0.0.1:8000:8000"
moneyfy-frontend:
build:
context: ./frontend
target: development
image: moneyfy-frontend:dev
command: ["npm", "run", "dev", "--", "--host", "0.0.0.0", "--port", "5173"]
environment:
VITE_API_BASE_URL: http://localhost:8000
volumes:
- ./frontend/src:/app/src
- ./frontend/public:/app/public
- ./frontend/index.html:/app/index.html:ro
ports:
- "127.0.0.1:5173:5173"