Files
hwinkel 9e7c85c2b3 feat: add Einnahmen Kategorien management page with CRUD functionality
- Implemented a new route for managing Einnahmen Kategorien.
- Added auto-seeding of default Einnahmen Kategorien if none exist.
- Integrated category usage tracking to prevent deletion of in-use categories.
- Enhanced Einnahmen page to link to the new Kategorien management.
- Updated Prisma schema and seed script to include default categories.
- Added a modal for detailed view of Einnahmen by category and month.
- Refactored existing Einnahmen page to accommodate new category structure.
- Introduced PostCSS configuration for Tailwind CSS support.
- Created a new migration to update existing category labels in the database.
- Added TypeScript configuration for stricter type checking.
- Set up Vite configuration for improved development experience with React Router.
2026-03-24 22:43:09 +01:00

3.7 KiB
Raw Permalink Blame History

Annas Rechnungsmanager (CLAUDE onboarding)

1. Projektüberblick

Annas Rechnungsmanager ist ein Buchhaltungs- und Rechnungsverwaltungssystem für Steuerberater und Buchhalter mit Mandantenverwaltung. Funktionalitäten:

  • Mandantenverwaltung (CRUD, Archiv, Papierkorb)
  • Rechnungsverwaltung (Erstellen, PDF-/XML-Export, Zahlung eintragen)
  • Kundenverwaltung (Stammdaten pro Mandant)
  • Steuerberichte (USt-Voranmeldung, Monats-/Quartalsreport)
  • Benutzerverwaltung mit Rollen (ADMIN, USER)
  • Audit-Log (Aktionen + IP + Benutzer)

2. Tech Stack (Schlüsseltechnologien)

  • Node.js 22+, TypeScript
  • REMIX/React Router v7 (Server-/Client-CSS, SSR, file-based routing)
  • Prisma + MariaDB (MySQL-kompatibel)
  • Authentifizierung: cookie-basierte Sessions, bcryptjs
  • UI: Tailwind CSS v4, shadcn/ui, Remix components
  • PDF: @react-pdf/renderer
  • Deployment: Docker, docker-compose, optional k8s

3. Repository-Architektur

  • app/ - Remiх/React-Router-Quellcode
    • components/ - shared UI und Domain-Komponenten (company, invoice, layout, ui)
    • lib/ - Datenbank, Logik, Helpers
    • routes/ - Datei-Routing-Endpunkte und APIs
    • session.server.ts - Session/Auth-Handling
    • types/index.ts - globale Typen
  • prisma/ - Schema, Migrationen, Seeder
  • scripts/ - CLI-Hilfs-Skripte (setup-admin, reset-password)
  • docker-compose.yml, Dockerfile, k8s.yml - Deployment & Infrastruktur

4. Schlüsseldateien

  • app/root.tsx - Root-Layout und Fehlergrenzen
  • app/entry.server.tsx - Server-Entry (SSR)
  • app/routes/index.tsx (home, dashboard, login, settings)
  • app/routes/api.* - REST-API-Endpunkte für CRUD (companies, invoices, etc.)
  • app/lib/prisma.server.ts - Prisma-Client-Initialisierung
  • app/lib/logger.server.ts, rate-limiter.server.ts - Infrastruktur
  • prisma/schema.prisma - Datenmodell
  • package.json und tsconfig.json - Build / Lint / Types

5. Konventionen & Code-Richtlinien

  • FS-basierte React Router v7 Routen
  • Server-Endpunkte in app/routes/api.* als Remix-Loaders/Actions
  • Mutationen und Datenzugriffe in app/lib (Prisma, Tax, utils)
  • Typescript-sicher und null-safe; bevorzugt unknown/guard-Checks für externe Daten
  • UI-Toolkit: shadcn-Komponenten + Tailwind Utility-Klassen
  • Error-Handling mit Remix redirect, json, badRequest

6. Häufige Aufgaben und Workflows

  • Lokale Entwicklung: npm install, .env konfigurieren, npx prisma migrate deploy, npm run dev
  • DB initialisieren/seeden: npm run db:seed; npm run db:migrate
  • Admin einrichten: npm run setup-admin (oder via Docker-Env ADMIN_PASSWORD beim Start)
  • Passwort reset: npm run reset-password
  • Automatische Migration beim Containerstart (Production)

7. Spezielle Hinweise für Claude

  • Bevorzuge präzise Änderungen in bestehendem Code (letzte Routen und Libs).
  • Halte Backward-Kompatibilität: bestehende API-Contracts in api.* sollen intakt bleiben.
  • Dokumentiere bei komplexen Änderungen Business-Logik (Steuern, Rechnungscodes, UStG §14).
  • Vollständige Test: npm run typecheck, ggf. npm run lint (falls eingerichtet).

8. Agent-Persona (optional)

  • Rolle: Full-stack Remix / TypeScript-Fachkraft für deutsche Rechnungssoftware
  • Fokus: Feature-Implementierung im Domain-Kontext (Invoices, Reports, Clients)
  • Toolpräferenzen: read_file, grep_search, replace_string_in_file und run_in_terminal für Verifikation
  • Vermeide: ungetestete massive Refactorings ohne vorhandenen Abdeckungsstatus

9. Weiteres

  • CLAUDE.md wird als Projekt-spezifisches Onboarding für ChatGPT/Claude-Agenten genutzt.
  • Für Dev-Workflows und PR-Beschreibungen, bitte auf README.md und package.json verweisen.