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 <noreply@anthropic.com>
This commit is contained in:
47
CLAUDE.md
Normal file
47
CLAUDE.md
Normal file
@@ -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
|
||||||
|
# <install-command>
|
||||||
|
|
||||||
|
# Entwicklungsserver starten
|
||||||
|
# <dev-command>
|
||||||
|
|
||||||
|
# Tests ausführen
|
||||||
|
# <test-command>
|
||||||
|
|
||||||
|
# Einzelnen Test ausführen
|
||||||
|
# <single-test-command>
|
||||||
|
|
||||||
|
# Linting
|
||||||
|
# <lint-command>
|
||||||
|
|
||||||
|
# Build für Produktion
|
||||||
|
# <build-command>
|
||||||
|
```
|
||||||
|
|
||||||
|
## 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
|
||||||
74
docs/development-standards.md
Normal file
74
docs/development-standards.md
Normal file
@@ -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/<name> – neue Features
|
||||||
|
fix/<name> – Bugfixes
|
||||||
|
chore/<name> – Wartung, Abhängigkeiten, Konfiguration
|
||||||
|
```
|
||||||
|
|
||||||
|
### Commit-Messages
|
||||||
|
|
||||||
|
Format: `<type>: <short description>` (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
|
||||||
56
docs/project-structure.md
Normal file
56
docs/project-structure.md
Normal file
@@ -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.
|
||||||
Reference in New Issue
Block a user