Case Study: A simple invoice tracker

A practical desktop app built to automate the tedious and error-prone parts of freelance financial admin.

This project started from a simple idea: when you have a point of friction in your own workflow, build a tool to fix it. I built this app for myself to turn a tedious, error-prone chore into a simple one-click process.

The problem

Like many freelancers, I found myself in a repetitive, manual loop every month: open a folder of PDF and Word invoices, copy the details (invoice number, amount, date), paste them into a spreadsheet, and then manually track payment status. It was a tedious, error-prone chore that was a poor use of my time.

The challenge

The main idea was to build a simple, private desktop application that could automate the entire process. The automation is a two-step process: first, I created a "patterns" feature to match an invoice's filename to a specific client, automatically filling in their details. Second, the app gets a bit "smart": it opens the PDF or DOCX file and searches for common keywords like "Invoice no.", "Amount due," or "Invoice date" to automatically find and extract the key data.

Key Features

Beyond the core automation, I added a few other key features to make the app genuinely useful for financial tracking:

Crucially for me, the design essentially gamifies the process of getting paid. The act of adding a new invoice is no longer a chore; it's a satisfying feedback loop that lets you instantly see the results of your work on the dashboard and the statistics screen

Invoice tracker main screen.

Pragmatic trade-offs

This was a personal project, so I made some very conscious decisions to prioritize function over form and solve my own problem as efficiently as possible.

The outcome

In the end, what I have is a simple tool that turns a tedious monthly chore into a quick, automated, and even enjoyable process. It eliminates the kind of manual data entry that's prone to typos and headaches, and for me, it's a good reminder of how a small bit of automation can make a big difference.