We drew our main inspiration from the idea of "what simple thing in your day-to-day life is really annoying and could be automated?" We all agreed that we never actually know our gift card balance and when we go to use it, it's more of a guess and check kind of game with the balance. We aimed to make an app that would solve this issue by taking two simple photos and receiving the balance off of them.
What it does
Upon opening the android app, the user will be prompted to take two pictures: the front and back of the gift card. It then sends these pictures to a Python program that reads all of the text from the gift card using Google's Tesseract Optical Character Recognition (OCR) engine. Then parses the text to find out the company the card is for, the card number, and the pin-number (if there is one). Once it gets this information it goes to the appropriate website, trawls through the website data filling out any fields necessary and finds the official balance value. Once it has this it outputs it to the user on the app.
How we built it
We used a Python wrapper for Google's Tesseract OCR to do all of the image and text recognition, and all of the "back-end" is written in Python. We used a Python wrapper for the Selenium webcrawler/driver API to perform all of the browser-based actions.
Challenges we ran into
The file transfer between the mobile application and the PC-based script was challenging due to the decision to use sockets for file transfer. Additionally, we ran into some problems with Android Studio while trying to capture, save, and use the pictures we needed due to factors such as default picture resolution preventing the use of data structures like bit-maps. We were not able to get around this issue by the end of the hackathon. However, both systems function well independently.
Accomplishments that we're proud of
This is our first Hackathon for all three of us, and we are extremely proud to have successfully completed our project, despite a few caveats.
What we learned
Since this was our first Hackathon, we learned how to better prepare for future hackathons. We agreed that next time we should aim to have our idea (or list of ideas) planned before the hacking starts and make sure that what we want to do is compatible across the software we want to use.
What's next for EasyGift
Finish the mobile application to properly gather the card data, then expand the plethora of cards that EasyGift can analyze.