We're high school students, so we don't have any money. However, one week one of our members was home alone, so he was given some allowance money to make it through the week. In the excitement of his newfound freedom, he bought ingredients for recipes, ate out at the best restaurants, and treated his friends. He literally ate his way into financial ruin. The problem? His obliviousness to his spending habits. That's where Innata comes in.
What it does
Essentially, what Innata does is it helps you keep track of your financial history by scanning and saving your receipts This data is then plotted on a heat map and line chart, giving the user powerful visuals which contribute a better understanding of what the user is spending on as well as the where/when. We hoped that this app would help users be more financially aware of their spendings.
How we built it
This project was mainly built in node.js, express, and swift. The node.js and express were used to create the back-end function such as connecting to the server and making sure the client receives his/her finances. Swift was mainly used to build the UI, organize purchases, graph the purchases and connect the back-end to the front-end. One of the main frameworks used in in this project was the Tesseract framework. The Tesseract framework provided the image to text/integer translation to make the rest of the features work. We also used the Google Maps API geotagging to provide the location. Like we mentioned before, we didn't have any money to go around and buy things. We couldn't make purchases and get receipts. This is where the Nessie API comes into play. By using the Nessie API, we were able to mock the purchases and get the necessary data for the app to work. In addition, we created mock receipts corresponding to the mock purchases so that when we take a picture of them, the app can pull data and demo a successful purchase.
Challenges we ran into
One very huge problem we ran into was the speed and accuracy of the Tesseract framework. Initially, the Tesseract framework scanned text very very slowly. Sometime, it would take 60 seconds scan a sample receipt, and more than often, the output was very messy. We aimed to fix that by using a newer version of the framework using cocoa pods. However, it gave us many more errors. As for the back-end, connecting the Nessie API to the server was a relatively simple task. However, we ran into many errors with the root. However, with time, patience, coffee and a lot of debugging (yes we barely slept), we were able to fix many of the problems. Tesseract ran faster and scanned documents more accurately and at the end of the day, while the code wasn't perfect, we had everything run relatively smoothly.
Accomplishments that we're proud of
Despite all the obstacles that came in out way, we were able to accomplish most of what we wanted to do while having a great time; which is the point of a hackathon.
What we learned
Lessons we were able to take away from this hackathon include the fact that there will be things serving as an obstacle trying to prevent you from getting ahead. Instead of giving up or starting over again, try to find a way around it. For example, in our iOS app, there were files that were lost | | replaced when we pushed to git at the same time. We lost a large portion of our work. However, we didn't restart the project. Instead we worked together to solve the problem. In the end, all our files were recovered. But while we were recovering the files we added some really cool features. Another lesson we learned is that good teamwork is extremely crucial; especially when time is pressed. We learned to distribute the work and communicate with each other, especially since back-end and front-end had to talk to each other.