This repository has been archived on 2020-04-03. You can view files and clone it, but cannot push or open issues or pull requests.
thesis/projektantrag/projektantrag.org

14 KiB

Projektantrag

DONE Zweck des Dokuments

CLOSED: [2018-07-09 Mo 20:55]

Im Rahmen einer Diplomarbeit an den IBZ-Schulen soll die Grundlage für ein neues Open-Source-Projekt geschaffen werden, sowie die Entwicklung der dazugehörigen Backup-Applikation gestartet werden. Die Applikation soll es normalen Usern ermöglichen mit der Backup Software BorgBackup zu interagieren.

Das Dokument dient als Grundlage für die Freigabe der Diplomarbeit.

DONE Ausgangslage

CLOSED: [2018-07-09 Mo 21:16]

Das Open-Source-Projekt BorgBackup footcite:borgbackup entwickelt eine Backup-Software welche es einem ermöglicht Backups auf ein externes Laufwerk oder einen externen Server zu machen. Für externe Server die man nicht selber kontrolliert unterstützt BorgBackup auch eine starke Verschlüsselung. Als weiteres wichtiges Feature unterstützt BorgBackup auch Deduplikation auf Block Ebene was es einem erlaubt sehr viele Snapshots zu haben ohne das der Speicher allzu fest wächst. Des Weiteren erlaubt die Deduplikation von BorgBackup dem User grosse Dateien zu bearbeiten ohne das bei einem weiteren Backup die ganze Datei erneut gespeichert werden muss. Es werden dann nur die effektiv veränderten Blöcke gespeichert.

Als freie Software und aufgrund der interessanten Features wäre BorgBackup auch für weniger erfahrene User sehr nützlich. Leider gibt es für BorgBackup zurzeit kein klassisches grafisches User Interface mit dem ein User interagieren kann. BorgBackup wird komplett über die Kommando-Zeile gesteuert.

Aus diesem Grund soll der Student im Rahmen der Projektarbeit eine grafische Oberfläche für BorgBackup entwickeln.

BorgBackup stell keine direkte API im Python Code für externe Applikationen zur Verfügung. Allerdings gibt es einen Kommandozeilen-Parameter, mit welchem der Output im JSON Format zurückgegeben wird. Die Entwickler raten dazu, BorgBackup direkt über die Kommandozeilen Befehle anzusteuern und anschliessend den JSON Output zu parsen. footcite:jsonapi

Projektrahmenbedingungen

Das Projekt ist im Rahmen einer Diplomarbeit an den IBZ-Schulen zu realisieren. Daraus ergeben sich Ansprüche an:

  1. Komplexität des Vorhabens
  2. Umfang des Vorhabens (250 Stunden)

Die Begleitung der Diplomarbeit ist durch die IBZ sichergestellt.

Als nebenläufiges Ziel soll mit dieser Arbeit auch die Verbreitung von freier Software gefördert werden. Dies wird insbesondere dadurch erreicht, dass die Software selbst unter der GNU Public License Version 3 footcite:gplv3 veröffentlicht wird. Wenn möglich sollen während der Entwicklung auch hauptsächlich freie Software verwendet werden. Die gesamte Arbeit wird zudem zu jedem Zeitpunkt öffentlich einsehbar sein. Der Quelltext der Dokumentation ist bereits unter diesem Link erreichbar: https://git.2li.ch/Nebucatnetzer/thesis

Das Repository für den Code der Applikation wird während der Umsetzung erstellt. Die Dokumentation und der Code werden in getrennten Repositorys veröffentlicht, da das Projekt auch nach der Abgabe weiter existieren soll.

Die Entwicklung wird hauptsächlich auf einem Linux System stattfinden. Da BorgBackup einerseits hauptsächlich auf Unix Systeme ausgelegt ist und anderseits die Hauptzielgruppe des Projektes auch auf Linux Usern liegt. Trotzdem sollen im Projekt Cross-Plattform fähige Technologien eingesetzt werden damit es in der Zukunft möglich ist das Projekt auf andere Plattformen auszuweiten.

Bugs von BorgBackup welche während der Dauer der Diplomarbeit vom Studenten entdeckt werden, wird dieser dem Projekt melden jedoch nicht selber beheben.

DONE Zielsetzung

