Update .gitignore and remove outdated AGENTS.md and CLAUDE.md files; enhance presentation content for clarity
parent
ed75d3c8e4
commit
dbfdb22e19
|
|
@ -1,11 +1,30 @@
|
|||
# Maven-Build
|
||||
target/
|
||||
dependency-reduced-pom.xml
|
||||
.mvn/wrapper/maven-wrapper.jar
|
||||
|
||||
# Java
|
||||
*.class
|
||||
*.jar
|
||||
*.war
|
||||
|
||||
# Lokale Laufzeitdaten der Anwendung (IF-01, Q-06)
|
||||
daten/
|
||||
|
||||
# Logs
|
||||
*.log
|
||||
|
||||
# Generierte HTML-Dateien (aus Markdown)
|
||||
dokumentation/**/*.html
|
||||
|
||||
# IDE
|
||||
.idea/
|
||||
.vscode/
|
||||
*.iml
|
||||
.classpath
|
||||
.project
|
||||
.settings/
|
||||
|
||||
# OS
|
||||
Thumbs.db
|
||||
.DS_Store
|
||||
|
|
|
|||
95
AGENTS.md
95
AGENTS.md
|
|
@ -1,95 +0,0 @@
|
|||
# AGENTS.md
|
||||
|
||||
Diese Datei beschreibt die Arbeitsregeln fuer Codex und andere Coding-Agenten im gesamten
|
||||
Repository. Vor einer Aenderung ist zu klaeren, welches Modul und welche Projektgruppe
|
||||
fachlich verantwortlich sind.
|
||||
|
||||
## Projekt
|
||||
|
||||
Desktop-Fakturierungsanwendung fuer das Hochschulprojekt SE1, Team 1.
|
||||
|
||||
- Java 21, Maven, JUnit 5
|
||||
- Swing-Oberflaeche mit FlatLaf
|
||||
- lokale JSON-Persistenz unter `daten/` (nicht versioniert)
|
||||
- deutsche Bezeichner, Kommentare, UI-Texte und Spezifikationen
|
||||
|
||||
## Module und Verantwortungsbereiche
|
||||
|
||||
| Bereich | Gruppe | Verantwortung |
|
||||
|---------|--------|---------------|
|
||||
| `src/main/java/de/team1/faktura/dokumente/` | A | Dokumentenzyklus, Belegnummern und PDF-Export |
|
||||
| `src/main/java/de/team1/faktura/produkte/` | B | Produktverwaltung, Nummernvergabe und Loeschsperre |
|
||||
| `src/main/java/de/team1/faktura/kunden/` | C | Kundenverwaltung, Nummernvergabe und Loeschsperre |
|
||||
| `src/main/java/de/team1/faktura/gui/` | D | Swing-Oberflaeche, Panels, Dialoge und Wizard |
|
||||
| `src/main/java/de/team1/faktura/gemeinsam/` | alle | EreignisBus, Persistenzhilfe, CSV und Exceptions |
|
||||
|
||||
Tests liegen spiegelbildlich unter `src/test/java/de/team1/faktura/`. Pflichtenhefte und
|
||||
Diagramme der Gruppen liegen unter `dokumentation/anforderungen/` beziehungsweise
|
||||
`dokumentation/diagramme/`.
|
||||
|
||||
Agenten sollen Modulgrenzen respektieren und nur die fuer die Aufgabe erforderlichen
|
||||
Bereiche aendern. Gruppenuebergreifende Aenderungen sind erlaubt, wenn sie fuer eine
|
||||
Schnittstelle oder Integration notwendig sind; Auswirkungen auf alle betroffenen Module
|
||||
muessen dann mit Tests abgesichert werden. Lastenheft, Modultestplan, Project Charter und
|
||||
Praesentation nur bearbeiten, wenn sie ausdruecklich Teil der Aufgabe sind.
|
||||
|
||||
## Allgemeine Entwicklungsregeln
|
||||
|
||||
- Bestehende Klassen, Schnittstellen, Repositories und Muster bevorzugen.
|
||||
- Abhaengigkeiten werden in `Main.java` manuell verdrahtet; kein DI-Framework ergaenzen.
|
||||
- Der `EreignisBus` ist der vorhandene Mechanismus fuer Aktualisierungen nach
|
||||
Datenveraenderungen.
|
||||
- Persistenz erfolgt ueber die vorhandenen Repository-Schnittstellen und JSON-
|
||||
Implementierungen.
|
||||
- Keine aufgabenfremden Refactorings, Umbenennungen oder Formatierungsaenderungen
|
||||
mitziehen.
|
||||
- Neue Logik mit fokussierten JUnit-Tests absichern.
|
||||
|
||||
## Build und Tests
|
||||
|
||||
Der Maven-Wrapper ist nicht ausfuehrbar eingecheckt. Deshalb ueber die Shell starten:
|
||||
|
||||
```bash
|
||||
sh mvnw compile
|
||||
sh mvnw test
|
||||
sh mvnw test -Dtest=NameDerTestklasse
|
||||
sh mvnw test -Dtest=NameDerTestklasse#nameDerTestmethode
|
||||
sh mvnw package
|
||||
java -jar target/fakturierung-1.0.0.jar
|
||||
```
|
||||
|
||||
Zunaechst die passende modulbezogene Testklasse ausfuehren, vor Commit oder Push den
|
||||
vollstaendigen Testlauf starten. Neue Logik mit Tests auf der niedrigsten sinnvollen Ebene
|
||||
absichern.
|
||||
|
||||
## Dokumentation und Diagramme
|
||||
|
||||
Markdown und PDF werden gemeinsam versioniert. Pflichtenhefte aus dem
|
||||
Dokumentationsordner bauen, damit die relativen Diagrammpfade stimmen. Beispiel:
|
||||
|
||||
```bash
|
||||
cd dokumentation/anforderungen
|
||||
pandoc EINGABE.md -o AUSGABE.pdf --pdf-engine=tectonic
|
||||
```
|
||||
|
||||
PlantUML aus dem Repository-Root rendern:
|
||||
|
||||
```bash
|
||||
java -jar tools/plantuml.jar -tpng \
|
||||
dokumentation/diagramme/DATEI.puml
|
||||
```
|
||||
|
||||
Nach Dokumentaenderungen die erzeugte PDF visuell pruefen. Diagramme duerfen nicht
|
||||
abgeschnitten oder unlesbar klein sein. Quellen (`.md`, `.puml`) und erzeugte Artefakte
|
||||
(`.pdf`, `.png`) konsistent aktualisieren.
|
||||
|
||||
## Git und Zusammenarbeit
|
||||
|
||||
- Vor Aenderungen `git status` und den aktuellen Remote-Stand pruefen.
|
||||
- Vorhandene fremde oder lokale Aenderungen niemals verwerfen oder ueberschreiben.
|
||||
- Nur aufgabenbezogene Dateien stagen; insbesondere `.DS_Store`, `target/` und `daten/`
|
||||
nicht committen.
|
||||
- Vor Commit den Diff und `git diff --check` pruefen.
|
||||
- Commit und Push nur nach ausdruecklicher Freigabe des Nutzers.
|
||||
- Vor einem Push erneut synchronisieren und sicherstellen, dass alle Tests erfolgreich
|
||||
sind.
|
||||
50
CLAUDE.md
50
CLAUDE.md
|
|
@ -1,50 +0,0 @@
|
|||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Projekt
|
||||
|
||||
Desktop-Fakturierungsanwendung (Einzelplatz) für ein Hochschulprojekt (SE1, Team 1). Java 21, Swing-GUI mit FlatLaf, Maven-Build. Alle Texte (Klassen, Methoden, Variablen, Kommentare, Spezifikationen) sind auf **Deutsch**.
|
||||
|
||||
## Build & Run
|
||||
|
||||
```bash
|
||||
./mvnw compile # Kompilieren
|
||||
./mvnw test # Alle Tests (JUnit 5)
|
||||
./mvnw test -Dtest=KundenVerwaltungTest # Einzelne Testklasse
|
||||
./mvnw test -Dtest=KundenVerwaltungTest#testMethode # Einzelne Testmethode
|
||||
./mvnw package # Fat-JAR bauen (maven-shade-plugin)
|
||||
java -jar target/fakturierung-1.0.0.jar # Anwendung starten
|
||||
```
|
||||
|
||||
## PDF-Spezifikationen bauen
|
||||
|
||||
Die `*.md`-Dateien unter `dokumentation/` (z. B. `dokumentation/anforderungen/Lastenheft.md`, `Pflichtenheft_Gruppe{A-D}.md`, `dokumentation/tests/Modultestplan.md`) werden mit pandoc + XeLaTeX zu PDF konvertiert — es gibt kein Build-Skript, der Aufruf erfolgt manuell.
|
||||
|
||||
## Diagramme
|
||||
|
||||
PlantUML-Quelldateien liegen in `dokumentation/diagramme/`. Rendering via `tools/plantuml.jar`.
|
||||
|
||||
## Architektur
|
||||
|
||||
Vier fachliche Module, jeweils einer Projektgruppe zugeordnet:
|
||||
|
||||
| Paket | Gruppe | Verantwortung |
|
||||
|-------|--------|---------------|
|
||||
| `dokumente` | A | Dokumentenzyklus: Angebot → Auftragsbestätigung → Lieferschein → Rechnung, Belegnummern, PDF-Export |
|
||||
| `produkte` | B | Produktverwaltung (CRUD, Nummernvergabe, Löschsperre) |
|
||||
| `kunden` | C | Kundenverwaltung (CRUD, Nummernvergabe, Löschsperre) |
|
||||
| `gui` | D | Swing-Oberfläche (HauptFenster, Panels, Dialoge, Wizard) |
|
||||
| `gemeinsam` | — | Querschnitt: EreignisBus, JsonPersistenz, CSV-Hilfe, Exceptions |
|
||||
|
||||
### Wichtige Muster
|
||||
|
||||
- **EreignisBus** (Observer): Services melden Datenänderungen (`DatenBereich.KUNDEN/PRODUKTE/DOKUMENTE`), GUI-Panels abonnieren und aktualisieren sich. Kein manueller Refresh nötig.
|
||||
- **Repository-Interfaces** (`KundenRepository`, `ProduktRepository`, `DokumentRepository`) mit JSON-Implementierungen. Persistenz erfolgt atomar via `JsonPersistenz.schreibeAtomar()`.
|
||||
- **NummernGenerator-Interfaces** (`KundennummernGenerator`, `ProduktnummernGenerator`, `BelegnummernGenerator`) mit `Einfacher*`-Implementierungen, die den nächsten Wert aus dem Repository-Bestand ableiten.
|
||||
- **ReferenzPrüfung**: `DokumentReferenzPruefung` verhindert Löschung von Kunden/Produkten, die in Dokumenten referenziert werden.
|
||||
- **Wiring** in `Main.java`: Manuelle Dependency Injection — kein Framework.
|
||||
|
||||
### Persistenz
|
||||
|
||||
Alle Daten liegen als JSON-Dateien im Verzeichnis `daten/` (kunden.json, produkte.json, dokumente.json). Dieses Verzeichnis ist in `.gitignore`.
|
||||
|
|
@ -203,6 +203,7 @@ Kundenstammdaten anlegen, ändern, suchen, löschen *(BA-01–04)* · eindeutige
|
|||
|
||||
### Live-Demo
|
||||
Kunde anlegen → automatische Nummer · suchen / sortieren · ändern · löschen
|
||||
|
||||
---
|
||||
|
||||
## Gruppe B — Produktverwaltung
|
||||
|
|
|
|||
Binary file not shown.
Loading…
Reference in New Issue