Covid19 has forced a paradigm shift for many of us when it comes to our purchasing... in particular groceries. Both a curse and a blessing, shopping for groceries on Amazon has become the new normal for many as the ballooning of Mr. Bezos' wealth is a tribute to. As is often the case when I shop, I like to know what I've paid for an item in the past, as it gives me somewhat of a bearing on the pricing of something I'm currently about to purchase (again). One would think that with everything already being online such information would be easily available... alas, it is not so. There may be many reasons for this, no least of them being to leverage even more power over the consumer. Being an Engineer my first thought was to simply "engineer" my way to a solution.
Problem: Not easy to know how much I paid for an item before.
Solution: Write some software to fill in the gap!
Turns out that Amazon doesn't make it so easy, likely because it's not in their interest to...
That was actually 9 months ago! Wow. Anyway, something prompted me to revisit the idea (maybe the frequency at which I continue purchasing from Amazon in the midst of a Pandemic that shows zero signs of ending any time soon). So last week I picked up the torch again on this problem in particular. And I'm happy to say that I've come to a pretty solid working solution in spite of the difficulty and complete lack of the powers that be, making our own information readily and easily accessible.
Enter Solution: LOE
LOE (pronounced LOW because after all those are the best kind of prices) and an acronym for Less Or Equal thus the logo. LOE is made up of a Chromium Extension which in real time provides that critical information we talked about earlier while you are shopping on Amazon, a native desktop app (via Electron) which is used to parse Amazon invoices client side and upload that information to the LOE service, a Vue.js web account portal and UI, and finally as just mentioned the LOE API service which is build on top of Node.js and web sockets à la Socket.io. Oh, as well, it's installable as a PWA so that you can also use the app in conjunction with the Amazon shopping app by sharing from it to LOE on mobile. See it in action...
The desktop app still leaves much to be desired in terms of visual appeal so I will save doing that for later. The primary purpose of the desktop app is to run Playwright which does the actual data gathering all client side so that the users Amazon client credentials are never required. The user authenticates with Amazon directly and thus the only data that is shared are strictly Amazon invoices and prior order history which is parsed client side, the parsed data being uploaded to the backend for indexing.
Edge Add-ons Link: https://microsoftedge.microsoft.com/addons/detail/ggpmndmjelbgjcjanbpdaiigfeacgbji
Chrome Web Store Link: LOE - Chrome Web Store (google.com)