Screenshot of estimates dashboardA while ago now, like Jason, I realised I needed better organisation in my life, from both a personal and business perspective. I don’t consider myself a really busy person, although one thing has made me realise I need to be much more organised: I’ve got a lot on!(detect the slight edgy panic in my voice?).

I guess it all started last September when Khoi and I were discussing our panel for SXSW and he got me started with Backpack.

Putting Basecamp and Google Calendar in your Backpack

First let me say, and I’m not the first to do this, that Backpack it great. Really great.

I had my doubts when it was first launched—how many people thought, ‘well, I’ve got a diary, why do I need this?’—but after using it, first on the SXSW panel organisation, and every day since then, it has saved my bacon on a number of occasions. Couple Backpack with Google calendar for, you know, calendar stuff and Basecamp for those projects which are larger and require a little more client interaction and I have 75% of my organisational infrastructure solved. However, there’s one thing which is missing for me: Invoice and Estimate workflow management.

Keeping track of the business side

I’m sure I’m not alone on this. I’ve had a problem over the last year, which seems to be getting more complicated, of managing the jobs coming in and going out, the estimates and invoices, what’s been paid, part-paid or hasn’t been paid at all, what’s overdue, what’s not. See? The list goes on.

I’ve tried several products, such as iBiz and Studiometry, but they all suffer from the same old problem. Too much functionality and the UI and workflow, to be used on a daily basis, are just too complicated.

Of course, there’s Blinksale for invoice management, which does a great job but is only part of the equation.

Following reading Jason’s post, I was really inspired to just solve this problem myself. I may not be building a web app here, but I can give something a go to solve my problems.

Getting the requirements together

The first thing to establish were the problems. What did I need the software to do? So, I got together this list:

  • List all current and closed jobs
  • Each job must have a job number, client, associated estimates and invoices
  • Create, edit and store all estimates. Give them a status of Pending, Approved and Rejected.
  • Ability to print estimates and invoices using a well designed print stylesheet
  • Saving off PDF’s using the same print stylesheet
  • Create, edit and store all invoices. Give them a status of Paid, Part-paid and Unpaid

The list could go on, but I stopped there.

Understanding the workflow

The next step was understanding my workflow. How do requests come in? What is the process following that request? Again, I went through the same process:

  1. Request comes in (usually by email)
  2. Set up client details
  3. Set up Job and Job number and assign to client
  4. Create estimate and assign to job number
  5. Send estimate to client and change estimate status to ‘Pending’

Then, following my appointment and competion of the work.

  1. Set up invoice and assign to Job
  2. Email to client

Building the thing

So, I started building the thing using Expression Engine which has a couple of drawbacks. The big drawback is the application has two parts: a web interface and a control panel. So, not everything is done on the same screen such as adding estimates and invoices etc. This could be done using EE’s stand-alone edit form, but you would only able to add stuff and not edit and delete (I think). I may look at this in the future and see how I could use it.

Once it’s complete, I plan on doing a more detailed write-up of how I built it using EE. It’s quite an interesting project trying to build an application like this, rather than a website using EE. It’s liberally using the ‘relationship’ fields to save on data input and duplication and has a bunch of custom php in there to work out if invoices are past their 30 days terms.

Here’s a quick grab of where things are at so far:

Screenshot of the dashboard showing pending estimates

Yes, the design looks like Basecamp and a hundred other applications like it. However, there is a reason for this. All of my 37Signals apps, and EE’s control panel all look the same. I use the same tabs, colour ways, links and everything on all of them. I use half a dozen apps to manage my life and business so I’m much more comfortable if they all look the same. There’s nothing more jarring, for me anyway, to switch between apps and have the core design and colourways change.

Your thoughts?

I’d be really interested in your thoughts on this. What systems and workflow do you currently use? Is it more traditionally paper based? Where do you think I could improve on what I’ve got going on here?