Discourse User Feedback

Do you want your community member’s to give reviews and ratings to other fellow community members? Now you can enable this feature for your community!

Overview

Discourse User Feedbacks plugin allows each user to give a rating and feedback to other fellow community members.

Each user can give feedback to other community members including the admins.

This feature can help the communities that understand their audience’s opinion towards fellow users.

It’s helpful for the communities that offer marketplace type services, etc.

Users can visit User profileFeedback to give their feedback to other users.

The average ratings can be displayed on the user cards, besides the poster’s username on the post and on the user’s profile page based on the site settings.

User Profile

User Card

Screenshot 2021-12-30 at 3.15.06 PM

Beside username on the post

Setup

:link: Repository Link

:link: How to install a plugin

Configure

You can configure these Site Settings:

  • user feedbacks enabled To enable the plugin.
  • user feedbacks allow reviews to allow users to provide their views for others.
  • user feedbacks display average ratings beside username on post to display average user rating beside username on every post of the user
  • user feedbacks display average ratings on profile to display average user rating on user’s profile
  • user feedbacks display average ratings on user card to display average user rating on user card
  • user feedbacks hide feedbacks from user Hide feedbacks from non admin users

:warning: Notice

Please test the plugin before using it to live forum.

21 Likes

Loving this. Any chance to become official? :pray:

5 Likes

I can’t say anything on this It totally depends on the @team if they want to takeover or not.

4 Likes

I have added a feature to anonymize user feedbacks:

  • Only admins will be able to view the ratings + reviews any user got from their fellow members.
  • Normal User can just see their rating for anyone else.
  • Average ratings will be visible to everyone.

This can solve the issue of the rating war between the users and will anonymize the identity of the user who gives feedback.

Please update the plugin and enable the user_feedbacks_hide_feedbacks_from_user setting.

3 Likes

Great plugin as always from Ahmed.

For marketplace type services the plugin should have a restrict to group feature where only set group members can receive reviews.

3 Likes

Thanks @Mr.X_Mr.X

That’s correct, but it will be applicable to only those forums who have restricted #marketplace category to any groups. I haven’t seen any forum with this, but if there’s some user’s who need this, I will add this to the plugin.

2 Likes

Hello! I love what you made. I don’t see a license in the Github repo though, what usage is okay?

3 Likes

Thanks @Ocarune
It comes under MIT license, I’ll add the license in some time, thanks for the reminder though!

3 Likes

Thank you so much! :slight_smile:

3 Likes

Thank you!

Have you considered a dedicated fieldn for a internal reference? This could be used to link to the topic where the item was sold, or simular thing.

1 Like

I’ll bump this just to hear if @Ahmed_Gagan had any thoughts on this?

I would also like to suggest that ${count} has three strings, instead of a single one.

  • No feedback
  • 1 feedback
  • More than 1 feedback

Also, yet another thing:
It would make great sense to have “toggle” on where to show the rating. Let’s say I have the categories called: “I would like to buy X” and " I would like to sell Y". Here I would like to mark these two categories, so rating would be shown in these next to the user, but not in all other categories out of context.

I would also like to hear a bit about how you’re thinking the moderators should delete any feedback(s) which are unwanted? :slight_smile:

Again; Thank you for making this. :partying_face: !


TL;DR would be:

It would be great to see the following improvements:

  • Link-field to internal reference
  • Add “Display average user rating in specific categories
  • Add wordings for zero, one or many feedback(s)
1 Like

Glad to see someone open source this

1 Like

Hi @Ahmed_Gagan

It’s sadly breaking a native Discourse function:
https://meta.discourse.org/t/cant-get-who-liked-a-post-post-action-type-id-2-returns-error-500/223800/2?u=exetico

Are you aware of it? I’m also wondering how a plugin are able to break a native Discourse route.

1 Like

Hi @exetico

I saw a similar functionality in swapd.co forum, but I didn’t got time to add it to the plugin yet. It’s in my roadmap.

I’ll update you once I add this feature to the plugin.

Sounds good to me, but we can allow tl4+admins+moderators to delete irrelevant feedbacks.

Thanks for reporting, I’ll add all 3 options.

Sounds a nice feature, I’ll add a setting where admins can select category where they want to show the ratings.

Thanks for reporting the bug, I’ll add a fix by tomorrow.

Thanks for using the plugin mate :blush:

4 Likes

Hi,

Thank you for the great response. How is it going with both the bug, and the improvements? :clap: :blush:

Is it moving forward?

No changes is found in the repo, but I’d like to ask anyways :slight_smile:

1 Like

Hey @exetico
I am on a trip from last 20 days, will fix it in next 5-6 days

The endpoint which normally returns who liked a post is returning error 500 on our forum.

GET Request:

https://domain.com/post_action_users?id=512345&post_action_type_id=2

Response:

{"status":500,"error":"Internal Server Error"}

We’re rocking:

2.9.0.beta3 (be519d2aec)

By using the “Data Explorer” plugin, our “like”-details is found as expected.

So I’m now wondering if there’s a problem with the latest version?

1 Like

It’s sadly related to:

Rails log

Started GET "/post_action_users?id= 512345&post_action_type_id=2" for <clientIp> at 2022-04-09 16:57:10 +0000
Processing by PostActionUsersController#index as JSON
  Parameters: {"id"=>"512345", "post_action_type_id"=>"2"}
Completed 500 Internal Server Error in 23ms (ActiveRecord: 0.0ms | Allocations: 8877)
NoMethodError (undefined method `feedbacks' for nil:NilClass)
(eval):12:in `_fast_attributes'
app/controllers/application_controller.rb:497:in `serialize_data'
app/controllers/post_action_users_controller.rb:41:in `index'
app/controllers/application_controller.rb:400:in `block in with_resolved_locale'
app/controllers/application_controller.rb:400:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:358:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:202:in `call'

So not related to anything in the main solution.

I’ll jump to the other thread dedicated to the plugin.

3 Likes

Hi @exetico :slight_smile: I’ve moved your bug report over to the relevant plugin topic to hopefully get it in front of the right people. :crossed_fingers:

Edit: Though it seems I did not read it closely enough, and you have already done a similar thing. My apologies for the noise @Ahmed_Gagan :pray:

4 Likes