Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rate recipes #323

Open
AlexWerz opened this issue Sep 25, 2020 · 13 comments · May be fixed by #342
Open

Rate recipes #323

AlexWerz opened this issue Sep 25, 2020 · 13 comments · May be fixed by #342
Labels
enhancement New feature or request
Projects

Comments

@AlexWerz
Copy link

Is your feature request related to a problem? Please describe.
No!

Describe the solution you'd like
I would like to be able to rate recipes and sort search results and categories by rating.

Describe alternatives you've considered
Adding a rating to the name of the recipe. But that alters also the alphanumeric sorting and overall looks bad.

@AlexWerz AlexWerz added the enhancement New feature or request label Sep 25, 2020
@christianlupus
Copy link
Collaborator

To get an impression of your wish:

  • Should this be only for your personal rating or somehow shared with other users?
  • Should the rating system be something like a grade/point system (0 to 10 points or 1 to 5 stars for ex.) or a textual one (think of reviews)?
  • Do you have an idea how this could graphically be represented to the user? A sketch might help.

Maybe other questions are to come.

@AlexWerz
Copy link
Author

AlexWerz commented Sep 25, 2020

Should this be only for your personal rating or somehow shared with other users?
I am not sharing recipes with other users. So my family would rate a dish and I would add that rating to a recipe. Another possibility would be that all users of the Nextcloud instance can rate a recipe and you can show the average rating.
This should not present all ratings from all users (not like Amazon where you have a rating and a comment).

Should the rating system be something like a grade/point system (0 to 10 points or 1 to 5 stars for ex.) or a textual one (think of reviews)?
I would not use text as it is hard to filter according to text. I would like to use a 1 to 5 stars system with 1 star increments. If you are using a rating for all users you would need an average. Then I would also use 0,5 stars increments.

Do you have an idea how this could graphically be represented to the user? A sketch might help.
I would use Unicode characters. ☆ (Unicode 2606) and ★ (Unicode 2605). Example:
★★★☆☆ would be 3 of 5 stars

If you have more questions feel free to ask.

My thougts
Why not start with a rating system for a single user. Only one rating per recipe. Show 1 to 5 stars, 0 if unrated. Use the stars I mentioned above.

In a second step you could enhance the system and let all users be able to rate. But only show an average rating (with tha approach you will not have to store all ratings seperatly with username).

If needed you can refine the system by allowing every user to rate AND to add a comment to the rating (think of Amazon reviews).

Does that help?

@sam-19
Copy link
Contributor

sam-19 commented Sep 28, 2020

I have created a system like this for another Nextcloud app. I would sincerely suggest using a 10 point system (or five stars with half star increments). Having only five stars, as I did at first, lead to endless frustration between trying to pick between 3 and 4 stars (the most common grades) and ended with almost all recipes having a three star rating, at least for me. And if someone wants to use full stars, they can also do just that. Assigning the grade is simple: first click on a star either assigns a full or half star, consecutive clicks toggle between full and half.

@christianlupus
Copy link
Collaborator

I just found there is a contentRating in https://schema.org/Recipe. This we can use directly.

@sam-19 sam-19 linked a pull request Oct 11, 2020 that will close this issue
@sam-19
Copy link
Contributor

sam-19 commented Oct 11, 2020

I created a pull request for this, so we can work out the details of this implementation.

@christianlupus christianlupus linked a pull request Oct 21, 2020 that will close this issue
@GutHib
Copy link

GutHib commented Jan 22, 2021

+1

Nice idea, and looking forward to it.

@TheMBeat TheMBeat mentioned this issue Jun 5, 2021
@PtolemyIV
Copy link

This would be a fantastic feature - combination of ratings and also the ability to have a "notes" style feature for whenever you cook a particular recipe to record date it was cooked on, any particular modifications made to the recipe and feedback from other eaters

@christianlupus
Copy link
Collaborator

See #8 as well.

@Bugsbane
Copy link
Member

Bugsbane commented Oct 5, 2021

Personally I would use this to have any logged in NC user (all my family) rate a recipe when they tried making it, and then ideally have it display an average number of stars with who rated it.

Eg ★★★☆☆ average rating by You, Fido and Mom, or
☆☆☆☆☆ not rated yet.

If you clicked on any of the stars it would change your rating, then when the mouse stopped being above the stars it would display the average rating again.

@GutHib
Copy link

GutHib commented Oct 5, 2021

Just to chime in on the details of this... I think there is quite a difference between rating your own stuff vs. stuff on somebody elses website. Low ratings are for the powerless - if I had a bad experience and there's nothing else I can do, I leave a low rating or a bad review.

In my own data storage, all I need 5 stars, 4 1/2 stars, 4 stars, and a delete button. Seriously, life is way too short for collecting mediocre recipes.

For me personally, it would also be more useful to keep track on the various cooking attempts and the differences in preparation/outcome rather than keeping an average like it's a big public site. If I gave it five stars but Fido screwed it up, then to me it's still a five-star-recipe (albeit one that is hard to get right).

@Bugsbane
Copy link
Member

Bugsbane commented Oct 9, 2021

In my use case all the stars are definitely needed as it isn't just me using the recipes, I would like to share with my whole family. It may be that I love the recipe (5 stars) but another family member tried it and hated it (1 star). If I'm having family over for a celebration holiday dinner though, I want to know who likes what, so I can plan a menu that the people who will be there all enjoy.

@caemor
Copy link

caemor commented Jan 30, 2023

A shared rating system would be great. Is this currently blocked by #1110?

@christianlupus
Copy link
Collaborator

The ratings need to be stored in the database. Otherwise, it will have to iterate the files in the file system on each app opening. That will be a killer in terms of loading time.

Adding new columns to the DB is generally possible but in the current state more of a hack than a good idea. Each piece of information needs to be migrated to a new DB structure when the DB structure is fixed to comply with the NC dev documentation best practice. This is e.g. needed for #120.

@christianlupus christianlupus added this to To do in UI rework via automation Oct 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Development

Successfully merging a pull request may close this issue.

7 participants