LaTeCH

Projekziel:
Ziel des Projekts war die Konzeption und Entwicklung eines webbasierten, kollaborativen LaTeX-Editors, der die gemeinsame Bearbeitung wissenschaftlicher Dokumente vereinfacht. Dabei sollten die Einschränkungen klassischer LaTeX-Workflows – wie lokale Installationen, aufwändige Konfigurationen und die manuelle Koordination zwischen mehreren Bearbeitenden – durch eine zentrale, browserbasierte Lösung ersetzt werden.

Umsetzung
Im Rahmen des Projekts wurde eine webbasierte Anwendung entwickelt, die Dokumentverwaltung, Echtzeit-Kollaboration, Editor-Funktionen, Dokumentvorlagen, Bilduploads und eine integrierte PDF-Vorschau in einer Plattform vereint. Das Frontend basiert auf React, TypeScript und dem Monaco Editor. Für die synchrone Zusammenarbeit mehrerer Benutzer wurde das CRDT-basierte Framework Yjs eingesetzt, das gleichzeitige Änderungen in Echtzeit zusammenführt.

Die Backend-Architektur wurde mit Java Spring Boot realisiert und stellt Funktionen für Dokumentverwaltung, Datenhaltung und PDF-Bereitstellung bereit. Die persistente Speicherung erfolgt mittels PostgreSQL als relationaler Datenbank sowie SeaweedFS als S3-kompatiblem Dateispeicher.

Ein besonderer Schwerpunkt lag auf der sicheren Verarbeitung von benutzerdefiniertem LaTeX-Code. Hierfür wurde ein asynchroner Render-Service entwickelt, der Kompilierungsaufträge entgegennimmt und diese in isolierten, ressourcenbeschränkten Docker-Sandboxen ausführt. Dadurch werden Sicherheitsrisiken wie Remote-Code-Execution, unkontrollierte Ressourcennutzung oder unerlaubte Dateisystemzugriffe wirksam reduziert.

Resultate:
Das entwickelte System zeigt, dass ein webbasierter LaTeX-Workflow mit Echtzeit-Kollaboration, Live-PDF-Vorschau und sicherer Dokumentkompilierung erfolgreich umgesetzt werden kann. Die Anwendung integriert alle wesentlichen Funktionen für die gemeinsame Erstellung wissenschaftlicher Dokumente in einer zentralen Plattform. Darüber hinaus wurden im Projektverlauf Potenziale für zukünftige Erweiterungen identifiziert, darunter die Integration einer Benutzer-Authentifizierung, eines erweiterten Monitorings, eines Language Servers sowie zusätzlicher Editor-Funktionen zur weiteren Verbesserung der Benutzerfreundlichkeit und Funktionalität.

Link zum Produkt: https://latech.app/

Video: LaTeCH in Aktion

Projektteam: Marc Muhmenthaler, Gregor Lazzarato, Thomas Sartini, Andri Wandres, Roman Lysser

Blogauthor: Dieter Arnold