GSoC 2010 proposal: Development of technical communication capabilities

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!

This wiki page is an outgrowth of this discussion. Its purpose is to give us a place to collaborate on the creation of a proposal for Google Summer of Code 2010. Please leave all new feedback here.

We're aiming to put together a proposal that looks something like this. This means we need

Overview:
Description:
Timeline:
Mentors:
Contact Details:
Difficulty:

Why this project is needed

As software projects mature, they often accumulate a very substantial body of documentation, perhaps running into the thousands of pages. For example, Drupal itself has well over six thousand pages of documentation in its handbooks (and perhaps thousands more in the API reference). With such a vast quantity of information, the effort required to manage the content lifecycle can easily overwhelm the available resources, especially in an open source project such as Drupal, which relies entirely on volunteer efforts. With each new release, thousands of pages must be updated or retired, and new guides must be written, perhaps incorporating content from the old books.

At this stage of maturity, a well funded software company might choose to deploy a suite of tools for authoring and managing its documentation content. At the heart of this kind of solution is a specialized content management system optimized for the demands of technical communication.

Unfortunately, these tools are both too expensive and too unwieldy for open source projects (and for most small to mid-size enterprises). Instead, these groups must rely on file-based content stores or on the generic capabilities of open source content management systems like Drupal.

This proposal envisions extending Drupal with new modules that would provide these missing technical communication CMS capabilities. By developing these tools, it would provide tremendous benefit both to the Drupal project as it migrates to a dedicated documentation subsite, and to other open source software projects around the world.

Project Scope

This project would research, identify and develop a set of capabilities that would serve as the foundation for using Drupal as a technical communication CMS. One of the primary goals is to enable the use of Drupal as a tool for single source publishing.

The following areas would be targeted:

  • Authoring
    • A context-aware UI optimized for applying markup on the paragraph and word level (i.e. displays only the appropriate tags for the context and allows only valid markup).
    • Conditional text. A paragraph can be marked to appear in one context but not another. For example, step five might not be needed in the new release of the product. Rather than fork the documented procedure, a conditional tag is applied to step five. The conditional tag tells the CMS to hide the step when the page is processed for display or document assembly.
  • Navigation and management
    • Graphical tool for building content maps. Provide a capability for easily assembling new maps (i.e. books) from a large body of content. A given chunk of content could be used in any number of maps.
    • Intelligent link management. Links to related content are generated and managed by the CMS.

More information on Drupal documentation tool requirements is available at Drupal.org.

Some things worth noting

Webchick made these points

  • a rare chance for our community to inject funding and passion into areas that for whatever reason are not getting due attention from our volunteer resources
  • your proposal will probably be declined unless you can make a very strong case for why your project fills a niche that none of the others do

I think that we can safely say that this area is not getting due attention.
I will demonstrate through the following analysis that nobody else is even approaching a proposal like ours.

Alex UA specifically made a plea for Views projects. Lee has already hinted at views implementation in this project. I don't know if it would be anything new to views, or just making use of the existing module.

There was a post to brainstorm accessibility ideas that seemed to be reasonably well received. Could we incorporate some accessibility aspects to the new design?

Rough analysis of existing proposals

I make no pretense that I understand much of what these proposals entail. I've only done a quick sorting into what seemed like the best categorization, from the greatest number of entries to the least. The contents of each category is just a cut-and-paste of the titles

New modules

Drupal Social API graph
Semantic assisted Natural Language Processing for extracting information from Nodes
Remote entities
Unified field manager
Object relationship mapping for drupal
Rules data transformation plugin
Autoupgrade, Install modules and themes via admin panel
An online test or education module
unified payment api
Tournament System
Optimise the evaluation of big rule sets
automated performance testing
Facebook-style Micropublisher
Flash Theme Engine for Drupal
Top Nodes with Google Analytics
Users and Groups management for multiple LDAP/AD
Drupal - JasperReports API :: bridge
Creating a generic Search API
Touch interface for mobiles
Animate Drupal API
Drupal APPcenter || Module browsing through Drupal Back End
Versatile Quiz Module
Bulk Menu Creator with a Toggle Switch
Bookkeeping module for Drupal commerce users
HTML5 support for Media (Drag and drop files, <video and <audio rendering)
Affiliate module for Drupal Commerce
freight exchange services module(s)
HR Employee Module
Desktop Content Manager - Adobe AIR
Round Robin / Hunting Assignment Queue for individual users or groups
Car Sharing module
Auto Taxonomy Generation from Node-Content

Upgrades to existing functionality

QueryPath update to D7
Drupal Commerce Usability: Bulk Product Creation / Import Tools
refactoring Drawing API
Overhauling the Search in Drupal 6
Date module rework
Intuitive interface for CCK & Views
Views Query Backends
ODF Import
Rewrite Drupal Update Process
Collaborative Editing of Nodes
Taxonomy with node-functionality

Integration with other tools or modules

Image Editor integration
Integration of Drupal with Open Office
Integration of a No-SQL Database
Integrating Views output into Feeds Module for further processing
Integration Engine on Drupal [DConnekt]
37 Signals Product Integration

New profiles/distributions

Install Profile for a PHPBB-like forum
Improving 'Eduglu' for creating better E-Learning sites
Drupal Installation Profile for E-Learning

What the analysis shows is that most people are suggesting new modules. Some of the modules provide more general functionality that can be used throughout the community and by other modules. Most of the modules provide specific functionality that would be used only by those who have a particular need for that module.

The next greatest category is enhancements to existing modules. Again there is a mixture of the general benefit/specific audience applicability.

There were a number of suggestions to integrate with other existing pieces, which in my estimation provide mostly specific audience benefits.

Finally, there were suggestions for new profiles/distributions. A common concern I saw with all of these proposals was that it didn't seem like a project that would take three months.

My conclusion

Our proposal will create a sea shift in the way the Drupal community functions (at least with regards to documentation). It has extremely broad reaching impact. I don't see that any of the other proposals come even close to the widespread benefit that this would produce. Additionally, we are looking ultimately to create an entirely new distribution that can be made available to the world. So, it's not only the Drupal community that will benefit from this undertaking; it's the entire open source community. Look at Dries' quote about how important the community is; it's not about the code. Our proposal is really about the community. The other proposals are almost entirely about the code.

Of course, we will build on D7, which will give a great test platform. And, as I asked about in an earlier comment, the possibility of helping to upgrade existing modules to D7.

@rfay has questioned whether we want to target D7. Let's look into this further.

Help system

Group organizers

Group categories

Help topic module

Group notifications

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