


AqFinance
=========

AqFinance ist eine grafische Anwendung zur Verwaltung von Finanzen und der Nachfolger von
QBankManager.

Es bietet via AqBanking Unterstuetzung fuer HBCI, OFX DirectConnect und EBICS.

Der Quellcode von AqFinance steht unter der Lizenz GPL v2 zur Verfuegung.



1. Features
===========

Da es inzwischen schon genuegend Software in diesem Bereich gibt, folgt eine Uebersicht ueber die
Features, die AqFinance von anderen Anwendungen abheben.


1.1. Einfache, sehr schnelle GUI
--------------------------------

AqFinance verwendet das plattformunabhaengige FOX Toolkit. Dieses Toolkit ist im Vergleich zu 
anderen Toolkits sehr schlank und auch sehr schnell, da es sich auf seine Kerntaetigkeiten - die
flinke Darstellung von Widgets - beschraenkt. Dadurch ist beispielsweise die Tabelle der Umsaetze
selbst mit mehreren tausend Buchungen noch sehr fluessig bedienbar.

So ziemlich alle Ansichten und Dialog merken sich ihre Einstellungen (beispielsweise die
Spaltenbreiten von Tabellen, Dimensionen von Fenstern und Dialogen etc).

Ueberweisungen, Umsaetze, Konten etc koennen sehr schnell gefiltert werden, so dass es extrem 
einfach ist, bestimmte Eintraege wiederzufinden.


1.2. Zukunftsorientiertes Datenbankmodell
-----------------------------------------

Das Datenbankmodell von AqFinance entstand vor dem Hintergrund der Diskussionen auf den
Mailinglisten anderer Finanzanwendungen. Die bekanntesten Anwendungen nutzen Datenbanken bisher
zumeist als Ersatz fuer Dateien, d.h. oft werden saemtliche Daten beim Start der Anwendung geladen und
am Ende wieder gesichert. Das bedeutet, das hier oft die Datenbanken nicht konsistent von mehreren 
Anwendungen gleichzeitig genutzt werden koennen.

AqFinance verwendet Datenbanken daher etwas anders. Es werden nur jeweils die Daten geladen, die 
gerade angezeigt werden sollen. Durch Locking der Datenbank und Transaktions-basiertem Zugriff
koennen mehrere Anwendungen gleichzeitig auf die Datenbank zugreifen. 

Der Datenbank-Code ist zudem abstrakt, so dass unterschiedliche Datenbank-Module implementiert werden 
koennen. Bisher existiert ein Modul, welches Daten in mehreren Dateien eines Verzeichnisses ablegt.
Moeglich sind aber auch Module mit Zugriff ueber das Netzwerk, mit mehreren Benutzern sowie ein Modul
mit Anbindung an SQL-Datenbanken.


1.3. Tools zur Konsolen-basierten Datenbankmanipulation
-------------------------------------------------------

Das Paket AqFinance enthaelt Tools, mit deren Hilfe Daten in die AqFinance-Datenbank importiert oder
aus ihr heraus exportiert werden koennen. Dieses Tool erlaubt beispielsweise auch den Export von
Umsaetzen, auf die ein angegebener QueryString passt.

Enthalten ist auch das Tool aqbanking-cli (fuer Konsolen-basiertes Homebanking).


1.4. Einfache Installation, einfache Updates
--------------------------------------------

AqFinance kann entweder selbst kompiliert werden oder man verwendet die vorbereiteten
Distributions-unabhaengigen Binaerpakete, die alle benoetigten Bibliotheken enthalten und einen einfachen
Update-Mechanismus zur Verfuegung stellt.


1.5. Abgleich von Ueberweisungen mit Umsatzdaten
------------------------------------------------

AqFinance kann den Status von in Auftrag gegebenen Ueberweisungen automatisch abgleichen. Sobald
die Bank eine Ueberweisung in den Kontoauszuegen auffuehrt, kann AqFinance den entsprechenden Auftrag
als ausgefuehrt markieren.


1.6. Einfaches Undo
-------------------

Das Datenbankmodell von AqFinance verfuegt ueber ein sinnvolles Session-Management. Dadurch ist es
moeglich, mit wenigen Klicks Aenderungen zurueckzunehmen.


1.7. Filterbasierte Umsatz-Kategorisierung
------------------------------------------

Der Benutzer kann in AqFinance ueber entsprechende Regeln eingehende Umsaetze automatisch den 
Kategorien zuordnen lassen. Somit muss man normalerweise nur einmal eine Regel aufstellen; beim Abruf
der Umsatzdaten via Online-Banking fuehrt diese Regel dann zu einer automatischen Einsortierung in die
richtige Kategorie.



2. Abhaengigkeiten
==================

Um AqFinance selbst zu kompilieren muessen die folgenden Bibliotheken (und deren Abhaengigkeiten)
installiert sein:
  - Gwenhywfar
  - AqBanking
  - AqDatabase
  - AqFoxExt
  - cairo
  - pixman


3. Compilieren
==============

AqFinance wurde auf das neue Build-System GwenBuild umgestellt. Damit ist das Kompilieren und Linken wesentlich schneller als es
bisher mit den autotools war.

Folgende Kommandos werden zum Bauen des Projektes benoetigt:

#> mkdir build
#> cd build
#> gwbuild -s ..
#> gwbuild -p
#> gwbuild
oder
#> gwbuild -j14
um z.B. 14 threads gleichzeitig kompilieren zu lassen

Zum Installieren:

#> gwbuild -i (gegebenenfalls als root)


Das Kompilieren mittels der autotools wird inzwischen nicht mehr aktiv unterstuetzt.


Martin Preuss

