It happens far too often that you'll be out with a group of friends and the time will come to pay the bill, but you get just a single list of all the items anyone bought. Then there's often no better way to work out who pays how much than to pass the bill around, so each person can tot up their picks. This is inconvenient: there must be a better way. Receipt splitter solves this problem.

What it does

Receipt splitter is very easy to use. Take a photo of a receipt or bill, the app will scan the photo and extract the items, prices and quantities. Each person can then select which of the items on the receipt were theirs, interactively. Once the bill is settled, you can record your spending as a Monzo receipt, with your specific purchases. This makes the administrative aspects of eating out as a group much less, so you can concentrate on spending time with your friends.

How we built it

Receipt splitter sits upon on a few key foundations. The optical character recognition (OCR) that enables the receipt processing, is powered by Microsoft Cognitive Services. On top of that, the backend server runs on Microsoft Azure (using Flask and MongoDB). The app itself is a mobile-first web app, built with the latest web technologies. The receipt recording is built with the Monzo API, so you can keep fine-grained track of your purchases. What's more, you can even log in with Snapchat!

Challenges we ran into

Interacting with a collection of APIs, several of which were still in (private) beta, was tricky at times, as there were rough edges that hadn't been worked out yet. In addition, the project we were working on was technically challenging, as receipts do not take a standard format and are often not of a crisp quality. However, we felt we really managed to pull together a nifty and useful app by the end of the hackathon, and one that has real potential to be a go-to app for anyone to whom this problem sounds familiar (which we imagine is most of us!).

Accomplishments that we're proud of

Despite the aforementioned challenges, we built an app that worked just as we envisioned, and one that looks smart and performs well. Developing an idea that really has potential for more than a single weekend is hard, but we think we pulled it off (and we hope you'll agree!).

What we learned

None of us had experience with any of the Azure services, nor any of the APIs that we integrated with our app. So while we were comfortable working with the languages we chose, the tools were entirely new!

What's next for Receipt splitter

As we've said, we think this solves a real problem (and one that, shockingly, we couldn't find anyone do quite as well as our idea). We already have a working prototype and with a little more polish on the rough edges, this is already close to being an invaluable tool.

Share this project: