Mobile

Receipt Scanning Expense Splitter

A shared expense app that reads a photographed receipt, extracts the line items, and lets a group assign each item to whoever ordered it. The debt simplification algorithm and the OCR correction interface are both more interesting than they sound.

Difficulty

Intermediate

A small team, or one strong student willing to learn something new.
Effort

1 semester, 2 students

Deliverables

5 to ship

3 optional extras

Suggested stack

React NativeTesseract OCRNode.jsPostgreSQL
A suggestion, not a requirement. Swap anything for what you already know.

What you should ship

  • Receipt capture with perspective correction and OCR extracting line items, quantities and totals
  • Correction interface for fixing misread lines, since OCR on crumpled receipts is imperfect
  • Item level assignment to group members, including shared items split proportionally
  • Debt simplification reducing all pairwise balances to the minimum number of transfers
  • OCR accuracy measured on at least 50 real receipts, reported per field type

If you have time left

  • Automatic tax and service charge distribution proportional to each person's items
  • Multi-currency support with the rate recorded at the time of the expense
  • Recurring shared expenses such as rent and utilities

The problem

Splitting a bill evenly is unfair when one person had a starter and two drinks. Doing it properly by hand at the end of a meal is tedious enough that people give up and split evenly anyway.

What you build

Receipt capture and OCR, a correction interface, item level assignment, and settlement.

The algorithm that makes this a computer science project

Debt simplification. In a group of six, everyone owing everyone produces up to fifteen transfers, and the minimum set is usually far smaller. Reducing the graph to the fewest transactions that settle all balances is a genuine algorithmic problem and the part to write up properly.

The realistic view of OCR

Receipts are crumpled, thermally faded, inconsistently formatted and often photographed badly. Perfect extraction is not achievable and designing as if it were produces an unusable app. Build the correction interface as a first class part of the flow rather than an error path, and measure accuracy honestly per field.

How to evaluate it

Fifty real receipts, hand labelled, with accuracy reported separately for line item text, prices and totals. Totals matter most because an error there is the one users notice.

Scope warning

No payment integration. Calculate who owes whom and stop there; handling money brings regulatory questions that do not belong in a student project.

Ideas and guidance, not finished projects

These are project ideas and scoping guidance, published free for students to use as a starting point. I do not build, write, or sell final-year projects, and I do not complete coursework for anyone. Take an idea, make it yours, and build it.

Not sure this one fits you?

I help students pick an idea that matches their skills and their deadline, then scope it down until it is finishable. Guidance only, never done for you.

Get guidance
Work with me

Stuck on something specific?

Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Every session is free; a few slots open each week.

Follow along

New writing, resources and project ideas land here first.