thinkle / gourmet

Gourmet Recipe Manager
GNU General Public License v2.0
341 stars 142 forks source link

Feature Wishlist for Gourmet 2 #898

Open holocronweaver opened 6 years ago

holocronweaver commented 6 years ago

I've had in my mind a major gourmet development push for some time, but I think a big push would involve abandoning the platform entirely and building out a web-based gourmet that could be easily accessed from mobile, etc. -- the universe has changed a lot since I started this project, which was before the iPhone existed, etc. :)

This quote from @thinkle sums up his rationale for a new Gourmet, which I am calling Gourmet 2: Rise of the Mobile Web.

What features would you like to see in Gourmet 2?

Please post one comment per feature, then vote for features with a thumbs-up 👍.

I will summarize results in a wishlist.

Keep in mind Gourmet 2 may be written from scratch, so pretty much everything is on the table.

Think big!

holocronweaver commented 6 years ago

Mobile app(s)

Perhaps Kivy for multi-platform support? I am willing to help implement this for Android.

holocronweaver commented 6 years ago

More robust and automated nutrition analysis

Similar to cronometer.com or nutritiondata.self.com where ingredients are suggested based on the nutrition database to ensure they are in sync. Using an open nutrition database everyone can contribute to would help to avoid duplicated effort.

holocronweaver commented 6 years ago

Recipe web page scraping

Copying recipes from the web can be tedious, would be nice if it could be automated using a web scraper. My CookBook Online has such a feature using a bookmarklet. Could also take a Zotero-like approach similar to this Python package.

holocronweaver commented 6 years ago

Multi-platform native desktop apps

Linux, MacOS, Windows. I strongly prefer native apps over web apps due to superior performance and usability. I am willing to help implement this. Perhaps use Kivy or Qt?

holocronweaver commented 6 years ago

Python

I think Python remains the best language to implement Gourmet. Accessible, relatively easy to read and understand, lightweight and concise, insanely popular and widely supported, and reasonably performant. (I consider programming language a feature because it determines how easy it is for users to fix bugs, change behavior and add features.)

allenerenee commented 6 years ago

I concur. Native apps are strongly preferred - to the point that a web-only app would motivate me to migrate to another platform (assuming I could figure out how...) I expect I'm not alone.

My coding skills are basically nil, I'm afraid, but I'm willing to help with QA/QC/bug searching as I can.

Related item for wishlist: more comprehensive export options.

The various csv export options are unopenable in LibreOffice/Excel/Access. Which is fine, unless you're trying to integrate your meal planning with your shopping list.

Alternative: an integrated meal planning calendar feature. It is frustrating to plan out 2 weeks of meals in a spreadsheet from my database and then have to turn around and manually add each of them to the shopping list in the database. (The "save your menu as a recipe" only works if you make the exact same patterns week after week, which I actively avoid.)

On February 4, 2018 8:20:51 PM EST, Jesse Johnson notifications@github.com wrote:

Multi-platform native desktop apps

Linux, MacOS, Windows. I strongly prefer native apps over web apps due to superior performance and usability. I am willing to help implement this. Perhaps use Kivy or Qt?

-- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/thinkle/gourmet/issues/898#issuecomment-362957795

-- Sent from my Android device with K-9 Mail. Please excuse my brevity.

holocronweaver commented 6 years ago

Meal planning

@allenerenee desires converting manual meal planning to a shopping list:

It is frustrating to plan out 2 weeks of meals in a spreadsheet from my database and then have to turn around and manually add each of them to the shopping list in the database. (The "save your menu as a recipe" only works if you make the exact same patterns week after week, which I actively avoid.)

Krecipe automates plans meals according to nutrient goals. Could add additional constraint of what's currently in pantry.

holocronweaver commented 6 years ago

More export options

From @allenerenee:

The various csv export options are unopenable in LibreOffice/Excel/Access. Which is fine, unless you're trying to integrate your meal planning with your shopping list.

thinkle commented 6 years ago

I dumped my existing braindump to the wiki here: https://github.com/thinkle/gourmet/wiki/Gourmet-2.0---Web-Based-Version---Brainstorm

The thing that has always thrown me about this move is figuring out how to support it. When I wrote Gourmet, desktop software was king, and all you needed if you wanted to give people software was a platform to distribute binaries and sourcecode, which sourceforge and now github provided.

Most versions of Gourmet that would feel truly modern and do what I want (with ubiquitous access to data, etc.) involve a webserver, which costs money, or an app store listing, which also costs money. I'm not saying these are big expenses, but they're considerations, so a good part of my brainstorm is thinking through how to go to a model that generates enough income to make the effort worth it (or at the very least to prevent me from losing money on the project) while also maintaining the project as free software that others can hack on and improve.

MissLiza commented 6 years ago

I'm SUPER new to Gourmet. Just kinda taking it for a spin to see if it'll fill the role of a kitchen management software when I build my raspi interface (touchscreen, timer, etc). The only thing I could think of to make it better from a non-programmer perspective would be voice controls or an interface with the Google Assistant (or whichever; Cortana, Alexa, Siri, etc)

holocronweaver commented 6 years ago

Voice control

From @MissLiza:

...voice controls or an interface with the Google Assistant (or whichever; Cortana, Alexa, Siri, etc)

I'm curious to hear how people would use this.

holocronweaver commented 6 years ago

Data sync

Sync your recipe catalog on all your devices.

Almost certainly necessitates a client-server architecture.

holocronweaver commented 6 years ago

