receiptmanager / receipt-manager-app Goto Github PK
View Code? Open in Web Editor NEWReceipt parser application written in dart.
Home Page: https://receipt-manager-app.readthedocs.io/en/latest/
License: GNU General Public License v3.0
Receipt parser application written in dart.
Home Page: https://receipt-manager-app.readthedocs.io/en/latest/
License: GNU General Public License v3.0
I recorded my screen on the Android app to show what's going on. I downloaded the apk from here. Maybe I'm not doing something correctly. It takes nearly 45 seconds to stop loading.
I opened up Postman to see what the API is up to and here's the response with an uploaded png with the key of "image":
https://10.0.0.10:8721/api/upload/
{
"storeName": null,
"receiptTotal": null,
"receiptDate": "null",
"receiptCategory": "grocery"
}
The server is running with instructions from the receipt-parser-server readme on Docker with
docker pull monolidth/receipt-parser:latest
docker run -p 8721:8721 monolidth/receipt-parser
And I had to add a directory in the server Docker container for /app/data/img
to fix an error.
But further inspection of the container shows that it did OCR the images:
root@c1e3b968b0a7:/app# ls data/txt/
receipt_2020-11-30_143843.txt receipt_2020-11-30_144826.txt receipt_2020-11-30_151504.txt
receipt_2020-11-30_144445.txt receipt_2020-11-30_151113.txt snip_20201130145614.txt
As I'm writing my Issue here I'm discovering more.
So I forked the repo and rebuilt the server Docker container with a new config.yml ...
...
It's been a few hours now and I made a few changes to ReceiptManager/receipt-parser now. I found that a regex wasn't matching lines correctly and a normalize()
function needed another string function to properly split lines and not literally every character.
Anyways... The mobile app still didn't add any receipts as shown in the video. It did, however, fill in the name of my grocery store correctly, which was neat. If I'm missing something please let me know!
Add a button to test connection to the server. If failed, spit out the cause of error and/or error log if requested, e.g. certificate not trusted, cannot resolve address, etc.
Hi,
Any chance to add an option to change the currency ?
Thanks
Hi, I am interest in this project and I would like to know when will the IOS flutter app will be release?
Now, the app is internationalized which means that it support various of languages, currencies and date formats.
However, if an language is missing, please request here.
I only speak 3 languages fluently and any help from native speakers is appreciated.
Supported languages:
English (GB)
English (US)
German
You can help me if you translate the language strings, if you are native speaker. Create a new arb file in lib/l10n
. Copy the us_US.arb in the new arb
file and translate the corresponding language.
Notify me here or send me a pull request.
Thanks in advance
Hi all.
When building the project I get this error.
FAILURE: Build failed with an exception.
* Where:
Build file ':\Application\android\app\build.gradle' line: 58
* What went wrong:
A problem occurred evaluating project ':app'.
> path may not be null or empty string. path='null'
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 1m 49s
Exception: Gradle task assembleDebug failed with exit code 1
I then got this fix, by commenting the these line in Application\android\app\build.gradle
which works.
// signingConfigs {
// release {
// keyAlias keystoreProperties['keyAlias']
// keyPassword keystoreProperties['keyPassword']
// storeFile file(keystoreProperties['storeFile'])
// storePassword keystoreProperties['storePassword']
// }
// }
// buildTypes {
// release {
// signingConfig signingConfigs.release
// }
// }
I hope it will not alter the functionality of the app.
Regards.
When selecting English in the settings, it changes, but after switching to another tab, it automatically switches back to german.
Same thing for the debug option. I turn it off, but it automatically turns on again.
Android 11 aosip.
First, congrats to your first release! And thanks for providing the APK to end-users for easy access! ๐ ๐คฉ
To not bloat your repo unnecessarily (each new version would mean a growth of ~25M), I'd suggest you attach the APK to releases/
instead (when you edit a release, Github lets you add attachments). That way the APK remains available for everyone โ and potential contributors have "less to clone" ๐
Another weird idea: I'm no Android developer, but I've heard proguard can be used to eliminate unused stuff from the build. This feature might help you reducing the size of the resulting APK, so it might be worth a try.
All the best for your project!
See issue: #8
How feasible would it be to add an option to the client app to save everything to local storage (or cloud storage, e.g. OneDrive) rather than to a self-hosted server?
For many users, self-hosting adds a number of challenges, both in terms of computer literacy and hardware investment. Unless the server requires significant processing and/or storage space, it seems like many users would have the room to store their receipts on-device. If they want to access their receipts from another device or have it otherwise centralized, there could be an option to sync to 3rd-party cloud servers (or even just sync across devices with Syncthing).
Thoughts?
Would be more user friendly if after the server processes the receipt, we can see the results as well. In the future it will be useful for reinforcement training and correcting mistakes.
For several versions now (since v1.0.1), versionCode is stuck on "2". Please remember increasing this whenever you make a new release โ else existing users won't ever receive updates, as Android considers the releases being "identical".
I don't know where you specify that, as details in your repo here are contradicting each other:
pubspec.yaml
says version: 1.0.2+2
โ but versionName in the APK is 1.0.3app/build.gradle
claims to get the versions from Flutter, and thus gives no details itself (no idea where Flutter takes them from, I'm no dev)AndroidManifest.xml
gives no clueCould it be you override these values at build time, using command line parameters like --build-name
and --build-number
? In any case, you might wish to check with eg. How to set build and version number of Flutter app at StackOverflow, which discusses how to do it, what might go wrong and why.
Would be more applicable to add and manage the store names on the app rather than the server as they will change with time. In the future these can also be synced/imported from Grocy.
I checked out this wiki section for How it works and found some typos
- unfortunately GitHub doesn't support pull request for these wikis yet :(
Here's my corrected version (and I'd probably shorten "application" to "app"):
What I'm missing here is information about which properties of the receipt are saved.
Since it's not specified I assumed all - including each individual product and price - but then I read your medium article and noticed that just the key properties are saved. I also noticed that nothing happens when I press on a saved receipt in the "Expenses overview" so I assumed the app's not meant for that "drill-down".
Maybe in order to make this more clear, point 3 could be changed to something like this:
3. The server tries to parse the receipt (date, total, store name) and sends the output (as json response) back to the application
On the other hand I just noticed the property "receiptItems" in receipt_server.py. So I'm assuming that you did already think about including the individual products but didn't implement that feature yet due to missing time...but I don't know :D
Would be helpful to keep track of some common real-life receipt issues. Although It might be better as a Github issues so each issue can have its own thread to discuss on.
Group the different possible connection settings, and have a dropdown/radio buttons to choose which settings to use. So far the options are:
Hi,
at the moment I added only 2 different categories. If a category is missing please tell me here.
Supported categories
health
grocery
I will update the post. If an new category is added.
Hello,
Many thanks for providing this app. I do like the idea very much.
is there any way to obtain csv or json of the analysed receipt - e.g. on the backend server?
Hello,
data cap's are a problem some of us encounter quite often. It would be nice to have the app cache the pictures and upload them only on WiFi (better yet, ask before uploading with mobile data). (:
Enjoy your Rockstar.
Simple as that. On the server side you could serve some basic info of the server to check via json API if the location is a receipt-parser server or not.
Would be more useful if we can manually adjust the focus and exposure of the camera. Otherwise you can get overexposed white paper. Sometimes there is a document settings on the camera app, but I'm not sure if it's the app or if it can be used externally.
My updater just sent me a warning: the new v1.1.6 introduces some proprietary components requiring the AntiFeatures NonFreeNet
and NonFreeDep
with my repo โ while being a show-stopper for inclusion with F-Droid.org should you have planned that:
Offending libs:
---------------
* Firebase Data Transport (/com/google/android/datatransport): NonFreeNet
* Google Mobile Services (/com/google/android/gms): NonFreeDep
* Firebase (/com/google/firebase): NonFreeNet,NonFreeDep
Was that intended โ or accidentally dragged in by some dependency? In the first case I'd ask you to reconsider: proprietary components taint your app, it's no longer entirely FOSS now. In both cases I kindly ask you to get rid of those libs again. Until then, I'll have to flag your app with the two mentioned AntiFeatures โ and the โญ in my app-listings will be lost automatically. The "before-state" will be restored once those libraries are gone again.
As your app deals with sensitive data (finances), this combination further is a show-stopper for my repo as well. So should the move have been intentionally, and you want to stick to it, I'll have to remove your app from my repo unfortunately ๐ข
My guess is this is for "upload notifications" mentioned with the release notes โ as I see the app now requests the C2D permission. May I suggest taking a look here for alternatives? You could instead use UnifiedPush โ which supports multiple notification systems including FCM but, to my knowledge, not require using proprietary libraries in your app.
I set up the server using Docker, installed the app on my phone and entered the IP of the computer the server is running on, along with the API token the server gave me.
I can select an image in the app and hit upload, which does nothing. I can manually enter the store name, receipt total, date and a category and hit submit, but no data from the receipt is ever extracted.
What's this app supposed to do? I thought it would parse the image but it doesn't do anything with the image at all. Is it even possible for the app/server to extract the prices of individual products or does it only look for a total?
I'm really sorry if this is all explained somewhere and I was just too blind to find it, but this really confuses me.
Add receipt tags
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.