Quantcast
Channel: Recent posts across whole site
Viewing all articles
Browse latest Browse all 49199

Nodequeue Companion Modules

$
0
0

Supplementary information to my official application appears here in bold italics.
DRUPAL.ORG USERNAME:

http://drupal.org/user/69959

LINK TO PROPOSAL DISCUSSION:

http://groups.drupal.org/node/10067

BENEFITS TO DRUPAL/OPEN SOURCE COMMUNITY, PROJECT DETAILS:

This proposal consists of two related modules, user_nodequeue and og_nodequeue, both of which are built using the Smartqueue API provided by the NodeQueue module (http://drupal.org/project/nodequeue).

The user_nodequeue module.

The user_nodequeue module would benefit end users and administrators of Drupal sites that call for nodequeues which correspond to individual users.
Provided with a nodequeue that displays on the user profile page, each user would have the opportunity to highlight content of her chosing. A user is more likely to use a nodequeue when one is provided for her, since some users may be unwilling, unable or simply uninterested in performing the steps necessary to create a nodequeue.
Currently, if a site administrator wishes to provide nodequeues to many of her users, she must manually create each nodequeue. On a site with hundreds or thousands of users, this can be a prohibitively time-consuming task. Additionally, displaying nodequeues on user profile pages calls for the writing of PHP code, a skill that many casual Drupal site administrators lack.
The user_nodequeue module would fulfill these use cases without requiring either the manual creation of nodequeues or PHP coding skills.
User_nodequeue could also be configured in such a way that individual users cannot manipulate their own nodequeues (see #5 in the Deliverables section, below). This allows for a list of selected content by a particular user that is maintained internally by website administrators\moderators. Such a configuration would enable various use cases, such as when administrators want to highlight offensive content by a particular user (as suggested by greggles).

Outside the scope of the Google Summer of Code, I propose that user_nodequeue could be installed on Drupal.org so that each user could highlight issues that are important to her. While the current 'Drupal contributions' text area could be used for such lists, having an 'add to my top issues' link on each issue would make compiling lists faster and easier. Some say that open source software follows a “scratch your own itch” mentality. If everyone had a list of her top itches (issues), it would be easier to say 'thanks' to another user by working on an issue from that list, and would promote general awareness of issues that are important to the community.

The og_nodequeue module:

Drupal is widely recognized as a platform for building community websites and the Organic Groups module is perhaps the cornerstone community building module. Having a nodequeue for each organic group that is editable group members would provide a new way for users to collaborate inside of sites that run OG.

Uncertainties:

Unexpected results or errors are virtually inevitable in software development. For this reason, my proposed project schedule includes three weeks of quality assurance, testing and bug fixes. Each of the two components of this project has what I see as a potentially complicating factor.

If the user_nodequeue module allows administrators to specify on a per-role basis which content types can be enabled in user nodequeues, it is unclear what action, if any, user_nodequeue should take to alter existing queues in order to reflect restrictions on node types available to those queues that occur as a result of a user leaving one or more user roles (#4a from user_nodeequeue deliverables, below) . Webchick pointed out that this is an edge scenario, and may not need to be addressed, even if the functionality described in #4a is implemented.
Because of the way Organic Group membership works, there may be unforeseen complications in getting og_nodequeue to evaluate who can and cannot edit a group nodequeue. I recently patched the og_subgroups module to replicate the new audience selection form provided by OG, so I am already familiar with code in OG that is directly related to this issue.


Even if these two items turn out to be complicated, I do not foresee any reason why they would prevent each module from performing its basic functionality, which is creating and associating nodequeues with users and organic groups.

DELIVERABLES:

This project entails the creation of two to-be-contributed Drupal modules: user_nodequeue and og_nodequeue. Functionality for each module is specified in the lists below.

The user_nodequeue module will provide the following functionality:

1) Administrators can specify which user roles automatically receive nodequeues
2) When a user of a specified role is created, a nodequeue corresponding to that user will be created.
3) When a user is deleted, the corresponding nodequeue will be deleted.
- a) The module should prompt and warn the administrator before deleting the nodequeues.
4) Administrators can specify which node types should be available in user nodequeues.
a) Administrators could potentially be able to specify on a per-role basis which content types can be enabled in user-nodequeues. If this is the case, available node types for each user-nodequeue will consist of an aggregate of node types specified for nodequeus of that user's role.
5) An 'edit own user nodequeue' permission will be defined to allow for use cases where users cannot edit their own node queues, such as a list of selected content by a particular user that is maintained internally by website administrators\moderators.
6)The content of the user-nodequeue will display on the user's profile page
- a) The module will define a default view that is utilized on the user profile page
- b) Administrators can specify an alternate view that will control the display of user-nodequeues on user profile pages

