# [Projektidee] Persönliche Dokumentenverwaltung

## Necoro

So ... gestern hab ich mich wieder mal aufgeregt, dass ich meine Rechnungen/Briefe auf dem Rechner nicht sinnvoller als mit einem git verwalten kann.

Daher kam mir folgende Idee. Ich stelle sie mal hier ein, um zu hören, was andere dazu sagen, und ob das auch für andere sinnvoll erscheint  :Smile: . Vorschläge sind auch gerne gesehen.

Also prinzipielle Idee erst einmal: Rechnungen aber auch ausgehende Briefe sind in einem VCS eigentlich mehr oder minder fehl am Platz, denn dass es von einem davon mehrere Versionen gibt, ist äußerst selten. Und bereits existierende DMS sind für einen einzelnen Anwender viel zu komplex (zB Rechteverwaltung, Client-Server-Architektur). Aus diesem Grunde braucht man was neues...

Das Neue sollte denn können:

- Dokumente einchecken und anzeigen können

- Dokumente taggen

- Eingecheckte Dokumente mit einem Datum versehen

- Dokumente nach Tags / Datum (zB Jahr, Monat, ...) zu sortieren

- Dokumente als Thread anzeigen (also: Antwort auf XYZ)

- evtl. auch Notizen als Dokumente unterstützen (wenn man zB zu faul ist das einzuscannen und nur einen Verweis auf den Ordner speichern will)

- einfache Versionierung

- einfaches Backupen ermöglichen

Weitergehende Features:

- direkte Unterstützung von Latex-Dokumenten ... zB Latex-Dokumente gespeichert aber zur Anzeige werden diese übersetzt und als PDF angezeigt

- Volltextsuche in den vorhandenen Dokumenten

- eigene Adressdatenbank oder Anbindung einer solchen mit der Möglichkeit, aus einer Adresse gleich ein vorgefülltes Latex-Antwortschreiben zu erstellen

- evtl. Anbindung der Scannerarchitektur ... also einscannen und gleich einchecken ohne Umweg über lokale Dateien

Was es nicht können sollte:

- Zugriffsrechte ... es ist für Single-User-Betrieb konzipiert

- pull/push/merge ... durch die Anforderung eines einfachen Backupens, kann man es schon beliebig hin- und herschieben.

Interfaces:

Als Interfaces sind für mich im Moment eine GUI und ein CLI interessant. Letzteres sollte ähnlich einem VCS zu bedienen sein. zB "doc ci Rechnung.pdf --tags handy rechnung betreiber", "doc show tag rechtsanwalt" (letzteres zeigt denn nur Dokumente mit dem Tag "rechtsanwalt" an), "doc show thread Schreiben_Stadtwerke.pdf" (zeigt alle Dokumente an, die zum Thread für diese Datei gehören), "doc all --bytags" (alle Dateien, aber sortiert nach tags) ...

Interessant klingt auch mit FUSE eine Dateisystemabbildung zu bauen, welche das ganze als übliche Ordnerhierarchie darstellt und denn das taggen etc unterstützt, indem man die Dokumente mit cp/mv/rm umherschiebt.

Generell sollte das ganze aber so designed sein, dass andere Interfaces möglich sind - zB ein Webinterface für den, der es haben will.

Techniken:

In diesem Bereich wäre ich noch besonders für Tipps dankbar  :Smile: .

DB: Momentan schwebt mir SQLite vor. Zum Problem passender erscheinen zwar prinzipiell MongoDB oder CouchDB - nur riecht das nach Overkill ... und erfordert schon wieder einen Server.

Textsuche: CLucene?

Programmiersprache: Prinzipiell egal ... momentan liebäugele ich mit Vala ... aber das ist nun wirklich der unwichtigste Punkt ^^

----------

## franzf

 *Necoro wrote:*   

> Programmiersprache: Prinzipiell egal ... momentan liebäugele ich mit Vala ... aber das ist nun wirklich der unwichtigste Punkt ^^

 

