Grocy: web-based, self-hosted grocery and household management
grocy.info
grocy.info
One of the options to solve the data entry could be: - good quality automatic scanning of receipts (not only individual barcodes) from shops using OCR possibly supported with image recognition for double-checking (can happen that products will be mis-labelled or without quantities, etc) - when ordering on-line, the receipt should be available, so should be also much easier Yet, not always one will have a meaningful receipt available...
Solved the data entry and being able to predict own's supply needs would be also great to have a up-to date management of the inventory. Here are even more challenges on the tracking of the available goods at home, where these are and how many items (and in what state, expiration date, etc) would require most probably implementing different solutions from IoT (connected cameras, sensors, etc.).
Then, having a connected home with own groceries supplies under control, one can then automate further the shopping process with feeding-back the information about own's demand to on-line groceries one is subscribed to. This can enable customer subscription plans, and for retailer keeping a possible continuous flow of goods. This could be really really useful especially for upcoming months, when it seems like we are expected to spend a bit more time at home rather than usual, hopefully not fighting in the local shops for the last rolls of the new white paper gold.
The other big challenge I never resolved was how you'd account for e.g. using 1/4 cup of flour out of a bigger volume. Or taken to its extreme, cooking oil. How do you know how much your 'splash' is? You can't predict the remaining volume without a lot of fiddling to measure it and that defeats the purpose.
In the end, I opted for manual databases too, but they're pain to keep up-to-date. I still think there's a lot of value in a database for all-or-nothing style ingredients, but it was enough to deter me. I'm glad someone is less lazy.
Definitely. Or, even, just taking some snacks to another room, and later placing it back to an 'intelligent' cupboard, let's say. In extreme cases, one may need be under a constant tracking at home.
But, simplifying, another option may be to use an improved voice assistant when cooking. One would need then to interact with the VA to note and confirm the stuff used. Improved VA, in essence, would try to 'understand' the activities and interact, instead of being a passive one (as most of currently are), that one needs to say commands. This would require adding it access to camera and maybe other sensors available at 'smart' home. Definitely a lot of interesting and challenging problems to tackle not forgetting too about the user privacy part.
In the household setting, the most realistic system are we r would be to keep track of the addition (purchase/replenishment) ołl the containers/packages of each product and subtraction when the entire container is used-up and discarded. Obviously, this system would require maintaining at least one spare container for each product and reorder replacement when the remaining inventory count is 1 or whatever number of stock of a specific product one would want to maintain. Partial expenditures (splashes or table spoons of cooking oil, pinch of silt, a number of eggs from the pack, cups of sugar or flour from the container, a serving of cereal from box etc.) of the product from the container wouldn’t be tracked. The inventory would only be updated when the container/package has been fished up or purchased and added to the home inventory. For those items which one wishes not stock more than one container or packaging, a solution would be to label such containers, so that you can re-order the product (via Alexa or Google Assistant or Siri) when the remaining amount of the product is below certain level, depending on the product. I.e., you wouldn’t stock more than one container of milk or eggs. But when you got below half full, you would know to reorder. If certain products are used exclusively by the kids, they should learn to talk to Alexa or let parents know that they would soon run out of the product (they would learn if they want to have the product available). If one would follow this system of continuous replenishment, it might be unnecessary to keep the track of the available stock/inventory. But updating of the inventory database could be done automatically, using designated commands to the voice assists which invoke IFTT engine action sequence in which the product is ordered or added to the weekly order or shopping list and updated in the inventory database as being ordered. Further, the delivery of the orders could be automatically detected by the IFTT email analysis extension, but for accessing the order in the notification and updating the inventory of items delivered in a given order, one would need to write a bit of the code, for each of the suppliers, i.e., Amazon, Jet, Target, Chewy etc. The high turnover items with no reserve (fresh groceries) do not justify keeping track of their inventory, just remember to reorder them or add to the shopping list and complete the recurring task of doing grocery shopping, of which the voice assistants and personal devices could be reminding you about.
I think the key is the meal planning. The recipes need to bulk manage the inventories and list as meals are prepared and upcoming. The recipes would need to be cleaned up and normalized.
On the other end of the system, I'm hoping to implement a way to bulk load recipes into grocy, using the open source recipe-scrapers[0] library.
It turns out that with an Amazon Prime account and shopping at Whole Foods the entire history is available down the the SKU, quantity, and date. Discovered this when going to order a delivery for the first time in the COVID-19 outbreak - aside from the generic shopping selection, we can also pick from our own previous purchases.
I haven't checked if there are other methods to access the data (e.g., with the app, or some history list), but there's the potential for at least some screen-scraping, and maybe they'll make the history available in a downloadable file if we pester them? It'd certainly help both this app and making their stores a bit 'stickier'.
Also, costs would simply explode making the whole solution a non-starter for a lot of households.
$(".icon-button-children").each((index, item) => ($(item).click())) // expand all items
$(".LinesEllipsis ").each((index, item) => console.log(item.innerText)) // record the stuff
My solution would be to read frames from a smartphone's camera until a barcode is detected. This can be achieved with eg Firebase ML, on-device. If a barcode database lookup gives a product, put it on the in/out list. If not, send the frame to a product recognition vision service. This could be Google Cloud Vision AI, but they don't give you access to their product set that backs Google Lens.
Finally, provide controls to adjust the number of items on the in/out list
I thought about OCRing supermarket receipts too but these differ so greatly in layout etc. per country I figured it's not the way to go
Edit: Problem you run into as not all of this can be done on-device is privacy concerns of coursem just my thoughts on what interface I'd like to have
https://world.openfoodfacts.org/
https://product-open-data.com/
I just tested Product Open Data using the barcode from a can of Coconut Milk from my cupboard, and it returned the correct product (including a photograph) and the name of the brand and their owner.
Edit: updated to add Open Food Facts, given that Open Product Data appears no-longer-maintained
Do you know of any alternative data sources?
Edit: since writing these comments, I've learned that Product Open Data may be unmaintained[0].
[0] - https://discuss.okfn.org/t/can-we-resurrect-product-open-dat...
I did try Open Food Facts[0] which correctly identified the same product for me -- and allows anyone to enter missing products, a bit like Wikipedia.
User /u/homarp mentions[1] an app which can integrate Open Food Facts with Grocy.
People usually shop at the same places and the same things, so they could identify the products in the receipts once and then only update the new ones. Also,You could crowdsource it.
Meats and vegetables would still be a challenge though, but perhaps object recognition could help with that.
Fridges are already overpriced for what even the fancy ones can offer, I imagine we're not there yet to incorporate multi-camera vision systems with beefy AI processors at commodity prices yet.
I've always liked the idea of this sort of thing, but the benefits of using something like this almost never outweigh the costs as compared to just eyeballing the pantry and winging the meal planning on short timescales. The system starts to become the point of the effort rather than just a tool to better achieve household goals.
Unless you're dealing with a substantial household or some sort of communal living environment (lots of roommates, half-way house, dorm) or doing a lot of entertaining, the benefits vs. the effort just leave these things as interesting experiments.
And I do see value in experimenting this way. I am an implementation consultant for actual ERP systems and data entry compliance is a real problem in the corporate world, too. There tends to be benefits to the data entry problem there, but the benefits tend to accrue a few degrees of separation from where the entry work takes place... so those that do the work often don't understand the need or importance. So if you solve some of the data capture problem in a small, low risk household environment, you may be able to apply the lessons learned to larger business systems. For example the more you could capture the data "in flight", like cameras capturing the information as you're putting recently bought groceries away or pulling them out to cook, do that well enough and now the benefits start to be larger in the home... but maybe you can see avenues to reduce the data entry burden in the warehouse, or the data entry processing desks, etc.
But on it's own, using the same old data acquisition patterns as boring old corporate ERP, you're better bet is probably just pen and paper.
Sounds a bit like GTD and other systems :/.
I wrote something very similar to this a couple years ago for our household. It runs on a raspberry pi and uses a barcode scanner and when we go shopping we scan everything in and then scan things out as we use them. We live far away from town and shopping trips are rare, big all day events. It's easy to forget to scan things out and then things that don't have barcodes like vegetables are hard to track so we don't bother. Manually entering it all in and then remembering to remove it while cooking is too much trouble (we tried).
Edit: I noticed a few people have signed up and are kicking the tires. Please let me know what you’d like to see built for this thing and give feedback in this thread. At the top of my list is: (1) a phone app, (2) better onboarding (3) more fields for quantity, units, custom, etc. (4) attach photos to items, (5) messaging/chat/threads for each item so people can coordinate better on inventory, (6) one-click to “create a posting to sell an item on Craigslist/etc” for getting rid of a thing and, (7) a way of loaning items to friends and showing them what’s available for loan.
In brief; with thingybase you create an account, invite family members or co-workers, then add containers and put items in them you’d like to track. You can print labels and stick them on boxes or items that you scan via QR code with your phone.
If you’re using an iPhone, make sure it has AirPrint so you can easily print labels from your phone.
To scan labels, I just use my iPhone camera, tap on the link, and the webpage for the item opens.
- Frequent use
- Infrequent use & stock needed
- Infrequent use & stock not needed
The first category I wouldn't worry about: you know how much you have stocked due to frequently using it, so just jot it down on a simple shopping list as you feel more stock is needed. Both short and long shelf life items can be placed here, you know when you need more sugar or toilet paper, or when something you use frequently might go bad soon.
The second category would be very good to put in a system like this, complete with expiration dates. These might be emergency supplies and medications, things that are easily forgotten about but shouldn't be lacking at any time. Keeping track and being notified of expiration dates would be pretty important.
The final category is personal choice. Since you don't need a stock of it, then it's non-essential. You could place it in a system like the second category, or you could just throw it on a shopping list when it's running out like the first.
Other features could be useful though - The list of batteries could be nice. House tasks as well.
We had started down the track of building a basic version of this for our ski club using MS "Power Apps". Our basic process is: 1. Pre-season: estimate requirements based on previous years and do a few large orders with various suppliers for delivery to coincide with the annual food lift (we can't drive all the way to our club). Primarily this is meat and non perishables such as tinned/packaged items, toileteries and cleaning products. 2. Every few days during the season: perform a stock take of what's on-hand in the club. Send to the catering officer. 3. Catering officer orders according to his/her assessment of requirements. Mainly this will be perishables such as fruit/veges, eggs, bread, milk but later in the season may include other items 4. Items are delivered to common stock room and carried up the mountain by club members. Items are checked off the order list provided by the catering officer and added to various storage areas (fridges/freezers, store room, kitchen pantry etc).
Based on a quick run through the demo system I think grocy will meet our requirements for managing consumables.
Additionally club members staying on a particular night are assigned duties by the lodge leader e.g. breakfast dishes, vegetable prep, cooking dinner. We may be able to use the "Chores" function to help with that.
Personally for home use I would not use this because it would not be practical for our family.
Regarding an additional feature: I would recommend looking at Cozi which we use for a shared family calendar which is really valuable for us. I imagine it would be fairly trivial to add that feature to Grocy.
I'll let you know how we got on with the club. Thanks and hope that helps.
I'm all about freeing mental bandwidth, but if you can't remember whether or you bought a piece of salmon yesterday, or if you can't be fussed to read the expiration date on a milk carton--adding "extreme attention to minor details" and "tedium" to the mix is not going to help.
The right idea here is optimizing restaurant workflows to minimize food waste/deal with seasonal availability/delivery schedules/etc./etc. Take that and slap a nice frontend + tier 1 tech support on top of that? Baby, you got a stew going.
Personally, as a pedant, I actually find this really useful for my current, home situation. :| thanks
I've been using an app called Cinnamon to handle grocery shopping. The general idea is similar: define a bunch of things you want to keep in stock in your pantry. Every two weeks before a shopping run I do a sub-five minute scan. The app groups by category, which usually helps keep it fast. Anything I'm low on swipe left and it's on the buy list.
In the grocery store, swipe left again as you buy and it's in the cart. Swipe right for 'next time.' (After a certain amount of time, anything in your cart is presumed to have moved back into the pantry, and anything in next time moves to buy list). For multiperson households, you could split the buy list construction from the acquisition.
I guess the key realization here is that data entry is simpler if you only check before planned grocery store runs, and if you can predict how much you need on hand to last between shopping runs. For toiletries its a pretty quick 'do I have an unopened one still?' For food I know some people use meal planning but I just keep stuff on hand and wing it -- spices keep for quite a while and meat freezes fine.
It's not like an overkill of shopping list, it's more of a small scale inventory management.
I'm surprised that Amazon hasn't exposed more of their ERP to the consumer. For example: they know what they have shipped me, so they could manage the expiration dates for me ("subscribe and save" is a much more blunt instrument). They could combine scanning when something needs to be reordered with scanning as you cook to manage recipe, nutrition, and supply levels all at once. If they know you buy diabetic strips they could change recipe recommendations or what macronutrients are reported.
Not too mention the amount of features.
And the design seems like 10 years old.
Sorry, dont' want to be rude. But... I'll pass.
I'll come back when every single pasta am eating will be automatically tracked and re-ordered by a camera "à la" Amazon checkout-free store. Or when everyone in the house will have a chip in the throat and know everything we consume in the house.
Now, I use a combination of Todoist, IFTT and google home. "Hey Google, groceries, add Milk". Done.
Perfect while cooking. No phone, scanner or any other input device needed.
Grocery Input (easiest):
- Receipt Scanning and OCR - Easiest as people don't change supermarkets and groceries too often, so identify once the item in the receipt and it will be always recognized.
- Bar Code Scanning - Also possible but too much work to scan each item, and some items don't have a code.
- Visual Recognition - Video Camera or periodic photos of the grocery storage, hard to do.
- RFID tags and portals - I dream that one day barcode will be substituted by RFID tags, then it would be feasible to have a portal wherever you keep your groceries.
- API - If any supermarket offers that sort of thing for receipt data
Grocery Update/Usage (Hardest):
- Recipe usage - By the estimated usage of every recipe you make (like Grocy tries to do), but that doesn't cover everything that is not on recipes (like cleaning products)
- Visual Recognition - The same as above, if it can recognize groceries going in, it can recognize groceries going out
- RFID tags and Portals - The same dream as above
- ML - By the frequency of your product purchase, a machine learning model might be able to predict when you should buy a new item.
But yeah, even if you can simplify the first part as your post describes, there's still a lot more work to maintain the data beyond that.
(Personally working with "out of home" logistic solutions.)
Edit: mistypes.
https://github.com/aindilis/free-life-planner
https://github.com/aindilis/free-life-planner#a-few-screenca...
Just imagining the frustration of trying to perfectly angle your camera to scan a can of beans in your dark cupboard makes me want to toss my phone against a wall.
Introducing Grocy: easily find a missing product in your fridge,bathroom or an underground bunker. Always know what's expiring next.
I used to have a really neat device called the Hiku. It was essentially a WiFi-enabled hockey-puck sized scanner, with a microphone for voice recognition for items without bar codes, and a UPC database. Sadly they went out of business a few years ago but their app still works (not sure if new users can sign up for it), and is great for shared shopping, e.g. yesterday I was shopping and I could see my wife add items to the list in real time, as well as cross them out.
My main challenge is that I downsized to a much smaller apartment, and a lot of our dry groceries have to go in plastic bins that are shoved in dark corners, so it's hard to know what we have or don't have, leading to duplicated purchases and also wasted food when it expires.
One challenge is the absence of a good universal UPC/EAN database. I tried one with one item from the bin (a box of some obscure knock-offs of Meiji Chocorooms), and when the phone scanner finally managed to get the item right, the online DB identified it as a Disney Princess doll, so it seems UPC/EAN is so badly managed they can't even avoid duplicate codes.
Finally data entry of expiration dates is going to be too cumbersome. A better approach would be to have some sort of of statistical model that estimates the shelf life from the product descriptions, e.g. 2 years for canned goods. Less precise, but more manageable, it could show alerts like "check how much longer this can of tuna has left", and if still has some ways, you could enter the precise date only then.
https://blog.majid.info/organizing-with-delicious-library/
Sadly I don't have anything that streamlined for groceries.
However this could be useful for Airbnbs management, open-spaces with kitchen, and also that new trend of young independent people living together but sharing a kitchen. All these cases need more accountability.
My favorite app is listhero. https://listhero.de Fast, simple and secure. Each list can easily be managed for adding new items, checking them off the list or recovering an item from a "recent items" (done/purchased). There's nothing too fancy here. The great feature is how fast the spa is.
But the list app is just where we share the info. It's our shared process which works best for us.
Everything on the list is grocery shopping related except for three lists: 'meals', 'pantry' and 'freezer'.
Could it be fancier? Could managing our meals automatically add items not in Pantry to our list? Maybe but those systems always seem too complicated and we've tried several (most recently 'plan to eat' which we paid an annual subscription). Getting the shopping right is paramount for us. Raw speed of the UI is the best feature of ListHero.
The Meals list is the heart of the process. We have 23 meals on there. If it's time to shop we can quickly decide on a few meals, check the pantry and freezer and then just add items we need to baking, grocery, meat, etc..., almost always by clicking an item from the 'Recent Entries' section.
If we were feeding larger groups of people with a restaurant or a college meal coop where we shared the cooking and managed volume orders I'd want something fancier that managed meals and ingredients and shopping a bit better.
But for my wife and I this relatively simple works great. Most of the recipes are in our heads. The list app helps us to manage a shared mental model. We enjoy our kitchen heartily.
For example, say five or six neighboring households decide to distribute the shopping chore. One person goes to the grocery store, or COSTCO, returning with staples for multiple households.
Disclaimer, my info is purely anecdotal.
We'll see what happens during the pandemic, that's definitely thrown a wrench into my low-packaging shopping.
I use frog tape and a sharpie. After a year+ I'm still on my first roll of frog tape.
If you really want to go zero waste you could with a some sort of color coding system like bread clips use.
I want to give this a go and see if I can do better than I do with spreadsheets.
Called “standard pantry”
To be necessarily negative, this sort of product has appeared countless times. It fills a need that people just don't have. I have four kids, a wife, a dog, a skinny pig and a bearded dragon. I can internalize shopping lists, as does my wife. It is incredibly rare that we even send reminders to each other of things. The idea of creating and managing an inventory system is just a complete non-starter.
Having a standard pantry which is filled with regular ingredients, but minimally packaged, marketed, etc... would result in a lower waste footprint for the environment to boot.
Further, I want to have single-use-plastics reduced as much as is possible. So, it was based on a more sustainable packaging model.
- Families (arguably the people who would use this) probably won't use this. It's too much time overhead for minimal gains.
Don't sweat it.
Also, HN!=YC. I assume you meant you applied for YC?
It's an obvious idea like all the others. We're 2 years from a viable implementation.
Is there a way to set up lists for different stores and different households? For example we live in a building with mostly retirees who are not going out. So we're doing their grocery shopping and delivering it. Managing receipts from different stores, keeping lists separate and then doing the math later to see who owes what is a pain.
It's not a long term pain, but thought I'd ask. :)
Is this app compatible with Mono on macOS? It seems like it’s Windows/Linux only which rules out using it at home :(
https://en.wikipedia.org/wiki/Honeywell_316#Kitchen_Computer
I think you need to start with that and there has to be incentives built in as well as full 2 way integration with the major online grocers.
{
id integer
product_id integer
note string
amount number
row_created_timestamp string
}
Do you know if there are clients for Instacart (and/or other food delivery services) available?