diff --git a/dokumentation/projekt/Praesentation.md b/dokumentation/projekt/Praesentation.md index dff04bd..5f78a0b 100644 --- a/dokumentation/projekt/Praesentation.md +++ b/dokumentation/projekt/Praesentation.md @@ -5,50 +5,113 @@ paginate: true lang: de header: 'Team 1 · Desktop-Fakturierungsanwendung' style: | + @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&family=Lora:wght@400;500;700&display=swap'); section { - font-family: 'Calibri', 'Segoe UI', sans-serif; + font-family: 'Lora', 'Georgia', serif; font-size: 26px; - line-height: 1.5; - padding: 60px 72px; - color: #23282E; - background: #F6F6F4; + line-height: 1.6; + padding: 64px 80px; + color: #141413; + background: #faf9f5; } - h1, h2 { font-family: 'Cambria', 'Georgia', serif; letter-spacing: -0.01em; } - h1 { color: #23282E; } + h1, h2 { + font-family: 'Poppins', 'Arial', sans-serif; + letter-spacing: -0.02em; + font-weight: 600; + } + h1 { color: #141413; } h2 { - color: #23282E; font-size: 38px; - margin: 0 0 0.6em; padding: 0; border: none; + color: #141413; + font-size: 36px; + margin: 0 0 0.5em; + padding: 0 0 0.35em; + border: none; + border-bottom: 2px solid #d97757; } h3 { - color: #A8782F; font-weight: 600; letter-spacing: 0.02em; - margin: 0.2em 0 0.4em; + font-family: 'Poppins', 'Arial', sans-serif; + color: #d97757; + font-size: 16px; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.08em; + margin: 1.2em 0 0.3em; } - strong { color: #23282E; } - a { color: #8A5E1E; } + strong { color: #141413; } + a { color: #6a9bcc; text-decoration: none; } code { - font-family: 'Consolas', monospace; - background: #ECECE8; color: #8A5E1E; - padding: 1px 5px; border-radius: 3px; + font-family: 'Consolas', 'Cascadia Code', monospace; + background: #e8e6dc; + color: #141413; + padding: 2px 6px; + border-radius: 3px; + font-size: 0.9em; } - table { font-size: 22px; border-collapse: collapse; } - th { background: #23282E; color: #F6F6F4; padding: 8px 12px; text-align: left; } - td { padding: 7px 12px; } - tr:nth-child(even) { background: #ECECE8; } + table { font-size: 22px; border-collapse: collapse; width: 100%; } + th { + background: transparent; + color: #b0aea5; + font-family: 'Poppins', 'Arial', sans-serif; + font-size: 14px; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.06em; + padding: 8px 12px; + text-align: left; + border-bottom: 2px solid #d97757; + } + td { padding: 10px 12px; border-bottom: 1px solid #e8e6dc; } + tr:nth-child(even) { background: transparent; } blockquote { - background: #ECECE8; color: #707880; font-style: italic; - border: none; padding: 12px 18px; border-radius: 4px; + background: transparent; + color: #b0aea5; + font-style: italic; + border: none; + border-left: 3px solid #d97757; + padding: 8px 18px; + margin: 1em 0; + border-radius: 0; } - section.lead { justify-content: center; text-align: center; - background: #1B1F24; color: #F6F6F4; } - section.lead h1 { color: #F6F6F4; font-size: 54px; } - section.lead h3 { color: #D6B271; } - section.lead strong { color: #F6F6F4; } + section.lead { + justify-content: center; + text-align: center; + background: #141413; + color: #faf9f5; + } + section.lead h1 { + color: #faf9f5; + font-size: 52px; + font-weight: 700; + letter-spacing: -0.03em; + margin-bottom: 0.2em; + border: none; + } + section.lead h3 { + color: #d97757; + font-size: 14px; + letter-spacing: 0.12em; + } + section.lead strong { color: #faf9f5; } section.divider { - background: #1B1F24; color: #F6F6F4; justify-content: center; + background: #faf9f5; + color: #141413; + justify-content: center; + text-align: center; + } + section.divider h1 { + color: #141413; + font-size: 48px; + font-weight: 700; + border: none; + margin-bottom: 0.2em; + } + section.divider h2 { color: #141413; border: none; } + section.divider h3 { color: #d97757; } + footer, header { + color: #b0aea5; + font-family: 'Poppins', 'Arial', sans-serif; + font-size: 14px; } - section.divider h1, section.divider h2 { color: #F6F6F4; border: none; } - section.divider h3 { color: #D6B271; } - footer, header { color: #707880; } --- @@ -120,6 +183,7 @@ Querschnitt (`gemeinsam`): EreignisBus, JSON-Persistenz, CSV-Hilfe – von allen --- + # Das Programm @@ -188,6 +252,7 @@ Geführte Rechnungserstellung *(BA-13)* · Navigation, Pflichtfeldhinweise *(Q-0 --- + # Das Entwicklungsprojekt @@ -199,21 +264,15 @@ Geführte Rechnungserstellung *(BA-13)* · Navigation, Pflichtfeldhinweise *(Q-0 ### 71 / 71 Testfälle bestanden — 100 %, 0 Fehler -| Komponente | Tests | -|---|---| -| A — Dokumentenzyklus | 18 | -| B — Produktverwaltung | 14 | -| C — Kundenverwaltung | 14 | -| D — Programmoberfläche | 15 | -| Infrastruktur · Performance | 6 · 4 | - -| Performance | gemessen | Schranke | +| Bereich | Testfälle | Ergebnis | |---|---|---| -| Start | 0,039 s | ≤ 5 s | -| Suche | 0,025 s | ≤ 1 s | -| PDF | 0,011 s | ≤ 2 s | -| Export | 0,181 s | ≤ 30 s | -| *(5.000 Kunden/Produkte)* | | | +| A — Dokumentenzyklus | 18 | ✅ bestanden | +| B — Produktverwaltung | 14 | ✅ bestanden | +| C — Kundenverwaltung | 14 | ✅ bestanden | +| D — Programmoberfläche | 15 | ✅ bestanden | +| Infrastruktur | 6 | ✅ bestanden | +| Performance | 4 | ✅ Schranken eingehalten | +| **Gesamt** | **71** | **100 % bestanden** | Deterministische JUnit-5-Tests, Nachbarkomponenten als Stubs/Mocks. Traceability **Anforderung → Code (`@DisplayName`) → Testfall**; spezifiziert in `Modultestplan.md`, nachgewiesen in `Anforderungsabgleich.md`. @@ -244,16 +303,8 @@ Geführte Rechnungserstellung *(BA-13)* · Navigation, Pflichtfeldhinweise *(Q-0 --- -## Zusammenfassung - -- Vollständiger **Dokumentenzyklus** + **Stammdatenverwaltung** lauffähig umgesetzt -- **Lokale, DSGVO-konforme** Einzelplatzanwendung (Java 21, Swing/FlatLaf) -- **71 grüne Modultests** mit vollständiger **Traceability** zu den Anforderungen -- Alle Performance-Anforderungen erfüllt - ---- - + -# Vielen Dank! \ No newline at end of file +# Vielen Dank!