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.
What it does
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 we ran into
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 that we're proud of
- 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 learned
- 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.
What's next for Invoke
Going forward, we are hoping on making the product more stable, add functionality, and increase real world applicability.