Projektbeschreibung: Digitales CAD-Bestell- und Integrationsportal
Kurzprofil
Für einen marktführenden Hersteller von Zahnimplantaten wurde eine moderne Anwendung zur Digitalisierung und Automatisierung von CAD-basierten Bestellprozessen entwickelt. Die Lösung verbindet ein kundenorientiertes Bestellportal mit einem administrativen Backend, automatisierten Datei-Uploads, Katalog- und Materiallogik, einer API für CAD-Systemintegrationen, einem Windows-Wrapper für exocad DentalCAD sowie Schnittstellen zu ERP- und Fertigungssystemen.
Meine Rolle umfasste die Gesamtverantwortung als Projektmanager, Softwarearchitekt und Entwickler. Ich habe die fachlichen Anforderungen strukturiert, die technische Zielarchitektur definiert, die Umsetzung in eigenständige TYPO3-Extensions, API-Komponenten und eine ergänzende Windows-Client-Anwendung überführt und zentrale Teile der Anwendung selbst entwickelt.
Zielsetzung
Ziel des Projekts war es, einen bisher stark manuell geprägten Serviceprozess für dentale CAD-Aufträge in eine belastbare, nachvollziehbare und skalierbare digitale Plattform zu überführen.
Die Anwendung unterstützt Kunden und interne Serviceteams dabei, CAD-Aufträge mit großen Konstruktionsdateien strukturiert zu erfassen, zu prüfen, zu verwalten und automatisiert an nachgelagerte Systeme zu übergeben. Durch die direkte Integration in exocad DentalCAD können Auftragsdaten und STL-Dateien aus dem CAD-Arbeitsplatz heraus an das Portal übergeben werden. Dadurch werden Medienbrüche reduziert, Rückfragen minimiert und Bearbeitungszeiten im Kundenservice verkürzt.
Meine Verantwortung
- Projektmanagement von Anforderungsaufnahme, technischer Konzeption, Umsetzung und Abstimmung mit den fachlichen Stakeholdern
- Architektur einer modularen TYPO3-13-Anwendung mit klar getrennten Domänen für Bestellung, Integration, Katalog und Sitepackage
- Entwicklung der kundenseitigen Bestellstrecke inklusive Warenkorb, Checkout, Datei-Upload und Auftragsabschluss
- Entwicklung eines Backend-Moduls zur operativen Bearbeitung, Prüfung und Nachverfolgung von Aufträgen
- Umsetzung der Integrationsschicht für ERP- und Fertigungsprozesse inklusive CSV-Erzeugung, SFTP-Transfer, Logging und Wiederholmechanismen
- Architektur und Entwicklung einer exocad-Integration über eine Windows-Wrapper-Anwendung mit XML-Parsing, lokaler Validierung, OAuth-basierter Geräteauthentifizierung und API-Upload von JSON-Auftragsdaten und STL-Dateien
- Konzeption und Implementierung asynchroner Prozesse mit TYPO3 Scheduler, Symfony Console Commands und Message-Verarbeitung
- Aufbau einer wartbaren Frontend-Asset-Pipeline mit Vite, TypeScript, SCSS, Bootstrap und Alpine.js
- Technische Qualitätssicherung durch strukturierte Services, Domain-Modelle, Repositories, Konfiguration, lokale Validierungslogik, reproduzierbare Installer-Prozesse und Unit-Tests für zentrale Integrationslogik
Technologiestack
- Backend: PHP 8.2, TYPO3 CMS 13.4, Extbase, Fluid, TYPO3 Backend Modules, TYPO3 Scheduler
- Architektur: modulare TYPO3-Extensions, Domain Models, Repositories, Services, Controller, Middleware, Dependency Injection über Services.yaml
- Asynchrone Verarbeitung: Symfony Messenger, Doctrine Transport, TYPO3 Console Commands, Scheduler-gesteuerte Worker-Prozesse
- API und Client-Integration: REST-nahe HTTP-Endpunkte, OAuth-basierte Geräte- und Token-Logik, multipart/form-data-Uploads, JSON-Payloads, STL-Dateiübertragung, Browser-Deep-Link in Draft-Bestellungen
- Windows-Client: .NET 8, C#, System.CommandLine, System.Text.Json, XDocument/LINQ-to-XML, Microsoft.Extensions.Configuration, Microsoft.Extensions.Logging, HttpClient
- Desktop-Deployment: WiX Toolset, MSI-Installer, exocad-SendTo-Registrierung über Windows Registry, PATH-Integration, appsettings.json-basierte Sprach- und API-Konfiguration
- Integration: CSV-Export, SFTP mit phpseclib, JWT/OAuth-nahe Authentifizierungslogik, ENV-basierte Konfiguration für produktive Zugangsdaten
- Frontend: TypeScript, Vite 7, Alpine.js, Bootstrap 5, SCSS, manifestbasierte Asset-Auslieferung über TYPO3 AssetCollector
- Daten und Persistenz: TYPO3 TCA, Extbase-Repositories, eigene Tabellen für Aufträge, Positionen, Anhänge, Katalogdaten, Versandkosten und Integrationslogs
- Qualität und Betrieb: PHPUnit, Console Commands für Wartung, Retry und Cleanup, nachvollziehbares Logging, konfigurierbare Grenzwerte für Uploads und Verarbeitung, definierte Exit-Codes und Fehlerbilder für die CAD-Client-Integration
Funktionaler Umfang
Die Anwendung stellt eine vollständige digitale Bestellstrecke für CAD-bezogene Aufträge bereit. Kunden können Aufträge erfassen, Materialien und Artikel auswählen, große CAD-Dateien hochladen und Bestellungen über einen geführten Prozess abschließen.
Für große technische Dateien wurde ein chunkbasierter Upload mit paralleler Übertragung, Wiederholmechanismen und serverseitiger Limitprüfung umgesetzt. Dateien werden strukturiert abgelegt, dem Auftrag zugeordnet und für die weitere Verarbeitung vorbereitet.
Das interne Backend-Modul ermöglicht Serviceteams die Suche, Filterung, Prüfung und Nachverfolgung von Aufträgen. Dazu gehören Detailansichten, Anhänge, Exportstatus, CSV-Vorschau, Download-Funktionen, erneute Exportauslösung und technische Konfigurationsprüfungen.
Die Integrationsschicht erzeugt getrennte Exportformate für ERP und Fertigung. Aufträge und Anhänge werden automatisiert per SFTP an Zielsysteme übertragen. Alle Schritte werden protokolliert, fehlgeschlagene Exporte können kontrolliert erneut verarbeitet werden.
Ein Katalogmodul stellt Domänenlogik für Artikel, Materialien, Implantatsysteme, Hersteller und Preisberechnung bereit. Zusätzlich wurden Import- und Mapping-Komponenten für strukturierte Produkt- und Exocad-Daten vorbereitet beziehungsweise umgesetzt.
Ergänzend wurde ein ExocadWrapper als Windows-Kommandozeilenanwendung entwickelt. Er wird aus exocad DentalCAD über die SendTo-Funktion mit dem aktuellen Projektpfad aufgerufen, erkennt die relevanten Projektdateien, parst constructionInfo- und dentalProject-Daten, ordnet STL-Dateien den Zähnen und Konstruktionstypen zu und erzeugt daraus ein standardisiertes JSON-Auftragsmodell für das Portal.
Vor der Übertragung prüft der Wrapper Pflichtdaten, FDI-Zahnnotation, Plausibilität der Praxiszuordnung, Existenz und Lesbarkeit der STL-Dateien sowie technische Grenzfälle wie fehlende oder leere Dateien. Fehler werden direkt am Arbeitsplatz gemeldet, bevor unvollständige Daten an das Portal übertragen werden.
Die Authentifizierung erfolgt über eine gerätebezogene Registrierung mit Client-ID, Client-Secret, Gerätefingerprint, Refresh Token und Access Token. Nach erfolgreichem Upload erzeugt die API eine Draft-Bestellung, die anschließend automatisch im Browser geöffnet wird. Der Anwender kann die Bestellung dadurch im Portal prüfen, ergänzen und abschließen, ohne CAD-Dateien manuell hochladen zu müssen.
Architektur und Umsetzung
Die Lösung wurde in voneinander getrennte TYPO3-Extensions gegliedert. Dadurch sind Bestellprozess, Integrationslogik, Katalogdaten und Template-/Asset-Struktur fachlich und technisch sauber getrennt. Diese Struktur reduziert Abhängigkeiten, erleichtert Wartung und ermöglicht spätere Erweiterungen ohne tiefgreifende Eingriffe in bestehende Prozesse.
Der Bestellprozess ist serviceorientiert aufgebaut. Warenkorb, Dateiablage, Materialzuordnung, Versandkostenberechnung, Draft-Order-Verarbeitung, E-Mail-Benachrichtigung und Auftragskonvertierung sind als eigenständige Services modelliert.
Für Integrationen wurde ein robuster asynchroner Ansatz gewählt. Die Auftragsplatzierung bleibt für Kunden performant, während Export- und Übertragungsprozesse im Hintergrund verarbeitet werden. Retry-, Cleanup- und Consumer-Prozesse laufen kontrolliert über TYPO3 Scheduler und Symfony Console Commands.
Die Frontend-Assets werden über Vite gebaut und als versionierte Dateien mit Manifest ausgeliefert. Dadurch ist eine saubere Trennung zwischen Quellcode, Build-Artefakten und TYPO3-Auslieferung gegeben.
Die exocad-Integration wurde bewusst als schlanker Client mit klarer Aufgabenverteilung umgesetzt. Der Wrapper übernimmt die CAD-nahe Extraktion und technische Vorvalidierung, während das Portal die eigentliche Geschäftslogik, Materialzuordnung, Draft-Order-Erstellung und weitere Prozesssteuerung verantwortet. Dadurch bleibt die serverseitige API unabhängig von nativen exocad-XML-Strukturen und kann perspektivisch auch für weitere CAD-Systeme genutzt werden.
Der Wrapper ist serviceorientiert aufgebaut. XML-Parser, OrderDataBuilder, Validator, API-Client, CredentialManager, DeviceFingerprintService und BrowserLauncher sind getrennte Komponenten. Diese Struktur erleichtert Tests, Fehlersuche und spätere Erweiterungen, beispielsweise bei neuen exocad-Dateiformaten, zusätzlichen Validierungsregeln oder geänderten API-Endpunkten.
Für den Rollout wurde ein MSI-Installer mit WiX erstellt. Der Installer bringt die Anwendung inklusive Konfiguration aus, registriert die SendTo-Integration in der Windows Registry, erkennt exocad-Installationen und setzt Spracheinstellungen in der Konfigurationsdatei. Damit kann die Integration kontrolliert auf Kundenarbeitsplätzen installiert und aktualisiert werden.
Beitrag zur Servicequalität
Die Anwendung steigert die Servicequalität deutlich, weil Kunden CAD-Aufträge strukturiert und nachvollziehbar einreichen können. Pflichtinformationen, Dateianhänge und Auftragsdaten werden bereits im digitalen Prozess erfasst, wodurch Rückfragen und manuelle Nacharbeiten im Service reduziert werden.
Durch den chunkbasierten Upload im Portal und den direkten STL-Upload aus exocad können auch große CAD-Dateien zuverlässiger übertragen werden. Wiederholmechanismen, lokale Vorprüfungen und serverseitige Prüfungen verringern fehlgeschlagene Uploads und verbessern die Nutzererfahrung bei technisch anspruchsvollen Dateien.
Das Backend-Modul verbessert die operative Transparenz. Servicemitarbeiter sehen Auftragsdaten, Anhänge, Exportstatus und Integrationslogs an einem Ort. Dadurch lassen sich Vorgänge schneller prüfen, Fehlerquellen gezielter identifizieren und Kundenanfragen fundierter beantworten.
Die automatisierten ERP- und Fertigungsexporte reduzieren manuelle Übergaben. Idempotente Uploads, Logging und Retry-Mechanismen erhöhen die Prozesssicherheit und senken das Risiko doppelter oder verlorener Übertragungen.
Die zentrale Steuerung wiederkehrender Aufgaben über TYPO3 Scheduler erleichtert den Betrieb. Wartung, Wiederholung fehlgeschlagener Exporte und Bereinigung temporärer Upload-Daten sind technisch standardisiert und für Administratoren nachvollziehbar.
Die exocad-Integration erhöht die Servicequalität zusätzlich, weil Kunden Bestellungen direkt aus ihrem gewohnten CAD-System vorbereiten können. Auftragsdaten, Zahninformationen, Materialhinweise und STL-Dateien werden automatisch aus dem CAD-Projekt übernommen. Dadurch sinkt der manuelle Erfassungsaufwand, Übertragungsfehler werden reduziert und der Einstieg in den digitalen Bestellprozess wird für Praxen und Labore deutlich einfacher.
Durch die gerätebezogene Authentifizierung müssen Zugangsdaten nicht bei jedem Auftrag erneut eingegeben werden. Gleichzeitig bleiben Geräte administrierbar, widerrufbar und über definierte Fehlercodes supportfähig. Das verbessert sowohl die Sicherheit als auch die Bearbeitbarkeit von Supportfällen.
Ergebnis
Entstanden ist eine modulare, wartbare und integrationsfähige Plattform, die einen geschäftskritischen Serviceprozess digital abbildet und um eine direkte CAD-Client-Integration erweitert wurde. Die Lösung verbessert die Kundenerfahrung, entlastet interne Serviceprozesse und schafft eine technische Basis für weitere Automatisierung im Umfeld von CAD-Bestellungen, Produktdaten, exocad-Workflows und Fertigungsintegration.
Das Projekt zeigt meine Fähigkeit, fachliche Anforderungen in eine tragfähige Architektur zu übersetzen und diese zugleich in produktionsnahen, wartbaren Code umzusetzen. Besonders relevant sind dabei die Kombination aus Projektsteuerung, technischer Architektur, TYPO3-Entwicklung, API-Design, .NET-Client-Entwicklung, Installer-/Deployment-Konzeption, Integrationsdesign und operativer Prozessoptimierung.