Personal Finance Management Software

Recently (August, 2010), I’ve been developing a Personal Finance Manager package for managing our household budget, checkbook, credit cards, etc.

This has actually evolved into a nice little package. It uses JQuery, DataTables, AJAX, Data Access Objects, PHP and MySQL. It runs under the Apache web server, which is nice because you can run it on a web server and both you and your wife or husband can post transactions, reconcile bank statements and run reports.

Since it is a web-based application, you do need a web server to run it. So it’s not for the faint of heart.

I’ve actually been able to re-use this package as a generic web application development framework as well.

The project uses phpdaogen to generate the Data Access Objects from the MySQL schema. Phpdaogen is a project I developed specifically for use in my Personal Finance Manager application, because I didn’t like the licenses for any of the other DAO packages I found. Phpdaogen also includes a PreparedStatement implementation for MySQL under PHP without using mysqli (which is buggy and tends to crash).

The package requires the json PECL module to be installed. Under Red Hat/Fedora/CentOS, this requires that you install the php-json package.

One really cool thing about the package is that all form submissions and page updates are done through AJAX, so there is no need for page reloads. This makes the application very snappy and responsive.

The Personal Finance Manager package is licensed under the BSD license, so you can basically use or adapt it for free, even for commercial use.

You can download it here: Personal Finance Manager

I’m available for consultation, customization and training at a reasonable rate. Use the “Contact Us” form to send me an inquiry.

