Yesterday I started working on a webapp to manage shopping for the flat, and today I pretty much finished it. Screenshot!
As I said yesterday, the supermarket has new restrictions on how shoppers can move through the aisles to try to stop them bumping into each other. There is also a restriction that means groups aren't allowed, only one person can have a trolley. This means that each shop now takes a significant amount of planning.
My webapp makes this much easier. I can add all the items we usually buy, along with their aisle and price. I can add items to the list and give them a colour tag to describe who wanted those items and if they should pay money back for them. The total amount of money is totalled, and as you go through the shops you can click items to check them off the list. And the list is sorted by which aisle the item is found in.
It's completed built on websockets, which means that everyone can load the app and see the exact same view as each other, and every action is instantly displayed on all devices. The items and shopping list are stored in SQLite so they persist between loads. In my opinion it's just really cool.
The only build tools and frameworks I used for this were Pug and Sass, which means no React, no Flux, no webpack, no Babel, just stuff that I've written.
Since I spent most of the day and most of the night working on this, I didn't leave myself much time to write this post.
Code will be on GitHub when I'm happy with it. If you really wanted to go to my GitHub profile for some reason anyway, check out mkx-browser which is similar in a lot of ways.
Maybe some day I'll put this on the public web with a system to manage multiple accounts and multiple stores. I bet other people would find this useful...
All I have to do now is put in all the items that we'll be buying frequently.
I tried to see if there was some webpage or API that showed the prices of items or specials, but there doesn't seem to be. There's the mailer, but that's in PDF form, and I really don't want to somehow run OCR over it and extract meaningful information, so I just won't. Static prices it will have to be.