1 Projektidee
Benjamin Goisser edited this page 2026-02-06 17:10:15 +01:00

Advanced Markdown Editor

Team

Matrikelnummer Name Primäre Rolle Sekundäre Rolle
12216451 Jeremiasz Zrolka Teamcoordinator Backend Tech Lead
12314167 Florentin Schäfer Backend Tech Lead CI/CD Lead
12225128 Nick Fischer CI/CD Lead Testing Lead
12123662 Benjamin Goisser Documentation Lead Backend Tech Lead
12314645 Alex Wilfinger Testing Lead Teamcoordinator
12226596 Jakob Matijasevic UI/UX Lead Frontend Lead

Problembeschreibung

Viele bestehende Markdown-Editoren sind funktional eingeschränkt oder setzen zwingend Benutzerkonten voraus. Besonders fehlt oft die Möglichkeit, Dokumente in Echtzeit gemeinsam zu bearbeiten. Sie sind isolierte Einzellösungen für spezielle Bereiche, welche die Bedürfnisse unserer Zielgruppen großteils nicht abdecken: Entweder fehlt Realtime-Zusammenarbeit, der Export ist eingeschränkt, oder es besteht Account-Zwang. Unser Ziel ist es, ein Werkzeug zu entwickeln, das diese Schwächen beseitigt und mehrere bestehende Tools in einer modernen, webbasierten Anwendung vereint.

Der Advanced Markdown Editor soll Nutzer:innen ermöglichen, ohne Account Dokumente zu erstellen, zu teilen und in Echtzeit gemeinsam zu bearbeiten, aber speziell für Markdown. Durch eine Registrierung können Einstellungen und Markdown-Dokumente plattformübergreifend gespeichert werden.

Unser Ziel ist es ein flexibles Werkzeug zu entwickeln, dass Entwickler:innen, Studierende und Teams dabei unterstützt, in Markdown an einer Vielzahl an Usecases (Projektplanung, Gruppenarbeiten usw.) zu arbeiten.

Zielgruppe

Entwickler:innen/Tech-Affine Teams profitieren von Side-by-Side Editoren, Versionsverlauf und vielen anderen Features für Wikis, Projektplanung und Dokumentation direkt in Markdown.

Studierende/Akademiker:innen können unseren Advanced Markdown Editor für gemeinsame Mitschriften und Projekten verwenden. Die Realtime Collaboration und Export in verschiedene Formate machen das Tool ideal für Gruppenarbeiten und um Inhalte direkt zu teilen.

Features

Name Beschreibung Typ
Toolbar Diverse Textformatierungen (Bulletpoints, Tables, Links usw.) über eine graphische Oberfläche zugreifbar Muss
Edit-View Editor mit Markdown-Unterstützung und Syntaxvorhebung (Monaco) Muss
Preview Preview von Markup Muss
Statistik-Leiste Statistik über Anzahl Wörter, Zeilen, Character usw. Muss
Laden Laden von .md-Dokumenten (auch ohne Account) Muss
Persistenter Zustand des Editor Zustand des Editors persistent, auch nach Verlassen der Seite (auch ohne Account über Caching) Muss
Realtime Collaboration Mehrere Benutzer können gleichzeitig dasselbe Dokument bearbeiten und die Änderungen in Echtzeit sehen. Muss
Export (Pandoc) Die Möglichkeit, Dokumente in verschiedene Formate wie Markdown (.md) und PDF zu exportieren. Die Integration mit Pandoc ermöglicht potenziell viele weitere Formate. Muss
Sharing-Permissions mit Links Das Teilen von Dokumenten über generierte Links mit verschiedenen Berechtigungsstufen (z.B. Anzeigen, Bearbeiten). Muss
LaTeX/Math Integration Unterstützung für die Eingabe und Darstellung mathematischer Formeln und Symbole mit LaTeX-Syntax. Muss
Bilder/Videos Die Möglichkeit, Bilder und Videos in Dokumente einzubetten oder einzufügen. Muss
Custom Keybinds Benutzerdefinierte Tastenkombinationen zur schnelleren Ausführung von Befehlen und Aktionen innerhalb der Anwendung. Muss
Dateiverwaltung (Sub-Dokumente) Eine Verwaltung von Dokumenten, die keine Ordnerstruktur verwendet, sondern eine hierarchische Struktur ermöglicht, bei der Dokumente Unterdokumente enthalten können. Muss
Cheatsheet Eine Übersicht mit einer Liste der verfügbaren Befehle, benutzerdefinierten Tastenkombinationen und Markdown-Syntax. Muss
Versionsverlauf Die Möglichkeit, frühere Versionen eines Dokuments einzusehen und gegebenenfalls wiederherzustellen. Muss
Account-Erstellung/Verwaltung Benutzer können Konten erstellen und verwalten, um ihre Dokumente und Einstellungen zu speichern und zu synchronisieren. Optional
Dokumente mit Accounts teilen Die Möglichkeit, spezifische Dokumente mit anderen registrierten Benutzern zu teilen und deren Zugriffsrechte zu verwalten. Optional
PWA für Offline-Editing Eine Progressive Web App (PWA), die die Offline-Bearbeitung von Dokumenten und die lokale Speicherung von Daten ermöglicht. Optional
Cloud Storage Integration Integration mit Cloud-Speicherdiensten wie Google Drive und OneDrive, um Dokumente direkt zu öffnen, zu speichern und zu synchronisieren. Optional
Monitoring für Admins (Sentry) Integration mit einem Monitoring-Tool wie Sentry zur Erfassung und Analyse von Fehlern und Problemen in der Anwendung. Optional
Custom Themes (Dark/Light) Die Möglichkeit, das visuelle Erscheinungsbild der Anwendung durch benutzerdefinierte Themes oder zumindest durch eine Auswahl zwischen einem hellen und einem dunklen Design anzupassen. Optional
Markdown Flavours Unterstützung für verschiedene Markdown-Dialekte oder -Erweiterungen (z.B. GitHub Flavored Markdown). Optional
Spellcheck Eine integrierte Rechtschreibprüfung zur Erkennung und Korrektur von Tippfehlern. Optional
LLM-Integration Integration mit Large Language Models (LLMs) für Funktionen wie Texterstellung, Zusammenfassung oder andere KI-gestützte Features. Optional
Diagramme Die Fähigkeit, verschiedene Arten von Diagrammen (z.B. Flussdiagramme, Sequenzdiagramme) direkt im Editor zu erstellen oder einzubinden. Optional

Domänenmodell

@startuml
' ========== Entity-Klassen ==========
class User {
  usertoken
}

class Document {
  documentId
  title
  markdownFlavor
}

class DocumentVersion {
  versionId
  createdAt
}

class DocumentAction {
  actionType
  actorId
}

class LinkShare {
  linkId
  permission
  expiresAt
}

class Settings {
  theme
  customKeybinds
}


class MediaFile {
  fileId
  fileType
  storagePath
}

class Storage {
  storageId
  type
  location
}

class MonitoringData {
  timestamp
}

class Account {
  email
  password
}

' ========== Relationships ==========
User --> Document : owns
User --> DocumentAction : performs
User --> LinkShare : creates
User --> Settings : configures
Account --> User: refers to

Document --> DocumentVersion : has versions
Document --> MediaFile : embeds
Document --> Storage : stored in
Document --> LinkShare : can be shared by

DocumentAction --> Document : targets
DocumentAction --> MonitoringData : generates
LinkShare --> Document : grants access to
@enduml