-
Notifications
You must be signed in to change notification settings - Fork 45
Node ratings
We would like to add the ability for the community to rate nodes in the flow library so that users and clients of the site can view or request nodes that are of high quality, or filter out nodes that are unproven or rated poorly by the community. This is in addition to, and not a replacement for features to block or report rogue or destructive nodes. (As of this writing reporting is already done, blocking nodes is on the way.)
On slack/flow-library we discussed various approaches and rating systems:
- binary votes - liking or staring similar to staring a github repository
- up vote and down voting like stack overflow
- star-rating system e.g. a rating between 1 and 5 stars
A vote count does not indicate whether people who are interested in a node dislike it since there is no way to count those that have not voted for it by not liking
it. There was some discussion of counting likes in a given time, but this doesn't easily address this issue
Up voting and down voting allows users to dislike a node. We could display this in a similar way to Stack overflow (up/down breakdown) but it isn't clear this is as familiar to users as a star rating system.
Providing a scale star rating, for example, between 1 and 5 stars allows us to capture the rating from a given user for a given version of a node, and summarize this information in a familiar way such as is done in the Google app store.
After some discussion and a quick UI mockup of a star rating for nodes, we decided to go with that.
The current rating of a node will be displayed in the Node details page as a number of stars, a numeric value of the rating to one decimal place, and the overall number of users that rated the node, for all versions. In the future we may provide a way to display the rating for a specific version.
The user will need to log in to rate a node. Once logged in a rating widget will appear in the action area of the node details page. This widget will allow the user to rate a node between 1 and 5 stars, or delete their rating.
Node ratings will be captured in a ratings collection. Each document in the collection will store the following;
- user
- module
- version
- time
- rating (1-5)
Note that there will be no comments or review text for a node since this require more moderation.
The user will always rate the latest version of a node. The user may rate a node more than once, but if the user rates a node again, the previous rating will be replaced by the rating for the current node/version.
Using this collection, various queries can be made for node ratings including the overall rating of a node for all versions, or specific versions. Initially only the overall rating will be shown as mentioned, but in the future, it should be possible to display more detailed rating information such as the rating of a specific node version.
This information will be supplied with detailed node information provided to display the existing node details page.
We will add the total rating of nodes on the flows page so that they are more visible and we can sort by rating. To do this we'll want to keep a copy of the total rating in the flows collection, and keep in mind that the node document is replaced regularly when the download statistics are updated.
API will be provided so that clients such as Node-RED or other applications can request nodes that are filtered by author, rating or some other means. This API will be designed and finalized once the rating system is in place.