Fast hättste mich gehabt ^^

Das ist ein gewaltiges Projekt, welches sicher für mehrere interessant ist als nur Gnome-Verfechter.

Und den Hype um Vala versteh ich auch nicht. Eine neue Sprache mit C-ählicher Syntax, die Wenn kompiliert C-Code ausspuckt, der dann nochmal kompiliert werden muss...

Ich würde mich da - zumidest was Core-Funktionalität anbelangt - eher auf was weiter verbreitetes wie C/C++ oder Python stürzen.

Die GUI-Sachen sind dann eher Geschmacksfrage.

Ansonsten:

* Tagging

* Zeitstempel

* Verzeichnisse überwachen

* ...

kann Nepomuk schon wunderbar. (Wenn du Vala darfst darf ich KDE  :Razz: )

Wie hast du dir das einchecken gedacht?

Gibt der Benutzer Dateien/Verzeichnisse vor?

Wie willst du das mit Threadanzeige bei Kommunikation anstellen? Da muss man ja irgendwie Verweise auf die Mailbox angeben können. Oder meinst du nur "Dieser Brief ist meine Antwort auf jenen Brief" und die Briefe sind einfach Dokumente (pdf, doc,...) auf der Platte?

Versionsverwaltung wird etwas problematisch, da die alle ein Hauptverzeichnis brauchen.

Musst also ein eigenes Repo für das komplette $HOME anlegen. Und dann darfst du hoffen, dass der User seine Dokumente nicht auch mit dem gleichen Versionsverwaltungstool verwaltet.

git oder bazar oder mercurial würden sich ja anbieten.

Als Datencrawler kannst du dir ja mal strigi anschauen. Und nein, man braucht dafür weder Qt noch KDE.

----------

## Necoro

 *franzf wrote:*   

>  *Necoro wrote:*   Programmiersprache: Prinzipiell egal ... momentan liebäugele ich mit Vala ... aber das ist nun wirklich der unwichtigste Punkt ^^ 
> 
> Fast hättste mich gehabt ^^
> 
> Das ist ein gewaltiges Projekt, welches sicher für mehrere interessant ist als nur Gnome-Verfechter.
> ...

 

Naja - zum einen war das nur mal so in den Raum gestellt, weil ich Vala ganz knuffig finde ^^. Aber mit Gnome hat das doch soweit nix zu tun  :Shocked:  - ist zwar von denen, aber hat keine Gnome-Abhängigkeit. Einzig GLib wird benötigt.

 *Quote:*   

> Ich würde mich da - zumidest was Core-Funktionalität anbelangt - eher auf was weiter verbreitetes wie C/C++ oder Python stürzen.

 

Na gut  :Very Happy:  ... Denn halt C++ oder so  :Razz:  - Wie gesagt: Sowas sollte man klären, wenn alles anderes steht.

 *Quote:*   

> Ansonsten:
> 
> * Tagging
> 
> * Zeitstempel
> ...

 

Ok - aber eigentlich wollte ich nicht direkt ein Verzeichnis überwachen, sondern schon ein eigenes System, was nicht unbedingt mit dem Dateisystem korreliert.

 *Quote:*   

> Wie hast du dir das einchecken gedacht?

  Datei wird in einem eigenen Datastore (oder auch Datenbank ... das muss man evaluieren) abgelegt. Also nicht nur Verweise zu Dateien auf der Platte.

 *Quote:*   

> Wie willst du das mit Threadanzeige bei Kommunikation anstellen? Da muss man ja irgendwie Verweise auf die Mailbox angeben können. Oder meinst du nur "Dieser Brief ist meine Antwort auf jenen Brief" und die Briefe sind einfach Dokumente (pdf, doc,...) auf der Platte?

 

