Author: Joel B. Mohler



You will need python (2.6 and 2.7 are tested), qtalchemy, sqlalchemy (0.7x 
preferred), a python database driver, and PyQt4 or PySide.  Refer to 
for a more complete list of dependencies.

It should be noted that while PyHacc is a fully functional system which is in
production use for the author's personal use, it is primarily a demonstration
and example of qtalchemy -- .

As of qtalchemy version 0.8.x, PyHacc uses PySide.  To use PyQt4 instead of
PySide, you must install from the source in the bitbucket repository.  Install
in the following way::

    python --platform=PySide
    python build
    sudo python install

If using PySide, the qtalchemy library will also need to be switched to 
using PySide in a similar way.

Getting Started

On linux, it should be sufficient to run::

    python build
    sudo python install
    pyhaccgui --conn=sqlite://

The sqlite:// connection string will start pyhacc with a demo database.

It is recommended and most tested to use pyhacc with postgresql.  To initialize 
a database::

    createdb pyhacc
    pyhacc initdb postgresql://username:password@localhost/pyhacc
    # to run pyhacc connected to this database:
    pyhaccgui --conn=postgresql://username:password@localhost/pyhacc

Getting Started on Windows

Roughly speaking, the install proceeds as follows:

- Install python and easy_install
- Install PyQt (or PySide, if desired).
- easy_install sqlalchemy
- easy_install pyscopg2  # for postgresql support
- easy_install pyhacc

On your postgresql server, run the following command::

    createdb pyhacc

Initialize the data-set with the following command on the windows client::

    c:\python27\python.exe c:\python27\scripts\pyhacc initdb postgresql://username:password@server/pyhacc

Create a windows short-cut with the following target for starting the program::

    c:\python27\pythonw.exe c:\python27\scripts\pyhaccgui --conn=postgresql://username:password@server/pyhacc



* reports:  balance sheet and profit & loss formatting with sorting and
  grouping flexibility
* reports:  html export
* experimental flask http server code for viewing of reports
* switch to using PySide rather than PyQt4
* primitive calendar view for transactions (personally, I love it!)
* transaction tagging gui


* report changes with column width being propogated from on-screen lists to pdf
* factor out basic report code to qtalchemy
* bug fixes

0.6:  First pleasantly usable version in production