It's no more just an idea. It's been done and migration to 1.9 is in course. Can anyone suggest a new name for this page?
This feature is a game to motivate people to participate in the community. Users are given points for things they do in the site, like writing an article, reading an article, starting a new topic in forum, voting a poll, etc. They also earn points by being popular, like having his/her blogs and articles read and commented. Then the users will be able to see their position in a ranking.
Many people have said that this looks like the Karma described at KarmaDoc. Well, they're different things. I'll call them Karma system and Score system, I hope I'll agree on an appropriate name for both. Check the difference on them:
Karma System | Score System |
Points according to other users rating | Points for every action, including other users rating |
Reflects user popularity | Reflects user activity |
Qualitative | Quantitative |
Subjective | Objective |
Check implementation to see how they can be done in one single implementation. (TODO)
- Users get an amount of points for events related to them
- The amount of point is configurable
- Users are ranked according to points earned
- Events can be repeated or not. For example, earning 5 points for each hour logged in.
The field 'score' will be created on users_users with user's total score, so that it will be fast to rank users.
The table users_score will be created, with following fields:
- user - user's login
- event_id - an unique id for this event, so that user won't be scored twice
- score - the score earned by this event
- expire - expiration time for this scoring. so that users can earn points per 10 minutes in a chat, for example
- tstamp - timestamp of this score
Every time the user makes some scoring action, the event will be given a unique id (for example, read_article_10 if he's reading article with id 10). If there is no event for this user with same event id, or if the event has expired, this new event will be logged and the user's score will be updated. Old events (with age configurable) are erased for performance.
Also the table tiki_score will be created to hold all events and respective punctuation:
- event - the name of the event. In the previous example 'read_article' would be the event's name.
- score - number of points for these events
- expiration - how long, in seconds, before the user can earn points again for the same event. 0 indicates only once.
- category - category, to group on admin
- description - description to go on admin
- ord - order to list in admin
Check /lib/score/scorelib.php on latest v1.9 CVS. It's not being included, I've put there just for having comments on it. The lib works with tables exactly as above. I have an idea of including classifying events in Subjective/Objective, as for easily setting up a Karma only system.
KarmaDoc is the old Karma idea.
The Score system is good for small and starter sites, to motivate new users to contribute. This can also help administrators to focus activity in one or two areas by granting more points to these areas, so that small communities won't get dispersed with lots of tools in the beginning.
The Karma system is the karma system. It's more reliable for, well, measure user's karma in a community. It's really fun! It motivates people to care about community by contributing for it to get better.
I hope there will be one soon 😊
No public prototype yet.
Luis Fagundes
Contact-me at tiki-devel. See the topic "Two feature ideas for tiki" posted on Mon, 09 Feb 2004.
1) |
15 Aug 2024 14:00 GMT-0000
Tiki Roundtable Meeting |
2) |
19 Sep 2024 14:00 GMT-0000
Tiki Roundtable Meeting |
3) |
Tiki birthday |
4) |
17 Oct 2024 14:00 GMT-0000
Tiki Roundtable Meeting |
5) |
21 Nov 2024 14:00 GMT-0000
Tiki Roundtable Meeting |
6) |
19 Dec 2024 14:00 GMT-0000
Tiki Roundtable Meeting |