Wie oben gemeint: Die Briefe werden eingecheckt und denn in Relation zu einander gestellt. Die Integration von Mails kann man sicherlich auch machen -- aber ich denke, das macht im Regelfall der Mailclient besser  :Smile: 

 *Quote:*   

> Versionsverwaltung wird etwas problematisch, da die alle ein Hauptverzeichnis brauchen.
> 
> Musst also ein eigenes Repo für das komplette $HOME anlegen. Und dann darfst du hoffen, dass der User seine Dokumente nicht auch mit dem gleichen Versionsverwaltungstool verwaltet.
> 
> git oder bazar oder mercurial würden sich ja anbieten.

 

Wie gesagt: Ich will keine Verzeichnisse überwachen sondern Dokumente managen. Was der User in seinem $HOME treibt ist Banane  :Smile: . Eine Versionsverwaltung müsste man, sofern gebraucht, selber bauen. Wobei ich da nicht denke, dass man irgendwas großes braucht. Nur ein "hier hab ich mal was überarbeitet". Die ganze Sache ist ja eher statisch.

----------

## Yamakuzure

Das nennt sich dann Dokumentenmanagement-System und kostet ab einen kleinen fünfstelligen Betrag aufwärts. Warum die so teuer sind, liegt zum einen daran, dass so ziemlich alle Firmen, dank der Pflicht zur Dokumentenarchivierung, darauf angewiesen sind wenn sie keine Aktenberge wollen, und zum Anderen an dem schon erwähnten _gewaltigen_ Entwicklungsaufwand. Soweit mir bekannt gibt es nur ein einziges System, dass das, was du möchtest, gratis tut. Und das ist, ich wage es kaum zu sagen, Nepomuk+Strigi.  :Wink: 

----------

## Necoro

Dass das für Firmen äußerst komplex ist, ist mir klar -- aber deren Anforderungen sind ja auch meilenweit höher als die des Privatanwenders. Ich sehe im Gegenteil gar keine größere Schwierigkeit in der Implementierung.

 *Quote:*   

> Soweit mir bekannt gibt es nur ein einziges System, dass das, was du möchtest, gratis tut. Und das ist, ich wage es kaum zu sagen, Nepomuk+Strigi.

 

Nepomuk kommt mir nicht ins Haus. Aber ich kann mal schauen, was einem Tracker+Strigi bietet.

----------

## Yamakuzure

Die Anforderungen der Firmen:Dokument einscannen oder Datei anlegenDem Dokument Indexwerte mitgeben, die in einer Datenbank landen (entspricht deinem taggen, sortieren)Das Dokument bei Bedarf archivieren (und auf Worm speichern)Bei Bedarf über die vergebenen Indexwerte die richtigen Dokumente (schnell) wiederfinden (auch sortiert und/oder mit Referenzen)Das große Extra ist die Sicherung auf Worms (plus Spiegelmedien zur Sicherheit) und das wird normalerweise von einem extra Archivierungssystem übernommen.

Viele Systeme können nicht mal das, was in deiner Feature-Liste steht. zum Beispiel mußt du bei einem SER DOXiS 4 System eine extra Volltext-Engine hinzukaufen (Witzigerweise steht "lucene" als OpenSource zur Auswahl). Überhaupt würden deine "Weitergehenden Features" die Kosten explodieren lassen. Bei besagtem System müsstest du für die On-the-Fly-Umwandlung in PDF sogar einen extra Server hinzukaufen, der das übernimmt. Die vorgefertigten Formulare aus einer Adressdatenbank sind, dank zusätzlicher Office-Connector-Software, die nochmal ein kleines Vermögen kostet, auch kein Problem. Sowas mit der Scannerarchitektur haben wir gerade erst verkauft (nScale) und es ist verdammt teuer.

Ich kenne sicherlich nicht _alle_ DMS Systeme auf diesem Planeten, aber doch sehr viele. Und keines kann deine Feature-Liste vollständig erfüllen, zumindest nicht ohne zusätzliche Produkte.

