Compare commits
8 Commits
main
...
feature/ci
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5d9d517d18 | ||
|
|
d1831955c7 | ||
|
|
1abf4a647d | ||
|
|
c2eb905d62 | ||
|
|
6af5df32f6 | ||
|
|
80c73595d2 | ||
|
|
cd7a3f7414 | ||
|
|
3dceae930c |
62
.claude/scripts/bump.sh
Normal file
62
.claude/scripts/bump.sh
Normal file
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env bash
|
||||
# bump.sh – Version erhöhen, CHANGELOG aktualisieren, committen und pushen
|
||||
#
|
||||
# Verwendung:
|
||||
# bash .claude/scripts/bump.sh patch "Beschreibung der Änderung"
|
||||
# bash .claude/scripts/bump.sh minor "Beschreibung der Änderung"
|
||||
# bash .claude/scripts/bump.sh major "Beschreibung der Änderung"
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
BUMP_TYPE="${1:-patch}"
|
||||
MESSAGE="${2:-}"
|
||||
|
||||
if [[ -z "$MESSAGE" ]]; then
|
||||
echo "Fehler: Beschreibung fehlt."
|
||||
echo "Verwendung: bash .claude/scripts/bump.sh [patch|minor|major] \"Beschreibung\""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ROOT="$(git rev-parse --show-toplevel)"
|
||||
VERSION_FILE="$ROOT/VERSION"
|
||||
CHANGELOG_FILE="$ROOT/CHANGELOG.md"
|
||||
|
||||
# Aktuelle Version lesen
|
||||
CURRENT=$(cat "$VERSION_FILE" | tr -d '[:space:]')
|
||||
IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT"
|
||||
|
||||
# Version erhöhen
|
||||
case "$BUMP_TYPE" in
|
||||
major) MAJOR=$((MAJOR + 1)); MINOR=0; PATCH=0 ;;
|
||||
minor) MINOR=$((MINOR + 1)); PATCH=0 ;;
|
||||
patch) PATCH=$((PATCH + 1)) ;;
|
||||
*)
|
||||
echo "Fehler: Ungültiger Typ '$BUMP_TYPE'. Erlaubt: patch, minor, major"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
NEW_VERSION="$MAJOR.$MINOR.$PATCH"
|
||||
DATE=$(date +%Y-%m-%d)
|
||||
|
||||
echo "Bump: $CURRENT → $NEW_VERSION ($BUMP_TYPE)"
|
||||
|
||||
# VERSION aktualisieren
|
||||
echo "$NEW_VERSION" > "$VERSION_FILE"
|
||||
|
||||
# CHANGELOG-Eintrag einfügen (nach der ersten ---)
|
||||
ENTRY="## [$NEW_VERSION] - $DATE\n\n### Changed\n- $MESSAGE\n\n---\n"
|
||||
# Füge nach der ersten '---' Zeile ein
|
||||
awk -v entry="$ENTRY" '/^---$/ && !inserted { print; printf "%s", entry; inserted=1; next } { print }' \
|
||||
"$CHANGELOG_FILE" > "$CHANGELOG_FILE.tmp" && mv "$CHANGELOG_FILE.tmp" "$CHANGELOG_FILE"
|
||||
|
||||
# Commit und Push
|
||||
git -C "$ROOT" add "$VERSION_FILE" "$CHANGELOG_FILE"
|
||||
git -C "$ROOT" commit -m "chore: bump version to $NEW_VERSION
|
||||
|
||||
$MESSAGE
|
||||
|
||||
Version: $NEW_VERSION"
|
||||
git -C "$ROOT" push
|
||||
|
||||
echo "Fertig: Version $NEW_VERSION committed und gepusht."
|
||||
41
.claude/scripts/new-feature.sh
Normal file
41
.claude/scripts/new-feature.sh
Normal file
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env bash
|
||||
# new-feature.sh – Feature- oder Fix-Branch aus develop erstellen und pushen
|
||||
#
|
||||
# Verwendung:
|
||||
# bash .claude/scripts/new-feature.sh feature <name>
|
||||
# bash .claude/scripts/new-feature.sh fix <name>
|
||||
# bash .claude/scripts/new-feature.sh debug <name>
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
TYPE="${1:-}"
|
||||
NAME="${2:-}"
|
||||
|
||||
if [[ -z "$TYPE" || -z "$NAME" ]]; then
|
||||
echo "Verwendung: bash .claude/scripts/new-feature.sh [feature|fix|debug] <name>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "$TYPE" in
|
||||
feature|fix|debug) ;;
|
||||
*)
|
||||
echo "Fehler: Ungültiger Typ '$TYPE'. Erlaubt: feature, fix, debug"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
BRANCH="$TYPE/$NAME"
|
||||
ROOT="$(git rev-parse --show-toplevel)"
|
||||
|
||||
# Sicherstellen dass develop aktuell ist
|
||||
echo "Wechsle zu develop und aktualisiere..."
|
||||
git -C "$ROOT" checkout develop
|
||||
git -C "$ROOT" pull origin develop
|
||||
|
||||
# Branch erstellen und pushen
|
||||
echo "Erstelle Branch: $BRANCH"
|
||||
git -C "$ROOT" checkout -b "$BRANCH"
|
||||
git -C "$ROOT" push -u origin "$BRANCH"
|
||||
|
||||
echo "Fertig: Branch '$BRANCH' erstellt und gepusht."
|
||||
echo "Aktiver Branch: $(git -C "$ROOT" branch --show-current)"
|
||||
42
.claude/session-context.md
Normal file
42
.claude/session-context.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# Session-Kontext
|
||||
|
||||
> Claude liest diese Datei zu Beginn jeder Session.
|
||||
> Claude aktualisiert sie am Ende jeder Session (Version, Branch, offene Arbeit).
|
||||
|
||||
---
|
||||
|
||||
## Aktueller Stand
|
||||
|
||||
| Feld | Wert |
|
||||
|---|---|
|
||||
| **Version** | 0.2.1 |
|
||||
| **Aktiver Branch** | feature/grundstruktur |
|
||||
| **Basis-Branch** | develop |
|
||||
| **Zuletzt geändert** | 2026-04-05 |
|
||||
|
||||
## Offene Arbeit
|
||||
|
||||
- [ ] Techstack festlegen
|
||||
- [ ] feature/grundstruktur → develop mergen (wenn Techstack entschieden)
|
||||
|
||||
## Zuletzt abgeschlossen
|
||||
|
||||
- Repo-Infrastruktur aufgebaut (CLAUDE.md, Standards, Branching, README, PR-Template)
|
||||
- .gitattributes, bump.sh, new-feature.sh, session-context.md eingeführt
|
||||
- Branch Protection + Squash-Merge serverseitig konfiguriert
|
||||
|
||||
## Schnellreferenz
|
||||
|
||||
```bash
|
||||
# Version bumpen
|
||||
bash .claude/scripts/bump.sh patch "Was wurde geändert"
|
||||
|
||||
# Neuen Branch erstellen
|
||||
bash .claude/scripts/new-feature.sh feature <name>
|
||||
|
||||
# Aktueller Branch
|
||||
git branch --show-current
|
||||
|
||||
# Status
|
||||
git status
|
||||
```
|
||||
14
.claude/settings.local.json
Normal file
14
.claude/settings.local.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"Bash(curl -s -o /dev/null -w \"%{http_code}\" https://tea.jr-family.de/api/v1/repos/Admin/gartenmanager)",
|
||||
"Bash(git -C c:/Projekte/Home/gartenmanager config --get credential.helper)",
|
||||
"Bash(git credential:*)",
|
||||
"Bash(python3 -m json.tool)",
|
||||
"Bash(git -C c:/Projekte/Home/gartenmanager credential fill)",
|
||||
"Bash(python3 -c \"import sys,json; r=json.load\\(sys.stdin\\); print\\('allow_squash_merge:', r.get\\('allow_squash_merge'\\), '| default_merge_style:', r.get\\('default_merge_style'\\)\\)\")",
|
||||
"Bash(bash .claude/scripts/bump.sh patch \"Add autonomous branch-switching rule to workflow docs\")",
|
||||
"Bash(bash .claude/scripts/bump.sh patch \"Update project plan: finalize phases, techstack and architecture decisions\")"
|
||||
]
|
||||
}
|
||||
}
|
||||
35
.gitattributes
vendored
Normal file
35
.gitattributes
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
# Automatische Zeilenendenormalisierung
|
||||
* text=auto
|
||||
|
||||
# Explizit Text-Dateien auf LF normieren
|
||||
*.md text eol=lf
|
||||
*.txt text eol=lf
|
||||
*.json text eol=lf
|
||||
*.yaml text eol=lf
|
||||
*.yml text eol=lf
|
||||
*.toml text eol=lf
|
||||
*.xml text eol=lf
|
||||
*.html text eol=lf
|
||||
*.css text eol=lf
|
||||
*.scss text eol=lf
|
||||
*.js text eol=lf
|
||||
*.ts text eol=lf
|
||||
*.tsx text eol=lf
|
||||
*.jsx text eol=lf
|
||||
*.py text eol=lf
|
||||
*.sh text eol=lf
|
||||
*.env text eol=lf
|
||||
|
||||
# Binärdateien – kein Zeilenenden-Handling
|
||||
*.png binary
|
||||
*.jpg binary
|
||||
*.jpeg binary
|
||||
*.gif binary
|
||||
*.ico binary
|
||||
*.svg binary
|
||||
*.woff binary
|
||||
*.woff2 binary
|
||||
*.ttf binary
|
||||
*.eot binary
|
||||
*.pdf binary
|
||||
*.zip binary
|
||||
28
.gitea/PULL_REQUEST_TEMPLATE.md
Normal file
28
.gitea/PULL_REQUEST_TEMPLATE.md
Normal file
@@ -0,0 +1,28 @@
|
||||
## Beschreibung
|
||||
|
||||
<!-- Was wurde geändert und warum? -->
|
||||
|
||||
## Typ der Änderung
|
||||
|
||||
- [ ] `feat` – neues Feature
|
||||
- [ ] `fix` – Bugfix
|
||||
- [ ] `refactor` – Code-Umbau ohne Verhaltensänderung
|
||||
- [ ] `chore` – Wartung, Build, Konfiguration
|
||||
- [ ] `docs` – nur Dokumentation
|
||||
|
||||
## Checkliste
|
||||
|
||||
- [ ] Alle Tests erfolgreich (`<test-command>`)
|
||||
- [ ] Versionsnummer erhöht (`VERSION` + `CHANGELOG.md`)
|
||||
- [ ] `docs/project-structure.md` aktualisiert (falls Funktionen/Module geändert)
|
||||
- [ ] `README.md` aktualisiert (falls nötig)
|
||||
- [ ] Branch ist aktuell mit `develop` (rebase/merge)
|
||||
- [ ] Kein direkter Push nach `main` – diese PR geht nach `develop`
|
||||
|
||||
## Getestete Szenarien
|
||||
|
||||
<!-- Was wurde manuell oder automatisch getestet? -->
|
||||
|
||||
## Version
|
||||
|
||||
<!-- z.B. 0.2.1 -->
|
||||
61
CHANGELOG.md
Normal file
61
CHANGELOG.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# Changelog
|
||||
|
||||
Alle wesentlichen Änderungen am Projekt werden hier dokumentiert.
|
||||
Format: `[MAJOR.MINOR.PATCH] - YYYY-MM-DD`
|
||||
|
||||
---
|
||||
## [0.2.3] - 2026-04-05
|
||||
|
||||
### Changed
|
||||
- Update project plan: finalize phases, techstack and architecture decisions
|
||||
|
||||
---
|
||||
## [0.2.2] - 2026-04-05
|
||||
|
||||
### Changed
|
||||
- Add autonomous branch-switching rule to workflow docs
|
||||
|
||||
---
|
||||
|
||||
## [0.2.1] - 2026-04-05
|
||||
|
||||
### Changed
|
||||
- `CLAUDE.md` auf reine Dispatch-Tabelle reduziert (keine Regelwiederholungen)
|
||||
- `docs/project-structure.md` als dichte Modulreferenz-Vorlage strukturiert
|
||||
|
||||
### Added
|
||||
- `.claude/scripts/bump.sh` – Version + CHANGELOG + commit + push in einem Befehl
|
||||
- `.claude/scripts/new-feature.sh` – Feature/Fix/Debug-Branch aus develop erstellen
|
||||
- `.claude/session-context.md` – Sessionstart-Kontext (Version, Branch, offene Arbeit)
|
||||
|
||||
---
|
||||
|
||||
## [0.2.0] - 2026-04-05
|
||||
|
||||
### Added
|
||||
- `.gitattributes` – automatische LF-Normalisierung, keine CRLF-Warnungen mehr
|
||||
- `README.md` – Projektbeschreibung, Features-Übersicht, Links zur Dokumentation
|
||||
- `.gitea/PULL_REQUEST_TEMPLATE.md` – Checkliste für PRs (Tests, Version, Docs)
|
||||
- Branch Protection für `main` und `develop` (serverseitig konfiguriert)
|
||||
- Squash-Merge als Standard-Merge-Strategie (serverseitig konfiguriert)
|
||||
|
||||
---
|
||||
|
||||
## [0.1.1] - 2026-04-05
|
||||
|
||||
### Changed
|
||||
- Entwicklungsstandards um Branching-Regeln, Versionierungsschema und Workflow-Regeln erweitert
|
||||
|
||||
### Added
|
||||
- CHANGELOG.md eingeführt
|
||||
- VERSION-Datei eingeführt
|
||||
|
||||
---
|
||||
|
||||
## [0.1.0] - 2026-04-05
|
||||
|
||||
### Added
|
||||
- CLAUDE.md – Guidance für Claude Code
|
||||
- docs/development-standards.md – allgemeine Entwicklungsstandards
|
||||
- docs/project-structure.md – Projektstruktur und Domänenmodell
|
||||
- docs/branching-strategy.md – Branching-Strategie
|
||||
24
CLAUDE.md
24
CLAUDE.md
@@ -4,14 +4,19 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
||||
|
||||
## Projekt
|
||||
|
||||
**Gartenmanager** – eine Anwendung zur Verwaltung und Planung von Gartenaktivitäten (Pflanzen, Aussaatkalender, Aufgaben, Bewässerung etc.).
|
||||
**Gartenmanager** – Anwendung zur Verwaltung von Gartenaktivitäten (Pflanzen, Beete, Aussaatkalender, Aufgaben, Bewässerung).
|
||||
|
||||
## Weiterführende Dokumente
|
||||
## Dokumente – wo was steht
|
||||
|
||||
| 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 |
|
||||
| [docs/development-standards.md](docs/development-standards.md) | **Alle Regeln:** Branching, Versionierung, Workflow, Coding, Testing |
|
||||
| [docs/project-structure.md](docs/project-structure.md) | **Alle Module & Funktionen** – hier zuerst lesen, bevor Quellcode geöffnet wird |
|
||||
| [docs/branching-strategy.md](docs/branching-strategy.md) | Branch-Diagramm |
|
||||
| [CHANGELOG.md](CHANGELOG.md) | Versionshistorie |
|
||||
| [VERSION](VERSION) | Aktuelle Versionsnummer |
|
||||
| [.claude/session-context.md](.claude/session-context.md) | **Sessionstart hier lesen:** aktiver Branch, Version, offene Arbeit |
|
||||
| [.claude/scripts/](.claude/scripts/) | Automatisierungsscripts (bump, new-feature) |
|
||||
|
||||
## Techstack
|
||||
|
||||
@@ -39,9 +44,10 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
||||
|
||||
# Build für Produktion
|
||||
# <build-command>
|
||||
|
||||
# Version bumpen + commit + push (patch/minor/major)
|
||||
bash .claude/scripts/bump.sh patch "Beschreibung der Änderung"
|
||||
|
||||
# Neuen Feature-Branch erstellen
|
||||
bash .claude/scripts/new-feature.sh <name>
|
||||
```
|
||||
|
||||
## 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
|
||||
|
||||
32
README.md
Normal file
32
README.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# Gartenmanager
|
||||
|
||||
Persönliche Webanwendung zur Verwaltung und Planung von Gartenaktivitäten.
|
||||
|
||||
## Features (geplant)
|
||||
|
||||
- **Pflanzenverwaltung** – Pflanzenarten mit Eigenschaften (Aussaatzeit, Wasserbedarf, Abstand …)
|
||||
- **Beetplanung** – Beete anlegen und Pflanzen zuordnen
|
||||
- **Aussaatkalender** – Jahresbasierter Aussaat- und Pflanzungsplan
|
||||
- **Aufgabenverwaltung** – Gartenaufgaben mit Fälligkeitsdatum
|
||||
- **Bewässerungsplan** – Intervalle je Beet oder Pflanze
|
||||
|
||||
## Techstack
|
||||
|
||||
> Noch festzulegen.
|
||||
|
||||
## Entwicklung
|
||||
|
||||
> Build- und Run-Befehle werden hier ergänzt, sobald der Techstack feststeht.
|
||||
|
||||
Weiterführende Dokumentation:
|
||||
|
||||
- [Entwicklungsstandards](docs/development-standards.md)
|
||||
- [Projektstruktur](docs/project-structure.md)
|
||||
- [Branching-Strategie](docs/branching-strategy.md)
|
||||
- [Changelog](CHANGELOG.md)
|
||||
|
||||
## Versionierung
|
||||
|
||||
Aktuelle Version: siehe [VERSION](VERSION)
|
||||
|
||||
Schema: `MAJOR.MINOR.PATCH` – Details in den [Entwicklungsstandards](docs/development-standards.md#versionierung).
|
||||
15
docs/branching-strategy.md
Normal file
15
docs/branching-strategy.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# Branching-Strategie
|
||||
|
||||
```
|
||||
main
|
||||
└── develop
|
||||
├── feature/<name>
|
||||
├── fix/<name>
|
||||
└── chore/<name>
|
||||
```
|
||||
|
||||
- `main` – stabiler Produktionsstand, nur Merges aus `develop`
|
||||
- `develop` – Integrationsstand, Basis für alle Feature-Branches
|
||||
- `feature/*` – neue Features, Basis: `develop`
|
||||
- `fix/*` – Bugfixes, Basis: `develop`
|
||||
- `chore/*` – Wartung, Konfiguration, Basis: `develop`
|
||||
@@ -13,17 +13,27 @@ Allgemein gültige Standards für die Arbeit in diesem Repository.
|
||||
|
||||
---
|
||||
|
||||
## Git
|
||||
## Git & Branching
|
||||
|
||||
### Branching
|
||||
### Struktur
|
||||
|
||||
```
|
||||
main – stabiler Produktionsstand
|
||||
feature/<name> – neue Features
|
||||
fix/<name> – Bugfixes
|
||||
chore/<name> – Wartung, Abhängigkeiten, Konfiguration
|
||||
main
|
||||
└── develop
|
||||
├── feature/<name> – neue Features
|
||||
├── fix/<name> – Bugfixes / kleine Fixes
|
||||
└── debug/<name> – Debugging / Fehleranalyse
|
||||
```
|
||||
|
||||
### Regeln
|
||||
|
||||
0. **Branch-Wechsel erfolgen selbstständig** – Claude wechselt eigenständig in den jeweils passenden Branch, ohne nachzufragen. Dabei gelten alle übrigen Regeln uneingeschränkt.
|
||||
1. **Nie direkt nach `main` pushen oder mergen.** Änderungen in `main` kommen ausschließlich über eine Pull-Request aus `develop`.
|
||||
2. Jede Änderung findet in einem eigenen `feature/` oder `fix/` Branch unterhalb von `develop` statt.
|
||||
3. In `develop` mergen erst, wenn die Arbeit abgeschlossen ist und alle Tests erfolgreich waren.
|
||||
4. Eine PR nach `main` wird nur auf explizite Anweisung des Nutzers geöffnet.
|
||||
5. Vor jedem Merge nach `develop` und vor jeder PR nach `main` werden alle wesentlichen Dokumente (README.md, CHANGELOG.md, docs/) geprüft und ggf. aktualisiert.
|
||||
|
||||
### Commit-Messages
|
||||
|
||||
Format: `<type>: <short description>` (max. 72 Zeichen)
|
||||
@@ -37,7 +47,31 @@ Format: `<type>: <short description>` (max. 72 Zeichen)
|
||||
| `docs` | Nur Dokumentation |
|
||||
| `chore` | Build, Dependencies, Konfiguration |
|
||||
|
||||
Beispiel: `feat: add watering schedule to plant detail view`
|
||||
**Nach jedem Commit wird sofort gepusht.**
|
||||
|
||||
---
|
||||
|
||||
## Versionierung
|
||||
|
||||
Schema: `MAJOR.MINOR.PATCH`
|
||||
|
||||
| Teil | Bedeutung | Wechsel |
|
||||
|---|---|---|
|
||||
| `MAJOR` | Hauptrelease | Nur auf explizite Anweisung des Nutzers |
|
||||
| `MINOR` | Größere Updates, neue Features | Bei jeder Feature-Erweiterung oder größerem Umbau |
|
||||
| `PATCH` | Kleine Fixes, Minimalkorrekturen | Bei Bugfixes, kleinen Ergänzungen, Mini-Umbauten |
|
||||
|
||||
- Die aktuelle Version steht in [CHANGELOG.md](../CHANGELOG.md) und in der Datei `VERSION`
|
||||
- Nach **jeder** Änderung wird die Versionsnummer eigenständig erhöht und in beiden Dateien notiert
|
||||
- Die Versionsnummer wird im Commit-Message-Footer vermerkt: `Version: x.y.z`
|
||||
|
||||
---
|
||||
|
||||
## Projektstruktur-Dokumentation
|
||||
|
||||
- Alle Funktionen/Module werden kurz in [docs/project-structure.md](project-structure.md) dokumentiert
|
||||
- Ziel: Token-Effizienz in zukünftigen Conversations – nicht alles neu einlesen müssen
|
||||
- Bei jeder Änderung an Funktionen/Modulen wird die Dokumentation synchron aktualisiert
|
||||
|
||||
---
|
||||
|
||||
@@ -56,6 +90,7 @@ Beispiel: `feat: add watering schedule to plant detail view`
|
||||
- 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
|
||||
- **In `develop` wird erst gemergt, wenn alle Tests grün sind**
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,47 +1,59 @@
|
||||
# Projektstruktur
|
||||
# Projektstruktur & Modulreferenz
|
||||
|
||||
> Dieses Dokument beschreibt die Verzeichnisstruktur und Architektur des Gartenmanagers.
|
||||
> Bei strukturellen Änderungen bitte hier aktualisieren.
|
||||
> **Token-Sparmaßnahme:** Dieses Dokument ist die erste Anlaufstelle.
|
||||
> Vor dem Öffnen von Quellcode hier nachschlagen.
|
||||
> Bei jeder Änderung an Funktionen, Modulen oder der Verzeichnisstruktur sofort aktualisieren.
|
||||
|
||||
---
|
||||
|
||||
## Verzeichnisübersicht
|
||||
## Verzeichnisstruktur
|
||||
|
||||
```
|
||||
gartenmanager/
|
||||
├── CLAUDE.md # Guidance für Claude Code
|
||||
├── .claude/ # Claude-Tooling (kein Projektcode)
|
||||
│ ├── scripts/
|
||||
│ │ ├── bump.sh # Version bumpen + commit + push
|
||||
│ │ └── new-feature.sh # Feature-Branch erstellen
|
||||
│ └── session-context.md # Sessionstart-Kontext
|
||||
├── .gitea/
|
||||
│ └── PULL_REQUEST_TEMPLATE.md
|
||||
├── docs/
|
||||
│ ├── development-standards.md # Allgemeine Entwicklungsstandards
|
||||
│ └── project-structure.md # Dieses Dokument
|
||||
│
|
||||
│ (weitere Verzeichnisse entstehen mit dem Projekt)
|
||||
│ ├── branching-strategy.md
|
||||
│ ├── development-standards.md
|
||||
│ └── project-structure.md # dieses Dokument
|
||||
├── .gitattributes
|
||||
├── CHANGELOG.md
|
||||
├── CLAUDE.md
|
||||
├── README.md
|
||||
└── VERSION
|
||||
```
|
||||
|
||||
> Sobald der Techstack feststeht, wird diese Struktur hier dokumentiert.
|
||||
> Sobald Quellcode-Verzeichnisse entstehen, hier ergänzen.
|
||||
|
||||
---
|
||||
|
||||
## Architektur
|
||||
## Modulübersicht
|
||||
|
||||
> Noch festzulegen. Typische Optionen für dieses Projekt:
|
||||
> Noch kein Anwendungscode vorhanden. Sobald Module/Komponenten entstehen:
|
||||
>
|
||||
> - **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)
|
||||
> ```
|
||||
> Modulname | Datei(en) | Zweck | Exportierte Funktionen
|
||||
> ```
|
||||
>
|
||||
> **Format pro Funktion:**
|
||||
> `funktionsname(param: Typ): Rückgabetyp` – Ein-Satz-Beschreibung
|
||||
|
||||
---
|
||||
|
||||
## Domänenmodell (geplant)
|
||||
## Domänenmodell
|
||||
|
||||
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 |
|
||||
| Entität | Felder (geplant) | Beziehungen |
|
||||
|---|---|---|
|
||||
| `Plant` | name, sowingStart, sowingEnd, waterInterval, spacing | gehört zu Bed |
|
||||
| `Bed` | name, width, length, location | enthält viele Plants |
|
||||
| `SowingCalendar` | year, plantId, sowDate, plantDate | referenziert Plant |
|
||||
| `Task` | title, dueDate, done, bedId? | optional zu Bed |
|
||||
| `WateringSchedule` | bedId/plantId, intervalDays, lastWatered | referenziert Bed oder Plant |
|
||||
|
||||
---
|
||||
|
||||
@@ -51,6 +63,18 @@ Die Kernkonzepte des Gartenmanagers:
|
||||
|
||||
---
|
||||
|
||||
## Schnittstellen
|
||||
## Schnittstellen / API
|
||||
|
||||
> Noch festzulegen.
|
||||
> Noch festzulegen. Hier Endpunkte mit Kurzbeschreibung eintragen:
|
||||
>
|
||||
> ```
|
||||
> GET /api/plants – alle Pflanzen
|
||||
> POST /api/plants – neue Pflanze anlegen
|
||||
> ...
|
||||
> ```
|
||||
|
||||
---
|
||||
|
||||
## Konfiguration
|
||||
|
||||
> Relevante Umgebungsvariablen und Konfigurationsdateien hier auflisten.
|
||||
|
||||
Reference in New Issue
Block a user