Inspiration

"Something convenient?"

As a team, we have heard many stories as well as experienced going Dutch with our friends but forgetting soon after to pay one another or be paid by one another. This resulted in unnecessary additional expenditure as well as difficulty in tracking one's true personal expenditure, making it more difficult for one to plan one's finances. The additional inconveniences of losing receipts also make tabulating our expenditure even harder. Thus, we sought to develop an application that allowed one to easily record and track our expenditure in the most convenient way with the least notetaking and calculation.

What it does

"Typing everything in..? :/" "Nah, we've got OCR. :)"
  • Go Dutch allows users to go Dutch easily by capturing, processing and storing data from their transactions from meals with their friends.
  • Users can use our application that employs Optical Character Recognition (OCR) to scan their receipts and extract the prices of individual food items as well as the total cost before splitting the bill between the parties involved simply by tapping on the extracted prices and the contacts of the parties involved.
  • Instead of only allowing users to manually input data, we wanted to empower users with the convenience of the usage of OCR to make this task even simpler than before.
  • Parties involved are contacted through the user's contact list and are notified with an SMS even without being a user of the application.
  • In the case where the bill is split in slightly more complex manners such as exact values, manual input of the costs can be done.
  • This allows users to keep track of their expenditure while keeping track of which of their friends have yet to pay them back for a meal on a particular day.

How we built it

We employed the use of OCR to digitally analyze and convert receipts into text files. We found that Tesseracts as an OCR Engine was not sufficiently trained to recognize the unique fonts typically used in receipts. As a result, we trained the OCR Engine ourselves to be better suited to read receipts. We then used Wit.Ai to detect the relevant information and wrote a Python script to filter through the text.

Challenges we ran into

One major challenge we ran into was obtaining an open-source OCR engine, let alone one with sufficient accuracy. As such, this resulted in us having great difficulty in training Tesseract to increase its ability to detect and read receipts. This problem was especially prominent when Tesseract had to attempt to differentiate between the alphabet 'l', the numerical value '1', and the symbol ']'.

Accomplishments that we're proud of

We were able to learn how to use and train OCR as well as set up our own FTP as a temporary data storing method for the prototype in the short span of 24 hours while producing a satisfactory UI for our intended application.

What we learned

We should be tenacious in what we do, pursuing excellence in the greatest depth and greatest breadth despite our limitations. On top of that, understanding our own limitations and embracing our strengths allowed us to shape our project to each other's strengths, fully maximising the potential of every member. We were organized and clear on our shared goals from the beginning and we learned how important it was as we had a very smooth time together, hacking, eating and just enjoying each other's company. We should also not belittle ourselves and each other. :)

What's next for Go Dutch

EVEN MORE CONVENIENCE!!!

1) Wit.Ai with Natural Language Tool Kit (NLTK):

To parse information to clearly and easily obtain accurate details such as the location of the food outlets, clearly distinguishing different portions of the receipt more quickly and effortlessly, employing machine learning in the process to allow the application to continue learning as it is used more and more regularly, making it more intuitive for the user.

2) 3rd Party Applications for electronic payment:

(Such as Paypal)

To allow instantaneous payments between payees and the users (or vice versa), eliminating the need to handle cash, making it even more convenient.

3) 3rd Party Applications for push notifications:

(Such as IFTTT and PushingBox)

To prompt the payees so that users do not need to do so personally. This is especially useful in the event that payments are not made promptly, allowing quick and easy reminders to be sent to every payee individually.

Built With

Share this project:

Updates