Aber lassen wir das, das wolltest du sicherlich garnicht wissen.  :Wink: 

Also zurück zum Thema: Tracker+Strigi klingt soweit vielversprechend.

Edith hat noch "app-text/hyperestraier" gefunden...

----------

## JoHo42

Hi @all,

also Dokumenten Verwaltung?

Nee der Aufwand ist mir viel zu gross.

Also ich habe mir eine Dokumten Struktur auf der Festplatte geschaffen:

Struktur Verzeichniss Dateien wie hier beschrieben.

Das in Klammern stehende sollen hier zeigen woher die Dateien kommen oder was drin steht,

diese Infos stehen nachtuerlich nicht in Programmen wie "mc".

Dokumenten Struktur

Dokumente

--Strom

+--2009_01_05_vertrag_anbieter.jpg (eingescantes dokument)

+--2009_01_08_bestaetigung_anbieter.doc (Brief Vertrag unterschrieben zurueck geschickt)

+--2009_10_16_kuendigung_anbieter.doc (Kuendigung Strom)

+--2009_11_08_vertrag.pdf (eingescantes dokument neuer Vertrag)

+--bestaetigung_anbieter_neu.doc (Vertrag noch nicht abgeschickt in Arbeit. Hier fehlt dann das Datum)

--Vermieter

+--2009_02_25_endabrechnung.pdf (eingescannt)

--Telefon

+--2009_01_28_rechnung.pdf  (per Email gekommen als PDF abgespeichert)

+--2009_02_26_rechnung.pdf  (per Email gekommen als PDF abgespeichert)

--Verein

+--2010_01_22_aushang.doc (Einfach erstellte Datei und am 01_22 Ausgehanben)

--Photos

+--2008_07_21_ausflug_stadt

++----hier die fotos

+--2008_12_24_weihnachten

++----hier die fotos

Veraenderungen der Struktur

Ein grosser Vorteil ist auch, die Struktur ist erweiterbar durch einfaches Kopieren.

Z.B. Man macht eine neuen Ordner und fast Strom Telefon Vermieter zusammen.

Dann bekommt man

Dokumente

---Haushalt

+---Strom

+---Telefon

+---Vermieter

---Verein

Ebenfalls sind Aenderungen ohne Probleme moeglich.

Das Verzeichnis Vermieter ist unschoen gewaehlt man kann es jederzeit aendern

in Vermieter -- Miete

Fals ein Dokument in Bearbeitung ist, speichere ich dieses im entsprechnenden

Ordner ab. Lasse aber das Datum weg. Das bedeutet fuer mich das dieses Dokument nicht

fertig oder beendet ist.

Erst mit einem Datum ist fuer mich das Abgelegt und bearbeitet.

Backup

Backup wird mit einer externen Festplatte durchgefuehrt.

Ein kleines Script, mit einem rsync Kommando drin und schon kann man ein gutes Backup:

1) rsync --delete /home/blub/dokumente /mnt/backup

2) gzip /mnt/backup/dokuments 'date %m %s'_backup_dokumente.zip

3) echo "Am "date" wurde ein Backup erstellt" >> /mnt/backup/backup_info.txt

(Achtung die Kommandos stellen kein Vollstaendiges Script da, es ist nur eine Funktionsbeschreibung)

Zu 1) Daten mit rsync kopieren und man hat sein Backup und alles wird gut.

Zu 2) Laesst ein ZIP File mit Datum entstehen. Daran kann ich sehe wann ich das letzte mal ein Backup gemacht habe.

Zu 3) Das Textfile dient zur zusaetzlichen Info.

Bei aenderungen in der Struktur wie oben beschrieben uebernimmt rsync diese Aenderungen ebenfalls.

Wenn man mit rsync --delete (glaube ich) arbeitet.

Durch das Zip File lassen sich diese Aenderungen auch nachvollziehen.

 *Quote:*   

