A Document Management Systen for small buisness and private user written in go.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Sebastian Preisner 4b0be2e050 Configfiles 7 years ago
.gitignore Initial commit 7 years ago
LICENSE Initial commit 7 years ago
README.md Configfiles 7 years ago

README.md

GoDMS

A Document Management Systen for small buisness and private user written in go.

Configuration

Für die Configuration kommt das Viper Framework von spf13 zum einsatz. Es ist sehr ausgereift und wird in etlichen Projekten verwendet. Außerdem bietet es ein rundum Packet von Config Files über Enviorement Variablen bis hin zu Commendline inputs. Damit sollten wir das wichtigste abgedekt haben.

Struktur und Ideen

Das Dokumenten Management System (DMS) soll möglichst einfach in der Bedienung sein und wenig Overhead und Abhängigkeiten mitbringen. Ziel ist es ein DMS zu entwerfen das zukunftssicherheit bietete und zur Not auch ohne Installation von GoDMS funktioniert. Dabei möchte ich meine eigene Dokumentenverwaltungsstrategie anwenden und diese in eine schickes Front-End mit etwas mehr Funktionen stecken. So wird GoDMS die Dokumentenverwaltung auf Dateiebene organisieren und die Funktionalität des Dateimanagers erweitern. Hierzu ist die strukturierte Ablage der Dateien sowie die Bennenung von Oberster Priorität.

Zu ermitteln gilt die Maximallänge für Dateinamen und die Maximaltiefe von Ordnerstrukturen um diese fest im Programm zu verankern.

Was kann GoDMS

  • Organisation in Ordnerstrukturen
  • Einfache möglichkeit der Synchronisation, Mehrarbeitsplatztauglich und Problemlose nutzung von Cloudspeichern
  • Konfiguration am Beispiel von Git in einem .godms Ordner mit den Konfiguraktionsdateien der Arbeitsumgebung
  • Mehrere Arbeitsumgebungen auf einem System (Private und Geschäfftliche Dateien getrennt verwalten)
  • Volltextsuche innerhalb von Dateien
  • Schlagworte
  • Kategorien (Ordner) und Unterkatigorien (Virtuelle Ordner)
  • Überwachung der Ordner auf neue Dateien
  • Automatische Einordnung durch den Dateinamen
  • geplant Virtuelle Ordner mittels Softlink verwirklichen

Dateinamen

Der Dateiname sollte möglichst aussagekräftig sein und helfen die richtige Datei im Dateisystem zu finden. Um eine sicher und konsistente Sortierung der Dateien zu erhalten beginnt der Name mit dem Datum der Einsedung rückwärts. Danach sollte ein Kürzel oder der Name des Absenders erscheinen und zum Schluss der Betreff. Für einen Brief der HUK24 vom 20.03.207 zur erweiterung des Vertrags würde das ganze wie folgt aussehen:

"20170320 HUCK24 Vertragserweiterung"

Es hat sich gezeigt das es noch etwas einfacher wird wenn man für Typische Briefe wie Rechnungen, Informationen, Verträge, dem namen noch ein Kürzel zuweist. So ist bei der suche dach einer Rechnung der HUCK24 das passende Dokument schnell gefunden wenn man lediglich nach HUCK24 sucht. Dadurch erweitert sich der Name wie folgt:

"20170320 V HUCK24 Vertragserweiterung"

Hier sieht man schon die erste Schwachstelle die die Verwaltung mit einem Dateimanager mit sich bringt. GoDMS soll an dieser Stelle durch ein ausgefeiltes Tagging der Dateien einen größeren umfang bieten und die Dateien bei Änderungen automatisch neu benennen.

Ortnerstruktur

Im Alltag hat sich eine möglichst flache Ordnerstruktur als sehr Hilfreich erwiesen. Eine all zu tiefe Verschachtellung erschwärt nur das Auffinden der Dateien. Angestrebt wird eine Struktur mit einer Tiefe von Maximal 3, wobei nur die ersten beiden selbst bestimmt sind. Die Ordner bilden dabei die Kategorien in GoDMS ab wobei die dateien in einem Unterordner mit Jahreszahl zu finden sind. Im Folgenden ist ein Beispiel der Struktur zu finden:

  • Rechnungen
    • 2012
    • 2013
    • 2014
  • KFZ
    • Auto
      • 2014
      • 2015
    • Motorrad
      • 2014
  • Versicherungen
    • 2015
    • Lebensversicherung
    • Haftpflicht
  • Wohnen
    • Gas
    • Strom
    • Miete
  • ...

Wie man sich vorstellen kann gibt es auch hier Verbesserungspotenzial, so ist es immer eine Frage wo man nun die KFZ Versicherung hinstecken soll oder soll ich nun eine Rechnung für den Versicherungsbeitrag unter Vericherungen oder unter Rechnung ablegen. Auch dieser Konflikt lässt sich durch GoDMS umgehen und zumindest bei UNIX Systemen sogar im Dateisystem abbilden. Zunächst jedoch der Lösungsansatz den ich derzeit für dieses Problem einsetze. Wenn ich ein Dokument habe sei es eine Rechnung oder eine Versicherung schaue ich in meiner Ordnerstruktur zu was dieses Dokument gehört. Gibt es wie im Falle der KFZ Versicherung eine eigene Kategorie dann kommt dieses Dokuement auch dort hinein. Gibt es jedoch keine Kategorie die auf das Dokument zutrifft dann kommt es in die allgemeine Kategorie "Versicherung". Für eine Rechnung verfahre ich genauso, bei einer Rechnung für eine Versicherung die im Ordner Versicherung zu finden ist gibt es ja bereits eine Kategorie, nämlich Verischerung und daher kommt die Rechnung zu dieser Versicherung auch in diesen Ordner.

Somit sollten Dateien in GoDMS auch nur eine Kategorie haben können. Jedoch wären auch noch Unterkategorien denkbar die nur in GoDMS notiert sind oder auf UNIX Systemen mittels Softlink realisiert werden könnten. Somit könnte man allen Dokumenten die für die Steuer wichtig sind eine Unterkategorie Steuer zuteilen und die Dateien dann auch im Ordner Steuern vorfinden.

.godms Config

Eine Arbeitsmappe wird änlich wie bei GIT initialisiert wodurch die nötigen Configurationsdateien und Datenbanken angelegt werden. Der .godms Ordner befindet sich in der obersten Ebene der Arbeitsmappe. Mithilfe von einfach zu lesenden TOML Dateien können die configurationen für die jeweilige Arbeitsumgebung angegeben werden. Hier befinden sich auch die Kategorien, Absenderlisten und alle weiteren Informationen. Hierdurch lässt sich die gesammte Arbeitsmappe problemlos umziehen und durch den setzen des Pfads in godms direkt weiterarbeiten.