From f301cd40448b880bab635b67289e617cfb20fc74 Mon Sep 17 00:00:00 2001 From: Faultier314 <114798763+Faultier314@users.noreply.github.com> Date: Sun, 5 Apr 2026 21:53:57 +0200 Subject: [PATCH] chore: initial project setup with documentation Add CLAUDE.md, development standards, project structure docs, and domain model skeleton for the Gartenmanager project. Co-Authored-By: Claude Sonnet 4.6 --- CLAUDE.md | 47 ++++++++++++++++++++++ docs/development-standards.md | 74 +++++++++++++++++++++++++++++++++++ docs/project-structure.md | 56 ++++++++++++++++++++++++++ 3 files changed, 177 insertions(+) create mode 100644 CLAUDE.md create mode 100644 docs/development-standards.md create mode 100644 docs/project-structure.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..143e439 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,47 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Projekt + +**Gartenmanager** – eine Anwendung zur Verwaltung und Planung von Gartenaktivitäten (Pflanzen, Aussaatkalender, Aufgaben, Bewässerung etc.). + +## Weiterführende Dokumente + +| Dokument | Inhalt | +|---|---| +| [docs/development-standards.md](docs/development-standards.md) | Allgemeine Entwicklungsstandards (Coding Style, Git, Testing) | +| [docs/project-structure.md](docs/project-structure.md) | Projektstruktur und Architekturübersicht | + +## Techstack + +> Noch festzulegen – diese Sektion aktualisieren, sobald der Stack definiert ist. + +## Build & Entwicklung + +> Befehle eintragen, sobald Build-System definiert ist. + +```bash +# Abhängigkeiten installieren +# + +# Entwicklungsserver starten +# + +# Tests ausführen +# + +# Einzelnen Test ausführen +# + +# Linting +# + +# Build für Produktion +# +``` + +## Wichtige Konventionen + +- Sprache: Deutsch für Domänenkonzepte (Pflanzen, Beet, Aussaat …), Englisch für Code-Bezeichner und Commit-Messages +- Alle Dateipfade in den `docs/`-Dokumenten aktuell halten, wenn sich die Struktur ändert diff --git a/docs/development-standards.md b/docs/development-standards.md new file mode 100644 index 0000000..313c44f --- /dev/null +++ b/docs/development-standards.md @@ -0,0 +1,74 @@ +# Entwicklungsstandards + +Allgemein gültige Standards für die Arbeit in diesem Repository. + +--- + +## Sprache + +- **Code-Bezeichner** (Variablen, Funktionen, Klassen, Dateinamen): Englisch +- **Domänenobjekte** (z. B. `Pflanze`, `Beet`, `Aussaatkalender`): Deutsch erlaubt, wenn es die Lesbarkeit erhöht +- **Commit-Messages**: Englisch, Imperativ (`Add`, `Fix`, `Refactor`) +- **Dokumentation & Kommentare**: Deutsch + +--- + +## Git + +### Branching + +``` +main – stabiler Produktionsstand +feature/ – neue Features +fix/ – Bugfixes +chore/ – Wartung, Abhängigkeiten, Konfiguration +``` + +### Commit-Messages + +Format: `: ` (max. 72 Zeichen) + +| Type | Wann | +|---|---| +| `feat` | Neues Feature | +| `fix` | Bugfix | +| `refactor` | Code-Umbau ohne Verhaltensänderung | +| `test` | Tests hinzufügen/anpassen | +| `docs` | Nur Dokumentation | +| `chore` | Build, Dependencies, Konfiguration | + +Beispiel: `feat: add watering schedule to plant detail view` + +--- + +## Code-Qualität + +- Keine auskommentierten Code-Blöcke committen +- Keine `console.log` / `print`-Statements in Produktionscode +- Funktionen bleiben klein und haben eine einzige Verantwortung +- Keine spekulativen Abstraktionen – erst abstrahieren, wenn ein Muster dreimal vorkommt + +--- + +## Testing + +- Unit-Tests für Geschäftslogik (Berechnungen, Transformationen) +- Integrationstests an Systemgrenzen (API, Datenbank) +- Keine Mocks für die Datenbank in Integrationstests +- Testdatei liegt neben der zu testenden Datei oder in einem `__tests__`/`tests`-Verzeichnis auf gleicher Ebene + +--- + +## Fehlerbehandlung + +- Fehler nur an Systemgrenzen abfangen (User-Input, externe APIs, Datenbankzugriff) +- Intern Fehler propagieren, nicht still schlucken +- Keine Fallbacks für Szenarien, die nicht eintreten können + +--- + +## Abhängigkeiten + +- So wenig externe Abhängigkeiten wie möglich +- Vor dem Hinzufügen einer Bibliothek prüfen: Wird sie wirklich gebraucht? +- `package.json` / Lockfile immer committen diff --git a/docs/project-structure.md b/docs/project-structure.md new file mode 100644 index 0000000..81f27fb --- /dev/null +++ b/docs/project-structure.md @@ -0,0 +1,56 @@ +# Projektstruktur + +> Dieses Dokument beschreibt die Verzeichnisstruktur und Architektur des Gartenmanagers. +> Bei strukturellen Änderungen bitte hier aktualisieren. + +--- + +## Verzeichnisübersicht + +``` +gartenmanager/ +├── CLAUDE.md # Guidance für Claude Code +├── docs/ +│ ├── development-standards.md # Allgemeine Entwicklungsstandards +│ └── project-structure.md # Dieses Dokument +│ +│ (weitere Verzeichnisse entstehen mit dem Projekt) +``` + +> Sobald der Techstack feststeht, wird diese Struktur hier dokumentiert. + +--- + +## Architektur + +> Noch festzulegen. Typische Optionen für dieses Projekt: +> +> - **Monolith** (z. B. Full-Stack-Framework wie Laravel, Django, Rails) +> - **Frontend + Backend getrennt** (z. B. Vue/React + REST/GraphQL API) +> - **Mobile App** (z. B. Flutter, React Native) + +--- + +## Domänenmodell (geplant) + +Die Kernkonzepte des Gartenmanagers: + +| Konzept | Beschreibung | +|---|---| +| `Plant` / Pflanze | Eine Pflanzenart mit Eigenschaften (Aussaatzeit, Abstand, Wasserbedarf …) | +| `Bed` / Beet | Ein physischer Gartenbereich, dem Pflanzen zugeordnet werden | +| `SowingCalendar` / Aussaatkalender | Zeitplan für Aussaat und Pflanzung je Pflanze und Jahr | +| `Task` / Aufgabe | Eine zu erledigende Gartenarbeit mit Fälligkeitsdatum | +| `WateringSchedule` / Bewässerungsplan | Regelmäßige Bewässerungsintervalle je Beet oder Pflanze | + +--- + +## Datenhaltung + +> Noch festzulegen (SQLite, PostgreSQL, lokale Dateien …). + +--- + +## Schnittstellen + +> Noch festzulegen.