> 
> 
> Anforderungen:
> 
> 1) Dokument einscannen oder Datei anlegen
> ...

 

1) Siehe jpg oder pdf Files oben

2) Index 2009_02_23 Datum steht am Anfang ist ein super Index. Einfach in der Reihenfolge sortiert wie sie rein und rausgehen.

3) Durch den Index Datum hat man auch ein Archiv

4) Wenn ich das Kuendigungschreiben Strom suche. Schaue ich nach unter /documente/stromanbieter und ich sehe datum_Kuendigung.doc und durch das Datum weiss ich auch welche

    die letzte Kuendigung war.

5) Datensicherheit ist durch rsync Backup gegeben.

6) Durch das Zippen des Backups ist nachvollziehbar wann man das letzte mal ein Backup gemacht hat und wie oft.

    Ebenfalls sind dadurch Veraenderungen in der Dokumenten Struktur nachvollziehbar.

    Das Backup der Daten kann auch durch vixie-cron usw... gesteuert werden.

7) Die kosten sind fuer Computernutzer sind ueberschaubar, alles Software laesst sich als OpenSource (GPL) bekommen.

    Eine externe Platte ist zu empfehlen, da hier die Daten unabhaengig aufbewart werden koennen / sollten.

Erweiterungen

 *Quote:*   

> 
> 
> 1) - direkte Unterstützung von Latex-Dokumenten ... zB Latex-Dokumente gespeichert aber zur Anzeige werden diese übersetzt und als PDF angezeigt 
> 
> 2) - Volltextsuche in den vorhandenen Dokumenten 
> ...

 

Zu 1) *.tex abspeicher und gut ist? keine Ahnung. Oder moechtest du ein Script welches mit Doppelclick das *.tex in pdf umwandelt und direkt oeffnet?

Zu 2) Wuerde ich auch gerne bei OpenOffice Dokummenten koennen. Wuerde ich gerne eine Erweiterung fuer mein System haben.

         In Text Files ist das moeglich einfach suchen in dateien, aber in Office Dokumente nicht.

Zu 3) Habe ich noch nicht Probiert aber mysql und odbc Treiber in Office, sollte eine Loesung darstellen.

Zu 4) Das Einchecken moechte ich nicht.

Ein Nachteil muss ich einfach mal erwaehnen, ich mache zur Zeit ein vollstaendiges Backup vom /home/blub/dokumente.

Durch die Fotos wird das Zip File sehr sehr gross, ich wuerde gerne nur den Ordner Fotos rausholen.

Er soll zwar durch rsync kopiert werden aber nicht mehr gzip.

Ich muesste hier aber alle anderen Ordner in meinem Script erwaehnen. Es muesste umgekehrt gehen, dass einfach welche ausschliessen koennte.

Falls neue Ordner erstellt werden muesste ich mein Script anpassen, wenn man dies Vergisst hat man koennte es zu einem Datenverlust kommen.

Also dafuer suche ich noch eine Antwort.

Zur Info

Ich habe mal mit Subversion und Latex Dokuemente gearbeitet.

Allerdings ist dies nicht effizient, denn der Aufwand alles Ein- und Auszuchecken ist sehr hoch (man kann halt nicht so schnell durch die Dokumente fliegen).

Erfahrung ist auch, wenn man echt mal ein Dokument aus dem Archiv braucht und dieses am besten dringend.

Tritt immer Murphys Law (was schief gehen kann geht auch schief) auf und man kommt nicht an die Daten.

Denn auch das Backup besteht aus einer Datenbank die man nicht eben mit Office oeffnen kann um seine Daten zu suchen.

Durch das oben vorgestellt, kann man zur not vom Backup arbeiten.

Man hat immer noch ein Backup vom Backup durch das Zip File.

Desweiteren kann hier die Datenbank sehr schnell zerstoert werden und PDF einschecken macht nicht wirklich sinn.

Gruss Joerg

----------

