How to Build a Reputation System?

Hi,
I’m trying to create a reputation system in Bubble, similar to those found in online forums. Here’s what I want the system to do:

  1. Reputation Buttons: Users can click positive, neutral, or negative rep buttons to give feedback to another user. Each rep is recorded in a log.
  2. Prevent Duplicate Reps: A user can only rep the same person once, but they should be able to edit their rep later (e.g., change from positive to negative).
  3. Rep Log Display: Show a list of all received reps for a user, including who gave the rep, the type (positive/neutral/negative), and optional comments.
  4. Total Reputation: Sum up all the received reps (positive = +1, neutral = 0, negative = -1) and display the total on the user’s profile.

I’ve created a data type for Rep Logs with fields for:

  • User giving rep
  • User receiving rep
  • Rep type (positive, neutral, negative)
  • Comment

I’ve also made workflows for buttons, but I’m struggling to:

  • Ensure only one rep per user for each recipient.
  • Update the total reputation correctly on a user’s profile.

Any advice on how to set this up or debug it would be greatly appreciated!

Thanks!

You’re on the right track with the separate datatype

Change this to a number field, later if its an upvote you will make 1, if its neutral it will be 0, if its a downvote it will be -1

When they click the vote button have two workflows on the same button with opposing conditions:

Search for Rep Logs:count is 0, constraints
User giving rep = Current user, and
User receiving rep = whatever User it is

If the count > 0 then its up to you if you want to show an alert it exists already, or just delete the rep and update the number again

if the count is 0 condition is true then create the Rep log and update another Rep number field on the User to theSearch for Rep Logs:plus item Result of step 1:each items Rep type (or whatever the -1, 0, +1 field is called):sum
search constraint Receiving user = the user

1 Like