SnapFinance Android Application
The Idea
As a Masters student (and generally as a young individual), I attempt to keep track of my finances as much as I possibly can. To do this, I have developed a basic Excel spreadsheet, which lists my accounts (cash, debit, credit, investments), expenses, and income. Using this spreadsheet, I can budget every month accordingly and attempt to stay within the budgets I set for myself.
One of the biggest difficulties in maintaining these accounts is that in order to have accurate information, every single daily expense must be recorded. It gets to be very easy to fall behind on data entry, especially with cash transactions as I can soon lose track of how much I spent and where.
This difficulty led me to the idea of having a smartphone application that would take a picture of a receipt, perform Optical Character Recognition (OCR) on it to extract key data, and store the information into the spreadsheet.
This page will store as the development notes and documentation while I learn how to develop on Android by creating my first application, currently and tentatively called SnapFinance. Note that there are some applications out there that perform separate parts of the application that I want to create. There are some OCR applications that save memos and e-mails that are scanned into the phone (CamScanner) and there are many finance applications that assist you in keeping track of your finances. There is even an application called Smart Receipts that have actually sold between 1000 and 5000 pro versions and claims to do what it is I want to do, except the developer has not yet implemented the OCR capability. While I'm all for being lazy and waiting for it, I also have wanted to develop an application for a long time and think that I can greatly benefit from having one personally tailored to my liking - so onward!
The Beginning
To begin the creation of my application, I followed the basics of "Building Your First App" from the Android Developer webpages. This got me up and running quickly with an application that displayed "Hello World!". This application was quickly transformed into one that could read in some text from a Textbox and send it to another page through an Intent to another Activity (the DisplayMessageActivity). At this point, I've gained a VERY basic understanding of how Intents and Activities work, as well as how to use the XML files to do the layout of the UI. I desperately want to make a basic proof-of-concept of the OCR capabilities before I continue and so that is the next step.
Optical Character Recognition (OCR)
There are various OCR libraries out there, two of which were quickly pointed out: Asprise and Tesseract. Tesseract currently has an Android library called tess-two that was also used by some classmates in ECE1778 - Creative Applications for Mobile Devices, so I am going with that library as my first attempt. I import the project and make sure that everything still builds properly.
Working the Camera
It's great and all to have an OCR library imported and ready to go, but without a Camera to work with, I can't do much. So my first steps for using the Camera of course is to get to the Android API and read the documentation. What this has me doing is writing a few basic functions in my MainActivity java file, creating a new CameraPreview class, and also creating a new CameraPreviewActivity, which I will use to show the CameraPreview.
As a Masters student (and generally as a young individual), I attempt to keep track of my finances as much as I possibly can. To do this, I have developed a basic Excel spreadsheet, which lists my accounts (cash, debit, credit, investments), expenses, and income. Using this spreadsheet, I can budget every month accordingly and attempt to stay within the budgets I set for myself.
One of the biggest difficulties in maintaining these accounts is that in order to have accurate information, every single daily expense must be recorded. It gets to be very easy to fall behind on data entry, especially with cash transactions as I can soon lose track of how much I spent and where.
This difficulty led me to the idea of having a smartphone application that would take a picture of a receipt, perform Optical Character Recognition (OCR) on it to extract key data, and store the information into the spreadsheet.
This page will store as the development notes and documentation while I learn how to develop on Android by creating my first application, currently and tentatively called SnapFinance. Note that there are some applications out there that perform separate parts of the application that I want to create. There are some OCR applications that save memos and e-mails that are scanned into the phone (CamScanner) and there are many finance applications that assist you in keeping track of your finances. There is even an application called Smart Receipts that have actually sold between 1000 and 5000 pro versions and claims to do what it is I want to do, except the developer has not yet implemented the OCR capability. While I'm all for being lazy and waiting for it, I also have wanted to develop an application for a long time and think that I can greatly benefit from having one personally tailored to my liking - so onward!
The Beginning
To begin the creation of my application, I followed the basics of "Building Your First App" from the Android Developer webpages. This got me up and running quickly with an application that displayed "Hello World!". This application was quickly transformed into one that could read in some text from a Textbox and send it to another page through an Intent to another Activity (the DisplayMessageActivity). At this point, I've gained a VERY basic understanding of how Intents and Activities work, as well as how to use the XML files to do the layout of the UI. I desperately want to make a basic proof-of-concept of the OCR capabilities before I continue and so that is the next step.
Optical Character Recognition (OCR)
There are various OCR libraries out there, two of which were quickly pointed out: Asprise and Tesseract. Tesseract currently has an Android library called tess-two that was also used by some classmates in ECE1778 - Creative Applications for Mobile Devices, so I am going with that library as my first attempt. I import the project and make sure that everything still builds properly.
Working the Camera
It's great and all to have an OCR library imported and ready to go, but without a Camera to work with, I can't do much. So my first steps for using the Camera of course is to get to the Android API and read the documentation. What this has me doing is writing a few basic functions in my MainActivity java file, creating a new CameraPreview class, and also creating a new CameraPreviewActivity, which I will use to show the CameraPreview.