Just the thought of having to track your expenses is budgeting enough

One of the best arguments or at least the one I agree with about having a firearm is because it acts like a deterrent. It might not be the best solution but it does its job. Like a speed limit while people who general don’t care would ignore it most or some of most might follow it. Using the same logic having to manually track your expenses and seeing where your money goes might be a deterrent to overspending if you have such a problem.

In using the many online budgeting options online I finally settled for buxfer which was great for exactly what I needed to do. This relationship lasted for years until I experienced some minor issues and the programmer in me started to itch. So I left the platform and decided to build a solution for myself that fitted my needs. Hence the creation of Purdm.

What is Purdm?

Purdm is a self hosted open source expense manager for your personal finance needs available on web and mobile. It also has an awesome mascot.

purdm mascot

Purdm sets out to solve two main problems. First to create an expense manager that is simple and straight forward to use. It should lack fancy features like projections and just stick to the basic.

Secondly you should be able to record transactions on the go. This is not really a problem with current expense managers but I thought it was extremely necessary to have access to this.

Hence began my journey to create my most favorite side project to date. In the rest of this article I review different decisions that had to be made while creating Purdm.

Providing the user with a clean interface

A sample of PURDM dashboard

The first thing I needed to do was design the user interface. I choose bootstrap as the UI framework because of ease and familiarity. Then I went shopping for dashboards. Eventually I settled on a free one. The one I eventually did buy proved to be unnecessarily complex so I didn’t see the need to use it. It did however provide a great source for design ideas. You can see the UI template I used here. Its called SB Admin 2. In the end it worked the best for me even though it was free.

Having the framework in hand I set out to build the different views for the application. Primarily the application would consist of a dashboard view, accounts listing view, insights section and others. Usually I don’t build the full user interface when doing my side projects because I’m to exciting and I just want to get started but with a little discipline building out all your views first really brings more perspective to what you need to do.

Building the database to track spending

database structure

Nothing fancy hear. We start with our users table. Then we have our accounts table. Then we have a transactions table which is the base of the entire application. Users have accounts and every transaction is attached to an account. Categories filter how our transactions can be represented. There are two tables for categories. There is the basic categories table and then the users categories. The users categories allows users to add their own categories. You can view a partial ER diagram below.

No alt text provided for this image

Connecting the views to our database

preview of some scripts used

The application is built using PHP and JavaScript. I used mostly ajax when requesting data from the server. I used PHP based rendering mostly for static elements and layouts. Any thing that can be updated was rendered using Ajax. This was great because if I needed to reload parts of the page I could quite easily.

What do I love about Purdm?

You mean besides the fact that I created it.(Programmers be coding…) Its self hosted so you don’t need to worry about your own data if you’re the type that does that. This does mean that you need some technical expertise to use it correctly and get it started. In creating Purdm I went for a WordPress style of setup so if your familiar with WordPress you could run Purdm, in theory. I also like that it is very straight forward without being overly simple. You get a bird eyes view of your spending while allowing you to drill down further with little to no issues.

What are some of Purdms’ best features?

There is a Calendar so that you know when you spent money and on what.

No alt text provided for this image

You can access a cute expense breakdown by category showing you where your money is going.

No alt text provided for this image

You always have access to the income vs expenditure chart showing data for the range year.

income vs expediture chart

You can drill down into categories to get more details and compare month to month spending.

category drill down

What about the mobile app. How does that work?

The mobile app allows you to add your transactions and check on your overall spending on the go. Find it on google play here.

purdm google play banner

Any domain you install Purdm on, once you setup your API keys you can get started using the mobile app. The first thing it asks for is your domain, email/username and password.

some of purdm mobile app screens

You can also view your insights using the mobile app and a list of your most recent transactions is available.

What was it like building the mobile application?

Building mobile applications can be pretty complex but the basic building blocks are still very effective to achieve any solution. I mainly worked with activities, adapters and POJO’s. These did the job quite well.

No alt text provided for this image

The bespoke date-picker

I created a special range picker for Purdm. It has two main features. Choose a month or pick a date range. These two options work well to provide the user with different ranges to view their data.

Custom date picker

More about self hosting

Unless simple hosting prices increase I find this to be a very cost effective option. You can set up this expense manager on your own server whether locally or using a provider. You don’t even need a domain although I would suggest you get one or you can use one of purdm.com subdomains. (Click here to find out how). So far I have tested it with Digital Ocean but I will create tutorials and probably images for Digital ocean and other hosting providers. Whats great about this is you control your data. At least to the extent that you control your virtual machine or droplet.

Final thoughts

This is really is one of my favorite projects to date. The quality of design, the application structure, the mobile application all gets me very excited. The UI works well with the type of application and the color scheme is soothing. The application it self is intuitive to use. I use it consistently to track my expenses. What do you think of it?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s