CVS edit link for aismail

I want to commit the "node_relevance" module, developed as part of my job as a software consultant for Development Gateway Foundation (www.dgfoundation.org). It can be used in scenarios like:
- show me the most "interesting" Organic Groups for this user (I have provided a node_relevance_og sub-module for that)
- show me the "recommended" downloads for me, given my history of downloads
It doesn't display anything by itself, but provides fairly good integration with views for the data is tores.

It stores how "relevant" a node is to a user, and provides APIs for easy manipulation of this value. Other modules which use the API have their internal logic for computing relevance and only use it as a storage that integrates with Views. For Views integration, we have built: relationships (bring in a user's/node's statistics), arguments (given a set of nodes, bring in the statistics linking the user from URL to those nodes), and sort handler (sort items by relevance, ASC/DESC).

In node_relevance_og, the example module, the relevance of an OG to an user is computed as follows: the number of user posts in that group. It is updated in both real-time and in batch mode. For initial population of the schema I recommend running cron.

Significant features of the module:
- integration with views
- clean CRUD API with caching
- node_relevance_og which works off the shelf and it provides nice statistics about OGs

I would prefer not to include ready-built views in node_relevance_og, because I believe that features (drupal.org/project/features) is really the way to store views.

CommentFileSizeAuthor
#1 node_relevance.tar_.gz4.52 KBaismail

Comments

aismail’s picture

StatusFileSize
new4.52 KB
aismail’s picture

Status: Postponed (maintainer needs more info) » Needs review
avpaderno’s picture

Issue tags: +Module review

Hello, and thanks for applying for a CVS account.
I am adding the review tags, and some volunteers will review your code, and point out what needs to be changed.

As there are already other modules that serve a similar purpose, may you report more details about the algorithm used to find the nodes with more relevance?

aismail’s picture

Hello,

This module's purpose is to offer a platform for storing relevance data, and to easily display the stored data using Views. It can be integrated with any module that computes a node's relevance to a user. Thus we can get all modules who do that to store their data in a central, flexible storage (that's one of the goals). Also, it doesn't force you to compute the data in real-time. Basically, it de-couples storing relevance data from computing it.

To my knowledge, there is no such module available.

node_relevance_og is just a really simple example implementation of a module that computes the relevance of an OG to an user. But for example, one could also use recommender API or any other algorithm to manipulate the data stored by this module.

Hope this clears it up,
Andrei

avpaderno’s picture

Looking for a project with a similar purpose, I found Recommender API (http://drupal.org/project/recommender), for which there is also a module for integration with Organic group (http://drupal.org/project/similargroups).

There are also other modules that provide blocks to show relevant nodes basing on the node currently view (http://drupal.org/project/relevance, http://drupal.org/project/relevant_content, http://drupal.org/project/similar); they don't expose an API for other modules to used it, though.

aismail’s picture

Hello,

If you have a different, custom statistic to implement for your site, it is very hard to re-use one of the modules in order to do it! This is where our module really shines, and not only can you store the relevance data easily, but you get free visualisation with Views as well. By using it, you concentrate on the algorithm, what's really important to you, and let us handle the rest of the details.

All the modules you mentioned concentrate on computing the data, while ours concentrates on storing the data and displaying it, aiming to convince other module creators to integrate with it via our API.

Andrei

avpaderno’s picture

Status: Needs review » Fixed

Thank you for your contribution! I am going to update your account.
These are some recommended readings to help with excellent maintainership:

You can find more contributors chatting on the IRC #drupal-contribute channel. So, come hang out and stay involved.
Thank you, also, for your patience with the review process.
Anyone is welcome to participate in the review process. Please consider reviewing other projects that are pending review. I encourage you to learn more about that process and join the group of reviewers.

I thank all the dedicated reviewers as well.

Status: Fixed » Closed (fixed)
Issue tags: -Module review

Automatically closed -- issue fixed for 2 weeks with no activity.

avpaderno’s picture

Component: Miscellaneous » new project application
Assigned: Unassigned » avpaderno
Issue summary: View changes