diff --git a/README.md b/README.md index c915ec4..d6796ef 100644 --- a/README.md +++ b/README.md @@ -48,4 +48,4 @@ Die Ports 80 und 3306 sind auf dem Entwicklungsrechner belegt, daher `APP_PORT` - Keine Selbstregistrierung: Benutzer legt ein Administrator an. - 2FA (Authenticator-App) und Passkeys sind verfügbar, 2FA ist noch nicht verpflichtend. - Meilisearch: Version fest eingestellt, Telemetrie aus (`MEILISEARCH_NO_ANALYTICS=true`). -- Git: führend ist der lokale Gitea; der Gitea des Kunden folgt als Push-Mirror. +- Git: führend ist der lokale Gitea; der Gitea von ITM folgt als Push-Mirror. diff --git a/docs/projektplan.md b/docs/projektplan.md index faa7818..2add181 100644 --- a/docs/projektplan.md +++ b/docs/projektplan.md @@ -5,7 +5,8 @@ Stand: 1. Oktober 2026 (KW 40). Wird nach dem Kundentermin (KW 42) zum Detailpla ## Beteiligte - **ITM:** Anbieter der KI-API (OCR, Embeddings, Reranker, ggf. Sprachmodell), Projektleitung und - abrechnende Firma. + abrechnende Firma. Stellt auch die Server (Staging, Produktion) und den Gitea, auf den das + Repository gespiegelt wird. - **BauIn:** Endkunde. Liefert Fachdaten (LVs, MKAs, Bewertungsmatrizen), stellt den Fachexperten und nutzt das System. - „Kunde“ meint in diesem Dokument BauIn; wo ITM gemeint ist, steht ITM. @@ -30,7 +31,7 @@ Stand: 1. Oktober 2026 (KW 40). Wird nach dem Kundentermin (KW 42) zum Detailpla | | Termin | Ergebnis | Termin mit dem Kunden | |---|---|---|---| | **M1** | Ende KW 43 (23.10.) | Grundgerüst: Login/2FA, Benutzer und Rollen, Projekte und Lose, Upload, Protokoll; Detailplan steht | Demo (30 min) | -| **M2** | Ende KW 47 (20.11.) | Pilot-LVs importiert und durchsuchbar, erste ~5 Dokumente gemeinsam mit „passt / passt nicht“ bewertet; Staging beim Kunden läuft | Prüftermin (60 min) | +| **M2** | Ende KW 47 (20.11.) | Pilot-LVs importiert und durchsuchbar, erste ~5 Dokumente gemeinsam mit „passt / passt nicht“ bewertet; Staging bei ITM läuft | Prüftermin (60 min) | | **M3** | Ende KW 51 (18.12.) | Erste MKA durchgängig: Vorschläge, Feedback, Regeln, Excel-Export | Präsentation (60–90 min) | | **M4** | Ende KW 4/2027 (29.01.) | Alle Pilot-MKAs durchlaufen, Trefferquote und Zeitersparnis gemessen; Produktion abgesichert | Abschlusspräsentation, Entscheidung über Ausbau | | Puffer | KW 5–6/2027 | für Verzögerungen bei Zulieferungen oder GAEB-Import | – | @@ -93,10 +94,11 @@ M4 Ende KW 13/2027 (Anfang April). | KW 42 | BauIn | Beispieldateien (GAEB, MKA als PDF + GAEB, Matrix-Vorlage), Kopie der relevanten Lauffenburg-Dateien | AP5, AP9 | | KW 43 | ITM | Testzugang zur KI-API (OCR, Embedding, Reranker; Sprachmodell falls vorhanden) | AP3 | | KW 43 | BauIn | Entscheidung Rollenmodell, Freigabe-Variante, 2FA-Pflicht | AP1, AP8 | -| KW 46 | klären | Staging-VM mit Zugang, Domain und Zertifikat | AP11, M2 | +| KW 46 | ITM | Staging-Server mit Zugang, Domain und Zertifikat | AP11, M2 | | KW 47 | BauIn | 10–20 abgeschlossene MKAs mit Bewertung (Referenzfälle) | AP2 Teil 2, AP12 | | KW 48 | BauIn | Kuratierte Wissensbasis (VOB, DB-Richtlinien, Standardleistungstexte, Vorlagen) | AP4, AP7 | -| KW 51 | klären | Produktions-VM, Backup-Ziel und Aufbewahrungsdauer | AP11 | +| KW 51 | ITM | Produktions-Server mit Zugang, Domain und Zertifikat | AP11 | +| KW 51 | offen | Backups: Speicherort, Aufbewahrungsdauer, Zuständigkeit | AP11 | ## Risiken @@ -136,7 +138,7 @@ M4 Ende KW 13/2027 (Anfang April). **Später im Plan (bereits vorgemerkt)** - [ ] **Meilisearch-Test Teil 2** (KW 46–47): Trefferquote mit echten API-Vektoren und Referenzfällen, ohne/mit binärer Quantisierung, vor und nach dem Reranker -- [ ] Push-Mirror zum Gitea des Kunden einrichten, sobald die Adresse vorliegt +- [ ] Push-Mirror zum Gitea von ITM einrichten, sobald die Adresse vorliegt - [ ] 2FA-Pflicht umsetzen, falls der Kunde das entscheidet ## Später (nicht im MVP) diff --git a/docs/tech-stack.md b/docs/tech-stack.md index 216f069..81ea23e 100644 --- a/docs/tech-stack.md +++ b/docs/tech-stack.md @@ -7,7 +7,8 @@ und benennt, wo KI-BauIN bewusst abweicht und warum. ## Beteiligte - **ITM:** Anbieter der KI-API (OCR, Embeddings, Reranker, ggf. Sprachmodell), Projektleitung und - abrechnende Firma. + abrechnende Firma. Stellt auch die Server (Staging, Produktion) und den Gitea, auf den das + Repository gespiegelt wird. - **BauIn:** Endkunde. Liefert Fachdaten (LVs, MKAs, Bewertungsmatrizen), stellt den Fachexperten und nutzt das System. - „Kunde“ meint in diesem Dokument BauIn; wo ITM gemeint ist, steht ITM. @@ -76,7 +77,7 @@ Suchtreffern und bevor Inhalte an ein Sprachmodell gehen. | Tests | Pest 4 auf PHPUnit 12; Tests im PHPUnit-Klassenstil | gleich (Runner ergänzt) | | Code-Stil | Laravel Pint | gleich | | Statische Analyse | PHPStan/Larastan Stufe 7 | ergänzt | -| Versionsverwaltung | Git, Gitea (lokal führend, Kunde als Push-Mirror) | gleich | +| Versionsverwaltung | Git, Gitea (lokal führend, Gitea von ITM als Push-Mirror) | gleich | ## 5. Betrieb (Produktion, geplant) @@ -90,11 +91,11 @@ Ergänzt bzw. anders als in der Referenz: - **Externe Alarmierung von Anfang an** (z. B. Mail), wenn Worker oder Scheduler ausfallen, Jobs fehlschlagen oder die KI-API ITM nicht erreichbar ist. -- **Backups verschlüsselt**, bevor sie den Server verlassen (z. B. restic). Speicherort und - Aufbewahrungsdauer legt der Kunde fest. Gesichert werden Datenbank, private Uploads und +- **Backups verschlüsselt**, bevor sie den Server verlassen (z. B. restic). Speicherort, + Aufbewahrungsdauer und Zuständigkeit sind noch offen. Gesichert werden Datenbank, private Uploads und Konfiguration; der Meilisearch-Index nicht, er wird aus MySQL neu aufgebaut. - **Wiederanlauf auf einem Ersatzserver** einmal vollständig testen; Datenverlust und - Wiederanlaufzeit mit dem Kunden festlegen. + Wiederanlaufzeit mit BauIn und ITM festlegen. ## 6. Bewusste Abweichungen von der Referenz @@ -103,14 +104,14 @@ Ergänzt bzw. anders als in der Referenz: | Livewire | 3 | 4 | Neues Projekt; das Starter-Kit von Laravel 13 baut auf Livewire 4 auf, ein späterer Umstieg entfällt. | | TallStackUI | 3 | 4 | TallStackUI 3 läuft nur mit Livewire 3; Version 4 setzt Livewire ≥ 4.3 voraus. | | PHP | 8.4 | 8.5 | Sicherheitsupdates bis Ende 2029 statt Ende 2028. | -| Backups | unverschlüsselt, Hetzner Object Storage | verschlüsselt, Ort nach Vorgabe des Kunden | Vertrauliche Vertragsunterlagen; Vorgabe „alles lokal“. | +| Backups | unverschlüsselt, Hetzner Object Storage | verschlüsselt, Ort noch offen | Vertrauliche Vertragsunterlagen; Vorgabe „alles lokal“. | | Suche | – | Meilisearch | Hybride Suche und Vektorsuche für die Nachtragsprüfung. | ## 7. Offene Punkte - Ist 2FA für alle Benutzer Pflicht? -- Verlangt die IT des Kunden eine Festplattenverschlüsselung auf der VM? -- Speicherort und Aufbewahrungsdauer der Backups. +- Verlangen BauIn oder ITM eine Festplattenverschlüsselung auf den Servern bei ITM? +- Backups: Speicherort, Aufbewahrungsdauer und wer dafür zuständig ist. - Weitere Sprachen über Deutsch und Englisch hinaus (technisch vorbereitet, fachlich nicht angefragt). ## Architekturübersicht @@ -132,5 +133,5 @@ flowchart LR Scheduler --> Queue Health[Statusprüfung und Alarmierung] --> Worker Health --> Scheduler - Backup[Verschlüsselte Sicherung] --> Storage[Speicherort nach Vorgabe des Kunden] + Backup[Verschlüsselte Sicherung] --> Storage[Speicherort noch offen] ```