CLOSED: [2018-07-16 Mo 21:10]

Zielsetzung\cellcolor[HTML]{C0C0C0} Muss\cellcolor[HTML]{C0C0C0} Wunsch≠wline (1-5, 5=sehr wichtig)\cellcolor[HTML]{C0C0C0}
Die Anwendung setzt auf Cross-Plattform (Linux, Windows, OSX) fähige Technologien. x
Die Anwendung steht unter der GPLv3 der Öffentlichkeit zur Verfügung. x
Der User kann mit weniger als 3 Klicks ein Backup ausführen. x
Der User kann ein Archiv mit 3 Klicks löschen. x
Der User kann unter Linux ein Archiv mit zwei Klicks "read-only" als Laufwerk mounten. x
Der User kann ein Archiv wieder herstellen. x
Der User kann den zu sichernden Pfad manuell in der Anwendung definieren. x
Die Applikation holt ihre Konfiguration aus einer Plain-Text Datei. x
Der User kann sein Repository auf einer Harddisk ablegen. x
Die Anwendung exkludiert für einen Linux Computer sinnvolle Pfade bereits zu Beginn. x
Die Archivliste wird nach einer Aktion automatisch aktualisiert. x
Der User kann sein Repository auf einem über SSH erreichbaren Server ablegen. 5
Der User kann den Namen eines Archives selbst bestimmen. 5
Die Anwendung meldet transparent, wenn das Repository nicht erreichbar ist. 5
Die Anwendung meldet dem User, wenn noch ein Hypervisor am Laufen ist. 5
Die Anwendung leitet Meldungen von BorgBackup transparent weiter. 5
Die Anwendung zeigt transparent an das BorgBackup im Hintergrund bereits läuft. 5
Das Repository wird nach jedem Backup bereinigt. 4
Der User kann automatische Hintergrundbackups in der Anwendung konfigurieren. 4
Die Anwendung gibt dem User die Möglichkeit ein passendes Repository zu erstellen, wenn keines gefunden wird, die Anwendung jedoch bereits konfiguriert ist. 4
Die Applikation verwendet, wann immer möglich allgemeingültige Umgebungsvariablen. 4
Die Anwendung cached/speichert (evtl. zusätzliche) Informationen in einer Datenbank. 3
Die Anwendung zeigt beim ersten Starten einen Setup Wizard. 3
Der User kann sich mit 3 Klicks das Log eines Archives anschauen. Nur möglich mit einer zusätzlichen DB. 3
Die Anwendung kann Systembenachrichtigungen auslösen. 3
Der User kann die Anwendung grafisch konfigurieren. 3
Der User kann entscheiden ob, ein gemountetes Archiv nach dem Schliessen der Applikation noch weiter verfügbar ist. 2
Der User kann das Repository wechseln. 2
Der User kann ein Archiv nach einer Datei oder einem Ordner durchsuchen. 2
Der User kann die "Retention Policy" konfigurieren. 2
Die Anwendung kann mit allen Features von BargBackup umgehen. 2
Die Applikation prüft, ob sie sich im richtigen Netzwerk befindet bevor sie eine Verbindung zum Server aufbaut. 2

#+LATEX:≠wpage

DONE Mittelbedarf

CLOSED: [2018-07-09 Mo 21:37]

Für die Arbeit sind, ausser den 250h des Diplomanden, keine weiteren Mittel notwendig.

Planung

Die Arbeit ist innert 14 Wochen (Vorgabe IBZ-Schulen) abzuwickeln. Die Verteilung der anstehenden Arbeiten auf die 14 Wochen ist durch den Diplomanden vor dem Start der Phase Voranalyse zu erledigen.

Der Student wird die Projektmethodik, "Wasserfall" einsetzen.

DONE Wirtschaftlichkeit

CLOSED: [2018-07-09 Mo 20:55]

Die Wirtschaftlichkeit ist für dieses Projekt nicht relevant.

DONE Konsequenzen

CLOSED: [2018-07-09 Mo 20:55]

Keine speziellen Konsequenzen in dem Vorhaben bekannt.

DONE Antrag

CLOSED: [2018-07-09 Mo 20:55]

Der Diplomand beantragt die Freigabe der Phase Voranalyse, diese startet mit dem Kick-off vom 10.12.2018.