Finance Insight

Finance Insight is a personal accounting tool that I built for my own use while snowed-in during a winter blizzard several years ago; it's a tool designed for tracking progress towards goals, making decisions, and forecasting. From the beginning, the tool was built to manage multiple users and with security in mind. I may open this application up for general user registration once I am satisfied with user experience, security, and privacy but for now it's just a hobby project, and I rarely work on it. Here is a screenshot of one of the pages.

The tool was originally a bare-bones MySQL database of financial transactions populated by a simple html + php data entry form. I would query the database on the command line when I had questions I wanted answered. Since then I have built a web interface with fancy, automatically updating charts. I had understood for a long time that finance tools that import data automatically either from CSV or via scraping will lack enough structure to do accurate analytics; banks and other institutions record very little about each transaction in their own records. User involvement in supplementing and structuring transaction data is, at least for now, crucial for having meaningful analytics. Also, popular "automated" personal finance tools seem to get the basic math and accounting wrong, due to not being able to recognize when a user makes transfers between two accounts at different institutions.

The current tool runs on MySQL on the back end. The web interface is built with html, css, javascript, jquery, php, and charts are generated using d3.js (data driven documents). User passwords are hashed using the php function password_hash(). Forms are protected from SQL injection by using PDO and prepared statements. Note that https is enabled by default. Eventually I will set up the user table and transaction descriptions to protect user privacy in the event of a database breach (note how often we hear after major security breaches that user data was stored as plaintext - it's a serious and common oversight).

Back to dimatteo.is