# Erstanalyse GitLab — pathOS / Bestellsystem > Generiert: 2026-04-22 | Basis: 167 Projekte, 9 Untergruppen --- ## Überblick | Kennzahl | Wert | |----------|------| | Projekte gesamt | 167 | | Davon aktiv (< 6 Monate) | ~109 | | Davon inaktiv (6M+) | ~26 | | Davon archiviert | 32 | | Untergruppen | 9 | | Hauptsprache | Java (47 Projekte) | | Build-System | Maven (83 Projekte) | | Containerisiert | 46 Projekte mit Dockerfile | ## Gruppenstruktur ``` bestellsystem1/ ├── apis/ (37 Projekte) — API-Definitionen, OpenAPI-Specs, Datenmodelle ├── apps/ (19 Projekte) — Laufende Services und Anwendungen ├── docs/ (7 Projekte) — Dokumentation, Runbook, Schemas ├── infra/ (47 Projekte) — Deployment, CI/CD, Helm Charts, Keycloak, Monitoring ├── libraries/ (7 Projekte) — Shared Libraries (core-components, logging, signatures) ├── mocks/ (11 Projekte) — Mock-Services für Tests ├── qa/ (15 Projekte) — Tests (System, Integration, Performance, Security) ├── sandbox/ (13 Projekte) — Experimente, PoCs, Pipeline-Tests └── tools/ (10 Projekte) — Hilfswerkzeuge (Camunda, Kafka, Migration) ``` ## Technologie-Stack ### Backend - **Java / Spring Boot** — Dominante Technologie (47 Projekte) - **Maven** — Build-System (83 Projekte, inkl. API-Definitionen) - **Kafka** — Event-Streaming (mehrere Kafka-bezogene Projekte: auftrag-service-kafka, core-components-kafka, kafka-message-replay, Kafka Topic Setup) - **Camunda** — Workflow-Engine (camunda-events, camunda-client, Camunda Backup, steuerung-vertrieb) - **PostgreSQL** — Datenbank (postgresql-chart, Database Setup) ### Frontend - **TypeScript / JavaScript** — portal-ui (Angular/React?) - **SCSS** — Styling - Nur 1 echtes Frontend-Projekt (portal-ui), Rest ist Backend ### Infrastruktur - **Kubernetes / Helm** — Deployment (bestellsystem-application, bestellsystem-deployment) - **Docker** — 46 Projekte containerisiert - **Keycloak** — Identity Management (5+ Keycloak-Projekte) - **AWS EKS** — Kubernetes auf AWS (deployment-cdaas-agent-eks) - **SonarQube** — Code-Qualität - **Trivy** — Container-Security-Scanning - **OWASP ZAP** — API-Security-Scanning - **Grafana / Prometheus** — Monitoring (prometheus-blackbox-exporter, prometheus-pushgateway) - **Artifactory** — Artifact-Management - **Renovate** — Dependency-Updates ### Datenformate & Standards - **TAF/TAP TSI** — Europäischer Standard für Trasseninformationen (taftap, taf-tap-schemas, taftap-tdm-konverter) - **TDM** — Trassendatenmodell (data-model) - **XML / JSON** — Konvertierung zwischen Formaten (tdm-prm-json2xml-konverter) ## Fachliche Domänen (aus Projektnamen abgeleitet) ### Kernprozess: Trassenbestellung - `trassenanmeldung` — Trassenanmeldung - `auftraege` / `Auftrag-Service` / `auftragsverwaltung` — Auftragsverwaltung - `auftrags-verwaltung-trasse` — Spezifisch für Trassenbestellungen - `steuerung-vertrieb` — Prozesssteuerung (Camunda-basiert) - `produktionsauftrag` — Produktionsaufträge - `versandauftrag` / `versandergebnis` — Versand von Aufträgen - `vertriebsauftraege` — Vertriebsaufträge ### Stammdaten & Kundendaten - `stammdaten-bereitstellung` / `stammdatenEVU` / `stammdatenPMW` / `StammdatenAdmin` — Stammdaten - `kundendaten` / `kundendaten-bereitstellung` / `bszkundendaten` — Kundendaten - `partnerverwaltung` / `partnerverwaltungAdmin` — Partnerverwaltung ### Externe Schnittstellen - `ifp-connector` / `ifp-mock` / `ifp-mock-messages` — IFP-Anbindung - `tadef-connector` — TADEF-Anbindung - `taftap` / `taftap-tdm-konverter` — TAF/TAP TSI Konvertierung - `common-interface` — DB-Vertrieb-spezifische TAF/TAP Implementierung - `abrechnung` / `abrechnung-connector` — Abrechnungssystem - `stationsportal` — Stationsportal-Anbindung - `pzp` — (unklar, zu klären) - `nvntool` — (unklar, zu klären) - `imcrdservice` / `imordnungsrahmen` / `imstammdaten` — Infrastrukturmanager-Anbindung ### Portal & UI - `portal-ui` — Benutzeroberfläche (einziges Frontend) - `portal-middleware` / `portal` — Portal-Backend/Middleware ### Sicherheit & Abrechnung - `tbv-absicherung` / `tbv-absicherung-konverter` — Tunnelbegegnungsverbot - `abrechnung` — Abrechnungsanbindung - `rabattnummern-bereitstellung` / `rabattnummernPMW` — Rabattsystem ## Erste Auffälligkeiten & Risiken ### 🔴 Kritisch 1. **Viele Projekte ohne Beschreibung** — Ca. 60% der Projekte haben keine Beschreibung. Das erschwert Onboarding und Verständnis massiv. 2. **Infra-Overhead** — 47 Infra-Projekte (28% aller Projekte!) deuten auf komplexes, möglicherweise fragmentiertes Deployment hin. Passt zu deiner Aussage "Deployment ist sehr zeitaufwändig". 3. **Keycloak-Fragmentierung** — 5+ separate Keycloak-Projekte (keycloak, keycloak-config-cli-image, Keycloak Deployment, keycloak-scripts, keycloak-theme, Keycloak Setup). Konsolidierungspotenzial. ### 🟡 Hoch 4. **32 archivierte Projekte** — Noch in der Gruppe, erzeugen Rauschen. Aufräumen oder in eigene Archiv-Gruppe verschieben. 5. **21 inaktive Projekte (6M+)** — Unklar ob noch relevant oder vergessen. 6. **Mock-Explosion** — 11 separate Mock-Projekte. Könnte auf fehlende Contract-Testing-Strategie hindeuten. 7. **Sandbox mit 13 Projekten** — Einige davon archiviert, aber "pathOS MCP" und "kiro-test-review" sind interessant (KI-Integration?). ### 🟢 Positiv 8. **Klare Gruppenstruktur** — APIs, Apps, Infra, Libraries, QA, Tools ist eine sinnvolle Aufteilung. 9. **Security-Tooling vorhanden** — Trivy, OWASP ZAP, Fortify sind im Einsatz. 10. **Renovate aktiv** — Automatische Dependency-Updates. 11. **Aktive Entwicklung** — Die meisten Kernprojekte wurden in den letzten Tagen aktualisiert. ## Offene Fragen für nächste Iteration 1. Was ist **IFP**? (ifp-connector, ifp-mock) 2. Was ist **TADEF**? (tadef-connector) 3. Was ist **PZP**? (pzp) 4. Was ist **NVN**? (nvntool) 5. Was ist **PMW**? (Portal Middleware? stammdatenPMW, rabattnummernPMW) 6. Was ist **IM**? (imcrdservice, imordnungsrahmen, imstammdaten — Infrastrukturmanager?) 7. Was ist **NuR**? (nur-mock — "Nutzer- und Rechteverwaltung #Einfachbahn") 8. Was ist **BEP**? (bep-mock) 9. Was ist **TPS**? (tps-mock — "Rabatt") 10. Wie sieht die Camunda-Prozesslandschaft aus? (steuerung-vertrieb) 11. Wie viele Umgebungen gibt es? (umgebungs-konfiguration, staging) 12. Wie sieht die Kafka-Topic-Landschaft aus? (msk-topic-permissions)