views:

246

answers:

2

I've been creating a reddit-like site based on a very good article about popularity algorithms. I think I'm going quite well, the site's looking good and the implementation is working.

What I'm missing is a karma or reputation algorithm. Much like SO, I have in mind implementing certain privileges for the best users.

Do you have an idea or reference in how to do it?

Thanks.

EDIT
I'm having some issues in finding out these points:

  • How to give karma? If some user has 100 karma points and upvotes a user with 10, how many points are awarded in contrast with an upvoter with 1,000?
    The same applies with the negatives.
  • How can I prevent spammers creating 1,000 accounts to upvote one account and award, say, 1,000 karma points to gain access to moderation privileges and create a mess?

Thanks again, sorry about not explaining good enough.

A: 

If you need a stackoverflow like site, you could always look into purchasing a stackexchange from Joel and Jeff. As for references to reputation or karma algorithm, I'm not really sure what you mean by 'algorithm' in this case. Are you talking about discussion of the amount of karma gained for certain actions vs the amount required to perform certain actions or...?

Daniel Bingham
+1 why the downvote? Looks like a perfectly good answer to me.
Bob Kaufman
@Bob, where is the answer? The OP asked for guidance on how to implement it. Saying purchase a site that won't give him access to the source code, and then asking what he meant by his question.
Brandon
@Brandon - good point.
Bob Kaufman
+2  A: 

The Karma system seams pretty straightforward:

  1. you make yourself a karma table
  2. you let users upvote / downvote other users
  3. the karma tables keep track of the user's karma

Now, putting it into a seamless and very user-friendly experience like StackOverflow has... well, that is a totally different issue. But some points to retain:

  1. don't let new users down or up vote
  2. make a penalty for down-voting (it will keep some from slamming a user with no reason)

Edit (on your new update)

To avoid spammers from creating multiple accounts and so on I would lean on what SO has done, don't let new users, say less than 50 points users, up or down vote another user. Those users will only be able to get points by human behavior - participating in the forum - and they will be given their Karma by their peers. That should make it

I am leaned on keeping fixed points per vote. An up vote by whoever will always get the same amount of points as a down vote. Make the line proportional and not exponential and power the community as a whole without overpowering a small number of individuals.

Give power users, Big Karma Guys the possibility to moderate, re-tag, edit and so forth other users.

But all I'm saying... is exactly what Stack Overflow has done. The maths behind it are not that complicated, what's really hard is to deliver the polish a site like this has.

Karma to Jeff and the rest of the team.

Hope it helps!

Frankie
Thanks. I'm not having problems so far with the architecture but from how an user or group of users can make bad use of privileges.What I'm thinking of are shown in the OP.
metrobalderas