Invoke

Bottled water, snacks and energy drinks define a hackathon. If you plan to stay awake for 24 hours, you are bound to need them sooner or later. However, hackathons aren't just all free swag and tired coders. They also provide an environment for great ideas to materialize.

I took part in TAMUhack 2019, my first college level hackathon, with a couple friends. I gained a lot of experience in the process of creation by working with others and presenting a product.

Inspiration

"The One-Stop Invoice Accounting Solution for Small Businesses Everywhere"

We began with the idea of helping small businesses and alleviating some of the more tedious tasks that they often undertake. Soon we landed in the great horror that is taxes and accounting, and so we decided we must help. As there are already a lot of "Tax Return" softwares, we decided to lean toward creating a pseudo-accountant that the small business can use all year, as they accumulate invoices from their many vendors and contracts.

The Goal

Invoke allows you to take a picture of an invoice with your phone, which is then sent securely to your computer, where a native application generates useful graphs and charts for the user, allowing them to get a better sense of the state of their company and their expenses.

How We Built It

Invoke really starts with our multi-platform capable phone app written in Ionic 3, which gives the user a simple, yet sleek UI from which they may take photos and submit them for processing.

This processing begins with the image being sent to Microsoft Cognitive Services's OCR Computer Vision, from which we get the raw JSON data and text of the invoice. This data is then handed securely off to your computer, with the help of Google Firebase and the Google Cloud API, at which point, a native python application takes in this raw data, gathering the pertinent portions of each invoice. Then the data from all past-and-current invoices is used to generate useful graphs and charts, with the help of the "matplotlib" and "pandas" python libraries.

Challenges

One of the biggest challenges we ran into is that a lot of these applications, from Ionic, to Firebase, to Azure, don't play nice with each other, meaning that we, as programmers, had to steer around a great many number of obstacles and trample our way through many hoops. Additionally, when utilizing larger technologies, like Mobile App Development and Cloud Computing/Storage, you are often faced with a long build times and vague error messages.

Accomplishments

  • Getting the Ionic app to be able to communicate with the firebase server
  • Creating a python script which could recreate the table structure observed in the inputted invoices
  • Using a complicated mix of AJAX and REST API calls to communicate with Firebase and Azure

What We Learnt

  • A large portion of the tasks that small business accountants face is cataloging and reconciling invoice charges (and preparing for an audit).
  • Quickly and accurately receiving and documenting invoices is instrumental to the health of a company.
  • We had to learn (basically from scratch) all of the frameworks and libraries we used for this project, as we utilized these tools to overcome the problems and challenges we faced.

Future Development

Going forward, we are hoping on making the product more stable, add functionality, and increase real world applicability.



This project was posted on Devpost as a submission to TAMUhack 2019.