Knowledge management system based on peer review

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

Project information

Project page on drupal.org: http://drupal.org/project/peerreview
Student: Dario Battista Ghilardi (ingo86 on d.o, ingo86 on g.d.o)
Mentor: Greg Knaddison (greggles)

Current status:
Theming and making patches to dependancy modules.

Description

This proposal is about the development of a new system that enable users to manage opinions in an advanced way. It should become the evolution of bulletin boards (forums) and it will be developed to replace them. It's highly based upon a peer review system.
Original discussion here: http://groups.drupal.org/node/20098

Project schedule
- Create the karma system adding the ability to rate every content or comment -> June 7
- Extend the karma to threads and comments -> June 15
- Create the panel to setup the preferences and the number of points to be inc/decreased when someone do a specific action. -> June 25
- Put in a queue a post that is duplicated, offensive -> July 1
- Create community stuff content -> July 13
- Search and order stuff -> July 20
- Restrict users permissions and create basic roles that has to be integrated with the settings panel -> July 27
- Join and fork of threads -> Aug 2
- Testing and docs -> Aug 17

31 july 2009
Sorry, I forget to update this page for a long time. So, here's what I done.
- Two plugins for flags: the first to add points when someone mark as accepted an answer, the second to remove karma when someone mark as offensive an answer or question.
- One plugin for user_karma to add multiple amounts of karma when a specific action is done. It's configurable by an administrative interface integrated with user_karma.
- A patch for vup version 1.x.
- An install profile to easily build the system.

I am making a theme for this system and I'm working to add some features to vup v.1.x while 2.x is not ready.
Finally, I need to add some lines of documentation.

Some features are not included because the starting project idea was very very big and it can't be developed only in this three months. This is not a bad thing, I can freeze the code, which has dependancy from other modules that needs working, and concentrate myself on closing bugs. Then I will work to add new features.

By the way, the system is almost complete.

30 june 2009
Started the creation of the install profile. Inside this i wanna add the correct permissions.
Talking with lut4rp that is overhauling the vote up/down module for this gsoc we decided to meet in the next few days to speak about its integration in the peer review system (actually i'm using the old vote up/down module).

29 june 2009
Here is how default roles works inside peerreview.
Every user is inside one karma based role. While his popularity is growing, he become member of the appropriate karma based role. Every role gives him the ability to do something, a special permission. The most his karma is high, the most permissions his role have. This is a very important implementation detail and I would like to talk about it here.

26 june 2009
I though about adding new roles directly on install for my user_karma_peerreview module but then i decided that it was not a good idea. People may want to develop their peer review system without using my roles and my specific settings.
So I decided to develop a new function inside my plugin settings page that adds the new roles, to make people able or not executing it easily.

16 june 2009
I have finished the user_karma plugins creation. Now i have a karma assignment per action done by users. It's three different plugin, one for voting, one for offensive post (with flags) and one for accepted answers (with flags). Nodes are concatenated with RIAT module.
Now it's time to develop karma_based roles!

10 june 2009
I have created a new plugin for user_karma. Now i can set the amount of karma that a user can receive or lose if someone votes plus or minus. Settings are in a tab of the user_karma settings page. I have no dependancy over other user_karma plugins, just mine is fine.
I have solved another problem: now with an EclipseGc not yet released module called RIAT i can have parents and child nodes and everyone could be commented. This is a very important thing for my system!

02 june 2009
I have this things to do now:
- add to user_karma the ability of grant a different number of points for a + and a -.
- Make the site structure more like a forum. This means that nodes are connected to other nodes and comments are simple comments
- Add a preset of roles and permissions that make this system quicky installable and that grant abilities while karma grew up.

19 may 2009
I'm looking around for karma modules. I have to calculate Karma of user A using points. Point increases when user B vote with a + on a content or a comment posted by A, points decreases when someone vote - on a content or comment posted by A.
Points are not only related to users but they are related to content too. I need a module that do this stuff and is flexible enough to port this system to content too, just when i've finished karma for users.
There are multiple solutions, after looking around for a while I had to decide comparing two solution:
- extend userpoints module
- create my own module extending the voting api

Here is the comparsion of the feature I need:

Userpoints:
- Points go to users while rating content (good but I need to change the behaviour, points here go to user A while he post something, not when user B rate user A content's)
- Points for posting node (settings permit different point value for different content type)
- Points for posting comments (settings permit different point value for different content type)
- Points expiration (not used in my module but maybe useful in the future)
- Rules integration

Voting API:
- It's on RC2 stage (not so good but it's great to help that project finding bugs, rc is not so bad as beta 1 however)
- Hooks for calculation of votes
- No stuff that I don't need (it's just an api)
- Total calculation available
- Integration with action module
- Integration with views
- Possible integration with vote up/down Gsoc 2009 project
- Full control by code over the stuff I need
- No limit to add votes to users or content or comments or both at the same time

Looking this comparison I'll probably use the voting API.