Housekeeping App

The “Housekeeping” web application

Try it: Just log on to the demo instance (by entering user id “demo” and password “demotester”).

The history of this application is described on the Web Development page.


  • Database independent: minimum use of database implementation specific capabilities. Views, triggers and permissions are implemented on an application level, so the database is just a container of indexed tables. Nevertheless the application has only been tested with MySQL and MariaDB. The data model is designed to maintain referential integrity as no vital data can be deleted, but is reused. There are no complex transactions writing to multiple tables
  • National language support: the application is designed to support national languages (currently English, German, Spanish) by adding national language modules containing user interface expressions and messages. Even the database columns reflecting the national object names may be extended by altering the tables and the respective data description without the need to adjust any application code
  • Generic relation model: data objects may be related to each other with virtually no limitations. The “rules” for valid object relations are defined as part of the data description
  • Architectural modularity and abstraction: class libraries are modularized to encapsulate for example the low level data layer, business objects (high level data layer), reports, user interface controls, generic base classes and external connectors like LDAP and SEPA-XML. The data description (which also controls permissions on a column level) is separated from the database as well as from the business logic

Some of the features

  • Objects may be categorized, categories may be grouped
  • Groups may be used as distribution lists
  • Selected person and institution properties may be synchronized with an LDAP directory using the LDAP connector (tested with OpenLDAP) to be used for contacts
  • Transactions may be exported to (legacy) DTAUS or SEPA-XML format in order to have them processed by professional home banking applications
  • Trashcan to automatically reuse objects that are no longer needed (objects may be trashed and restored using drag and drop)
  • User specific data views configured using a view configurator
  • National language support (currently English, German, Spanish)
  • Role support to protect critical object properties from being altered by users
  • Drill-down reports for all relevant object classes including column charts

    Drill-down report

    Column Chart

    Column chart

  • Comprehensive search and filter features to quickly find objects of interest. Search hits are highlighted in all views and reports

    Powerful global and local search features marking hits in all views

  • Entering filter expressions, hits are pre-scanned and selectable using navigation keys or mouse

    Entry selector pre-scanning search hits

  • Images may be uploaded and linked to appropriate object classes

    Linked Image

    Linked image

  • Objects of appropriate classes may be rated and commented. Once stored, authors can edit their comments while the respective ratings remain

    Object-related rated comments

  • A dashboard summarizes usage information

    Dashboard summarizing usage

  • Audit log: changes to valuable data are being tracked to a table based audit log, which by itself can be searched and filtered by the application
  • Keyboard shortcuts
  • Application-specific drag and drop plug-ins

Runtime environment requirements

  • Web server supporting PHP 5.4 or above (i.e. Apache)
  • MySQL / MariaDB 5 or above
  • PHPlot graphics library (which by itself requires the GD2 library)


Most concepts of the “Housekeeping” web application have been and are implemented on a reasonable value/effort ratio (from my point of view) which is why most concepts are not tuned to the max.  For an overview of known limitations, bugs and To Do’s please see the README file. As the application is experimental software (however productively used at home), there is no committed release schedule.

Browser compatibility: The application is developed using Firefox and tested with Chrome, Opera, Konqueror and Internet Explorer. Not all browsers support the latest styles or HTML5 features, but fallbacks for most of these cases have been considered. In addition, the application moderately uses Javascript.

In particular, the demo instance is restricted with regards to the following properties and features

  • LDAP synchronization is disabled as the cloud used does not support LDAP services
  • Reminder scripts are not used as the cloud used does not allow jobs to be run on the system
  • SEPA and XML exports are not saved to a fixed directory (used by your home banking application), but offered for download

How to test it

  • Log on to the demo instance (by entering user “demo” with password “demotester”)
  • Play around creating, updating, trashing and recovering entries, searching and reporting …

You are welcome to leave a post (once registered) or a comment (best assigning the adequate categories).

Leave a comment


Leave a Reply

( Ctrl + Enter )