18 thoughts on “Personal Finance Management Software

    1. ron Post author

      Feel free! I released the whole thing under BSD license, so you can do pretty much anything you want with it that the license allows, as long as you give attribution and don’t claim that you wrote it.

      Reply
  1. Evgeny Manahov

    Hello, can you please send me the latest version of your package by email because for some reason I cannot download it.

    Could you, please tell me what would be your rate for support issues?
    Please, write to me to the above mentioned mail.

    Thanks,
    Evgeny

    Reply
    1. ron Post author

      Yes, it does. With the latest version from the SourceForge project page http://sourceforge.net/projects/pfmgr you can import your bank statement in CSV format, for reconciliation purposes. Currently it supports the CSV format provided by Wells Fargo. It will automatically match up the transactions in the CSV statement, highlighting any mismatches or multiple matches. You can then correct the problems, click the Reconcile button, and it will reconcile your bank statement.

      Reply
  2. Gary

    Looks really great. Can you assign categories to transactions? I don’t see it in the screenshots. I’ll have to download it and give it a whirl.

    Reply
    1. ron Post author

      Yes. The categories are called “Income/Expense”. So you can get reports of your incomes and expenses by categorizing your transactions using the Income/Expense categories.

      Reply
  3. Scorch

    Hi,

    I create new user in myPHP Admin
    User: pfm
    Password: 123pFm321

    And now, I got the login page! But after type “admin” on all username and password, I got below massage. Please help…

    Fatal error: Uncaught exception ‘Exception’ with message ‘MySQL Error 1146 Table ‘pfm.pfmUser’ doesn’t exist page: /pfmgr/html/index.php’ in /mnt/disk1/HTTPX/htdocs/pfmgr/html/classes/dao/MySQLConnection.class.php:105 Stack trace: #0 /mnt/disk1/HTTPX/htdocs/pfmgr/html/classes/dao/abstract/PfmUserDAOAbstract.class.php(294): MySQLConnection->executeQuery(Object(PreparedStatement)) #1 /mnt/disk1/HTTPX/htdocs/pfmgr/html/classes/dao/abstract/PfmUserDAOAbstract.class.php(132): PfmUserDAOAbstract->findWithPreparedStatement(Object(PreparedStatement)) #2 /mnt/disk1/HTTPX/htdocs/pfmgr/html/include/requireLogin.include.php(78): PfmUserDAOAbstract->findByUserName(‘admin’) #3 /mnt/disk1/HTTPX/htdocs/pfmgr/html/index.php(7): include(‘/mnt/disk1/HTTP…’) #4 {main} thrown in /mnt/disk1/HTTPX/htdocs/pfmgr/html/classes/dao/MySQLConnection.class.php on line 105

    Reply
    1. ron Post author

      You’ll have to follow the instructions in INSTALL.txt in order to get it running. There really are no shortcuts.

      If you read my previous post, there’s a database schema management system built into the JAX Framework on which pfmgr is built.

      Reply
  4. Richard

    Is it possible to get an exported empty mysql database (.sql) so that I can setup and try this software. I am a windows user running a wamp server. Thanks

    Reply
    1. ron Post author

      First, you’d need to run the “create database” and “grant” commands found in ddl/initdb under the mysql case.

      After that, you’d have to run this command to get the initial SQL required to get the database built out: php phpdaogen/ddltosql.php ddl/*.ddl.yaml

      However, be aware that you would be DEFEATING the automatic schema update mechanism of the JAX Framework (pfmgr is written on top of an old version of JAX Framework) [ http://jaxframework.org ]. So when you update pfmgr in the future, your database schema will be out of date and incompatible with the new version. The ddl/updateSchema script is provided in order to bring the database schema into line with the schema files in the current version of pfmgr.

      Honestly, I don’t recommend going this route. With freely available desktop virtualization solutions like VirtualBox and VMWare, plus freely available Linux server distros like CentOS and Ubuntu Server, there’s no excuse for using WAMP, XAMPP or other substandard LAMP environments which don’t have proper Linux shell and PHP command-line functionality. Just download VirtualBox and CentOS and set up a CentOS virtual server that runs in a window on your desktop. Then install pfmgr into the CentOS virtual server using the instructions in INSTALL.txt. Done.

      Reply
  5. Zack

    I just installed the software on my web server. and I used the phpadmin to create database and user. I’m getting the same error what scorch was getting. I really dont know where and how to run the initdb command to run the database commands. I’m hosting my website on a server that allows php and sql extensions. Please help. I can’t use the default schema as my webserver will put a prefix on every database name i create.

    Reply
    1. ron Post author

      If you don’t have shell access to your server, there’s not much you can do. Nor would you want to, because it would defeat the automatic schema updates when you upgrade to a newer release of the PFMgr project.

      The JAX framework on which the PFMgr was built, was designed to manage the database schema for you, including automatic updates to the database schema as new releases of the project come out. But in order to do this, it requires that you have Linux command-line access in order to run the initdb script at the initial installation, and the updateSchema script when upgrading to a newer version of the PFMgr project.

      Some future version of the JAX framework may provide a web-based way to do the schema creation and updates (I’m also the author and maintainer of the JAX framework). Maybe something along the lines of how WordPress and other CMS systems do it. But for now, it’s strictly Linux command line.

      One thing you can do, which works quite well actually, is to set up a CentOS Linux instance running inside VirtualBox on your desktop. Then just run the PFMgr package inside that.

      Reply
  6. zack

    Can you design a web based finance software that is multi user with role base access?? I need something that is web based? I’m willing to pay for the effort and time.

    Reply
    1. ron Post author

      The pfmgr project is already web-based and multi-user with role-based access. Feel free to try it out. It only runs on Linux though, so if you’re a Windows fan, I’d recommend installing a Linux VM under VirtualBox or VMWare.

      Reply
  7. Natural Honey

    hello
    can you add simple inventory tracking ?
    also can you add simple invoice so we can sell goods and services
    the script has muli user access so it is ready to be simple smart accounting software

    best regards
    Natural Honey

    Reply
    1. ron Post author

      Thanks for your question.

      Actually, the Personal Finance Manager project is only intended to be a checkbook reconciliation and spending tracking package. Inventory Control, Purchasing, Sales and Invoicing, Accounts Receivable, Accounts Payable, General Ledger would be part of a larger Enterprise Resource Management (ERP) package.

      I’ve been developing ERP software professionally since 1987. I do have a new ERP package which is built on the same framework, but it is proprietary and requires a monthly support contract. If you’re interested, contact me at hostmaster at roncemer dot com, and I’ll show you a demo. If you would like to become a customer, the package should be available for new customers within about three months. We are beta testing it at some sites now.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *


two − 1 =

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>