Ein P2P-basierter Echtzeit-Online-Editor für Code-Reviews und Pair-Programming

03 Jul 2018 , first release: 06 Feb 2018 Programming, hitesh0141, Pixabay.com (CC0 Public Domain)

Meta

  • Author: Melanie Lucht
  • State: ongoing
  • Study programme: Medieninformatik online
  • Degree: Master (M. Sc.)
  • Company: cocoo.io UG & Co. KG

Thesis

Gegenstand dieser Masterarbeit ist ein Browser-basiertes Code-Review Tool, dass es ermöglicht Unterstützung von einem entfernten Teammitglied anzufordern, insbesondere um einen fachlichen Austausch zu Quellcode zu ermöglichen. Zur Vermeidung eines aufwändigen Backend-Server-Systems soll die Kommunikation zwischen den Browsern mittels einer Peer-to-Peer-basierten WebRTC-Verbindung erfolgen.

Die Applikation soll insbesondere folgendes Szenario abdecken: Ein Initiator möchte einen fachlichen Austausch zu einem Quellcode anstoßen, indem er ein Teammitglied mittels einer Zufalls-URL zu einer Online-Session einlädt. Über diese URL kann ein anderer Entwickler Änderungen am gemeinsam editierten Quellcode vornehmen und zur Verfügung stellen. Solche Änderungen werden geeignet markiert. Der Initiator soll diese Änderungen übernehmen können.

Die Lösung soll eine Kombination aus Pair-Programming und Code-Review unterstützen, indem unter anderem die folgenden Funktionalitäten bereitgestellt werden.

Priorität 1 (MUSS):

  • Kollaboratives Editieren (wie oben beschrieben)
  • Bereitstellung von Zufalls-URLs für Sessioneinladungen per Copy-Paste
  • Text-Chat
  • Import- und Export von Textdateien
  • Austausch der Daten über eine Echtzeit-P2P-Verbindung
  • Aufbau der Verbindung ggf. über einen Connection Server (STUN, Signaling Server)
  • Der Connection Server soll in Form eines Docker Containers bereitgestellt werden.

Priorität 2 (KANN):

  • Audio-Chat
  • Video-Chat
  • EMail Integration
  • Slack Integration (slack.com)

Teilaufgaben:

  • Analyse bestehender Lösungsansätze
  • Analyse der WebRTC Technologien und verfügbare APIs
  • Architekturentwurf der Anwendung
  • Prototypische Implementierung des Editors (gem. Prioritäten)
  • Prototypische Implementierung des Connection Servers
  • Die Funktionsfähigkeit von Editor und Connection Server soll mittels Softwaretests geeignet nachgewiesen werden.
  • Die Nutzbarkeit soll systematisch evaluiert werden. Hierbei ist ein Entwicklerteam geeignet einzubeziehen.
  • Dokumentation der oben angegeben Schritte (Master-Arbeit) inkl. Bewertung der Nutzbarkeit und technischen Eignung für oben angegebenen Einsatzzweck.

Es wird empfohlen die Dokumentation von Anfang an begleitend zur Arbeit zu erstellen und sich an einem Dokumentations-Template - wie bspw. diesem - zu orientieren.