The og_nodequeue module will define or enable the following functionality:

1) When an OG homepage node is created, a nodequeue that corresponds to that OG homepage node will be created.
2) When an OG homepage node is deleted, the corresponding nodequeue will be deleted
3) Two possibilities:
- a) Members of the Organic Group and site administrators will be able to edit the nodequeue for that Organic Group.
- b) Administrators of the Organic Group and site administrators will be able to edit that OG's nodequeue.
4) The content of the Organic Group's nodequeue will display in a block defined by a view, provided by this module
- a) Administrators can specify an alternate view that will control the display of OG nodequeues
5) Administrators can specify which node types should be available in OG nodequeues
6) When an administrator changes sitewide settings for OG Nodequeues, these changes should affect all og-nodequeues, to the extent that this is programatically practical.

PROJECT SCHEDULE AND MILESTONES:

Community Bonding period through May 25 - Explore taxnomy_smartqueue module and work with project mentor to become familiar with the SmartQueue\Nodequeue API. Finish any scoping\specifications for the project.

  • May 26 – Begin coding user_nodequeue
  • June 16th - user_nodequeue milestone: coding should be 50% complete at this point.
  • June 30th – user_nodeqeueue milestone: Basic QA testing begins. Wrap-up coding
  • July 6 – user_nodequeue coding should be complete
  • July 7 – og_nodequeue coding beings
  • July 28th - og_nodequeue milestone: Coding should be 75% complete at this point
  • August 4th – og_nodequeue milestone: Basic QA testing begins. Wrap-up coding.
  • August 11th – og_nodequeue milstone: coding should be complete. Begin final QA testing phase of both modules.
  • August 18th – Final pencils down date.
  • I also plan to write basic simpletests for each module during the QA periods.

    BIO:
    I am a tinkerer. I have been exploring Internet-related technology and computers almost since I was old enough to type. In middle school, I taught myself QBasic and Visual Basic and created simple programs such as an FAA N-number lookup utility for aircraft registrations. Inspired by the 'Eliza' chat program and interested in pushing the envelope of what was possible under Visual Basic, I attempted to create a program that could store factual information that it extracted from sentences consisting of simple, uniform syntax. Lacking both expert programming skills and linguistic training, I didn't get very far and eventually turned my attention to websites.
    I experimented with various free hosting providers, purchased my first domain name, built my own web server and hosted a website on my home internet connection. As a high school independent project, I created a rudimentary system that allowed professors to upload and browse a diverse library of scanned print media.


    I started using Drupal in June of 2006 in Portland, Oregon and in the Fall of that year used my hiatus from college to focus on web development. I studied extensively and moved to Boulder, Colorado to pursue full-time a job at the Drupal development firm pingVision, with the intention of further honing my Drupal skills. At pingVision, I have fulfilled many technical and non-technical responsibilities including development of projects larger than the scope of these modules.
    In August of 2007, I moved to New York City to attend the New School University where I am completing my undergraduate degree in Psychology, currently with a focus on Cognitive Psychology. I believe strongly in the value of having a deep understanding of the human beings that the Internet and Drupal connect.

    I recently switched from Textmate to the more full-featured and open-source Eclipse PDT development environment. I typically keep track of my personal Drupal projects with SVN. I have participated as a product tester of Audacity, the Songbird media player, Mambo CMS, PHPList, Coppermine photo gallery, OpenOffice, Gimpshop and ActiveCollab.


Viewing all articles
Browse latest Browse all 49199

Trending Articles