Design document

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!

Drupal Module "Directory"

Greg Knaddison (greggles), Matt Kelly (MattKelly), Michelle Cox (Michelle), Chris Johnson (chrisxj)

Keep in mind this is just a rough draft comprised of dialog between the above people, so far.

I suggest we try to plan the features in several phases. The completion of features in the first phase would be the point at which we first release it for public use. I think it would be a good idea to have some plans for future phases before we start so that we don't make decisions in building the first phase that cut off paths to future ideas. Greg had some good ideas for searching/filtering/rating criteria that he mentioned in IRC. I hope he will add them here. (added below - greggles) Feel free to edit this document. Once everybody has gotten started, we can delete a bunch of this introductory narrative stuff I've put here to get it going. [chris]

Motivation and Initial Thoughts

This is just narrative at the moment. Eventually it would be nice to parse it up into lists with details for each point, or some other structured way.

I was prompted to build this project by the repeated frustration I felt each time I tried to find modules to do various things. Often, it was simply trying to find a module I knew existed and what it did, but just couldn't remember the exact name. Other times it was trying to discover if a module existed which supplied functionality "X". And yet other times, it was trying to find the best module to provide functionality that I knew was supplied by several modules (e.g. have you tried figuring out which module or modules are best for providing in-line image insertion in D5 using an editor other than TinyMCE? A solution does exist. It's just hard to find!).

It's obviously needed in the community, as can be seen from the forums, irc channel, and this blog post from Dries: http://buytaert.net/drupal-org-wishlist [matt]

The solution seems to be to create a better module searching application and add to it the ability to rate and criticize the modules. The current drupal.org listing and taxonomy system is too cumbersome. And with hundreds of modules and a growing number, it's not getting any better.

Lastly, I think we can provide the Drupal community a valuable service by solving the above problems. And we might even produce two additional positive effects: (1) encourage better modules via the rating/critiques, and (2) boost Drupal's reputation around the world by making it easier for people to see the wide diversity and great depth in the contributed modules available. [chris]

Google-style Weighting [matt]

To deter authors from artificially boosting their rating--as seen on other sites, like Joomla--we should promote a more complex weighting system. Taking many of the factors mentioned below, under "some random features", into consideration, we could properly weight every modules importance.

Inspiration and Ideas [matt]

Some random features

  • Fast search of modules by key word or partial word. Great for people who know a module exists but can't quite remember the name.
  • Search filters for various important criteria, such as install file, official release, documentation, recent commits.
    o Does it have 1) documentation page 2) hook_install/hook_uninstall 3) pass a coder "standards" check 4) pass a coder security check 5) have simpletests 6) have complete simpletests
  • Rating by popularity.
    o Views
    o Downloads
  • "Health/Activity", based on [matt]
    o Developers working on the project
    o Number of commits
  • Rating by "completeness" in meeting a set of criteria (similar to search filters above).
  • We have a choice: we can either generate a comprehensive list from CVS or some other method, or we can choose to only list modules worthy of looking at. Listing only worthy modules has some advantages. One disadvantage might be we may anger some module developers whose modules got excluded. This point is probably worth further thought and discussion.
  • Allow user voting / rating of modules -- this means any user who visits the site (authenticated?).
  • Rating of modules by an "editorial" staff -- i.e. a hopefully large list of known Drupal community members, rather than just anybody who comes along.
  • Make use of tagging keywords. This would be useful to make an interactive experience for newbies. [matt]
    o For example, a newbie could go to a form that asks them questions like "What type of website are you looking to build?". If they select something like "blog", the module would pull up useful/recommended modules based on tags.

Other open questions

  • Site name?
  • Site hosting?
  • Division of labor?
  • Other?

Suggested Phase 1 or Release 0.1 Features

  • Smart stuff goes here
  • Another feature here

Suggested Phase 2 or Release 1.0 Features

  • New feature #1 goes here
  • New feature #2, etc

Module metrics and ranking

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: