[{"data":1,"prerenderedAt":79},["ShallowReactive",2],{"$fO5fLwdE2fciRfLFW1lNGWa_W8fiR0vydU3XJ2vZX6Fs":3},{"id":4,"title":5,"body":6,"category":55,"challenge":56,"description":49,"extension":57,"featured":58,"image":59,"images":59,"impact":60,"meta":61,"navigation":62,"order":63,"path":64,"seo":65,"slug":66,"solution":67,"stem":68,"tagline":69,"tags":70,"testimonial":59,"testimonial_author":59,"testimonial_role":59,"url":59,"__hash__":78},"projects_de\u002Fprojects\u002Fde\u002Fhealthcare-chat-integration.md","Healthcare PWA Chat-Integration",{"type":7,"value":8,"toc":48},"minimark",[9,14,18,22,41,45],[10,11,13],"h2",{"id":12},"projektübersicht","Projektübersicht",[15,16,17],"p",{},"Dieses NDA-geschützte Projekt umfasste die Integration eines Echtzeit-Chat-Systems in eine bestehende React-Progressive-Web-App für Klienten und Gesundheitsfachkräfte. Die App verwaltete Nutzerdaten beider Rollen und benötigte einen Kommunikationskanal zwischen ihnen. Der Projektumfang war klar definiert: die richtige Chat-Technologie auswählen und unter Zeitdruck vollständig implementieren.",[10,19,21],{"id":20},"funktionen","Funktionen",[23,24,25,29,32,35,38],"ul",{},[26,27,28],"li",{},"RocketChat via Docker in die bestehende Infrastruktur integriert",[26,30,31],{},"Automatische RocketChat-Nutzeranlage bei Registrierung und Login",[26,33,34],{},"NestJS-Proxy-Endpunkte für Chat-Raum-Erstellung, Nachrichtenhandling und Business-Logik",[26,36,37],{},"Eigene WebSocket-Client-Implementierung für Echtzeit-Messaging im React-Frontend",[26,39,40],{},"Jest-Unit-Tests für alle neuen NestJS-Endpunkte mit Dependency Injection und Module Mocking",[10,42,44],{"id":43},"technische-highlights","Technische Highlights",[15,46,47],{},"Das Backend wurde mit Amplication generiert und nutzte bereits MongoDB, was die gemeinsame Nutzung derselben Datenbankinstanz mit RocketChat vereinfachte. Statt RocketChats vorgefertigter UI implementierte ich die WebSocket-Verbindung manuell, um das bestehende Interface-Design des Kunden zu respektieren. NestJS' Modulsystem und Dependency Injection ermöglichten isolierte Unit-Tests für die neuen Proxy-Endpunkte – die erste Testabdeckung im gesamten Projekt.",{"title":49,"searchDepth":50,"depth":50,"links":51},"",2,[52,53,54],{"id":12,"depth":50,"text":13},{"id":20,"depth":50,"text":21},{"id":43,"depth":50,"text":44},"integration","Eine Healthcare-Webanwendung zur Kommunikation zwischen Klienten und Ärzten fehlte ihre zentrale Funktion – ein Echtzeit-Chat – mit einem nahenden harten Deadline. Die bestehende Codebasis war eine React PWA mit NestJS\u002FAmplication-Backend, beide ohne Tests oder Qualitätssicherung. Der Kunde hatte keine Tool-Strategie und benötigte sowohl eine Technologieempfehlung als auch eine vollständige Implementierung.","md",false,null,"Die Chat-Funktion wurde termingerecht geliefert und vollständig in die bestehende Anwendung integriert. Die NestJS-Endpunkte wurden erstmalig mit Jest-Unit-Tests abgesichert. Die Lösung hält die Nutzerverwaltung zentralisiert und Echtzeit-Messaging performant durch eine direkte WebSocket-Verbindung.",{},true,4,"\u002Fprojects\u002Fde\u002Fhealthcare-chat-integration",{"title":5,"description":49},"healthcare-chat-integration","Ich recherchierte und evaluierte Chat-Lösungen mit React-Unterstützung (u. a. GetStream.io und RocketChat), präsentierte die Ergebnisse dem Kunden und leitete die Integration von RocketChat. Ich erweiterte das bestehende Docker-Compose-Setup um RocketChat auf der vorhandenen MongoDB-Instanz, deaktivierte die Selbstregistrierung und implementierte die automatische Nutzeranlage in RocketChat bei Login und Registrierung. Im NestJS-Backend baute ich Proxy-Endpunkte für Chat-Raum-Erstellung und Nachrichtenversand, abgedeckt durch Jest-Unit-Tests. Im Frontend implementierte ich eine eigene RocketChat-WebSocket-Verbindung für Echtzeit-Messaging innerhalb des bestehenden UI-Designs.","projects\u002Fde\u002Fhealthcare-chat-integration","Echtzeit-Chat für eine Klienten-Arzt-App",[71,72,73,74,75,76,77],"React","NestJS","RocketChat","WebSockets","MongoDB","Jest","PWA","n_Mq0zNoJb8h345OSkU0wC2DVdeTM3SFJRxJ_S1wJps",1775672746791]