Web app

A web interface you can use in your favorite browser on any device.

volkerwysk commented 6 years ago

Am Montag, 5. Februar 2018, 21:59:39 CET schrieb Jesse Johnson:

Data sync

Sync your recipe catalog on all your devices.

Almost certainly necessitates a client-server architecture.

Not necessarily. If the receipes are stored in different files (and not one database), they can be synchroizied file-wise with OpenCloud/Nextcloud or similar.

Cheers Volker

MissLiza commented 6 years ago

Voice controls

@holocronweaver

Hands free timer setting, adding to a shopping list when your hands are covered in raw something, etc. I use my phone in the kitchen for these (and other) reasons all the time but I dislike the battery drain and the potential for cross contamination. A dedicated virtual assistant on my counter would be more helpful than my phone.

ranwise commented 6 years ago

I think you need to cut gtk from the project and build a rest-api based on flask \ aiohttp. The site can be made to react and the mobile application to react native

holocronweaver commented 6 years ago

@volkerwysk At least on mobile devices this would not be automatic since virtually no cloud sync service offers reliable automatic sync on mobile. Nextcloud is especially unreliable on this front.

thinkle commented 6 years ago

Agreed. There is an earlier django- based implementation of this approach in git,but I think we need a more substantial rearchitecting. I have never liked react so I'd be tempted to go with Vue on the front end because I like it's philosophy but that's really neither here nor there. If we take the right approach we can build a framework/ backend that can survive changes in js trends or front end approaches.

On Mon, Feb 19, 2018, 6:38 PM ranwise notifications@github.com wrote:

I think you need to cut gtk from the project and build a rest-api based on flask \ aiohttp. The site can be made to react and the mobile application to react native

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/thinkle/gourmet/issues/898#issuecomment-366827643, or mute the thread https://github.com/notifications/unsubscribe-auth/AAi8W1StTGW00yzoeAATAreNJMEIUrRsks5tWgYRgaJpZM4R4zm0 .

micahcochran commented 6 years ago

@holocronweaver

By Web App Do you mean website?

OpenEats2 could be a possibility. It is based on django, but just looking at the interface it would need a fair amount of modification. On the other hand it already has some features present.

jkm48 commented 6 years ago

A few wishes: 1) Android version, preferably using a cloud-based DB so I could access recipes from any of my half-dozen Linux, MSWin and Android devices. I strongly prefer a cloud based DB (or at least let me assign the local DB to a Dropbox folder) rather than copies on each device. With over 400 recipes saved I don't really want a full DB on my cellphone. 2) Ability to set defaults - for example, I would like to set my default encoding to utf-8 since I do most of my imports from my linux desktop system 3) more robust import, possibly by allowing users to insert tags into text files with a text editor before importing them - for example, begin/end ingredient list markers so ingredients with no quantity listed (such as 'salt and pepper to taste') don't get turned into 'instructions' in the middle of an ingredient list. I've found that the web-scraping tool doesn't work very well so my usual import involves copying text from a website into an editor, touching up the text, saving that to a file and importing the file into Gourmet so inserting some import control tags would be simple. 4) ability to flag quantities in instructions that should be updated when multiplying a recipe by some amount (i.e. if the instructions say "add 1/2 cup of the frammitz sauce, reserving rest for later" I'd like to be able to mark the 1/2 to be updated if I set the ingredient multiplier to 2 when cooking a double recipe. 5) Add a copyright field. 6) make the 'Webpage' field a link when viewing the recipe in Gourmet. At present I can't even copy it to clipboard while in view mode, I have to edit the description page, copy the url, then cancel out of the edit and paste the link into a browser. 7) Ability to store >1 picture per recipe. 8) Easy transfer interface to allow copying a recipe from a Gourmet app on my phone to a Gourmet app on my friend's phone via bluetooth. 9) currently numbers in instructions frequently get turned into 'servings'. This seems like a bug to me. 10) Ability to produce a combined/integrated shopping list from several recipes, with a selection step where I could drop ingredients already in my pantry from the shopping list prior to printing it.

natfast commented 6 years ago

Kivy would be nice for mobile. I know I target RaspberryPi touchscreen UI for a kitchen computer. So lightweight is key. Many of the JS implementations are just too heavy for the hardware.

For an incremental step, making it GTK+3 compliant would also be nice.

serpico commented 5 years ago

This might be way beyond the scope of Gourmet or/and useless/overcomplicated for most of the users but... a multi-panel view ( for screens big enough, desktop, tablet ) to seamlessly navigate between recipe, shopping list, a meal plan calendar view, a pantry view, a fridge view, and a freezer view.

My rationale is I often cook in batch, keep a few portions in the fridge and store the rest in a chest freezer, split into plastic container, each containing x portions equivalent to the Yields in Gourmet but keeping track of how many portions are left in the freezer is done via a task reminder phone app.

Few actions I'd use right out of the gate :

As far as I know, in the current version of Gourmet, user can only export/save the shopping list in text or .pdf format, I know I format my shopping list based on how the products are laid out in the supermarket ( like a path ) to avoid having to go back and forth in every corner...I have no idea how to address that in Gourmet...like

@holocronweaver

More robust and automated nutrition analysis

Similar to cronometer.com or nutritiondata.self.com where ingredients are suggested based on the nutrition database to ensure they are in sync. Using an open nutrition database everyone can contribute to would help to avoid duplicated effort.

What about Open Food Facts ? is it "big" enough where you are to make it work ?