RFC: Site documentation module proposal

Events happening in the community are now at Drupal community events on www.drupal.org.
webchick's picture

Copy/paste from devel list:

When inheriting a site from a client and trying to figure it out, there are a number of things one normally does...

  • Go to the content types listing and take a look at what types exist, and what the field definitions are for those types.
  • Check out what roles there are, and what permissions are assigned to those roles.
  • Check out what taxonomy vocabularies exist, and to which content types they're assigned
  • etc.

This is all rather time-consuming, as it requires going to about 50 admin screens, and it's difficult to get a "big picture" of what's happening.

Having been asked to write a document containing some of these things on a site, I'm thinking of writing a module that basically nicely formats a db dump into an HTML page so you can get a bird's eye view of what the site entails.

Example output might be:


<h1>Site documentation for Example.com</h1>

<h2>Goals</h2>
[insert site goals here; why does the site exist? who's its target market?]

<h2>Overview of architecture</h2>
[insert overview of architecture here; how various pieces fit together and why]

<h2>Enabled module list</h2>

<ul>
<li><strong>Custom module</strong>: A custom module for the site. Description taken from .info file.</li>
<li><strong>Logintoboggan</strong>: Improves Drupal's login system.</li>
<li><strong>Pathauto</strong>: Provides a mechanism for modules to automatically generate aliases for the content they manage.</li>
</ul>

<h2>Content types</h2>

<h3>Page</h3>
A static page, like a contact page or an about page.

<h4>Fields</h4>
Title
Section (Vocabulary)
Body

<h3>Announcement</h3>
A news announcement on the site.

<h4>Fields</h4>
Title
Category (Vocabulary)
Description (Body)
Attribution (Text)

<h2>Roles</h2>

<ul>
<li><strong>anonymous user</strong>: [insert description here]</li>
<li><strong>authenticated user</strong>: [insert description here]</li>
<li><strong>administrator</strong>: [insert description here]</li>
</ul>

Perhaps this would include an intermediary step (a form) would let you enter in broad descriptions for the site, plus descriptions for roles, etc. Because this info could be just about anything, it could be stored maybe as a serialized array somewhere?

It could also have the option to export a blank template which you could fill in manually when you spec out a new client site.

I was thinking also of a settings page where you can turn on/off the sections you wish to be included. And it would have to implement a hook so other modules could expose their things to being included in the documentation output.

What do you think? Crazy idea? Stupid idea? Anyone interested in helping to spec something like this out?

-Angie

Comments

You know, as I dig into this...

webchick's picture

I wonder if this almost could be an export format of the Import/Export API: "site documentation" (and maybe "install profile", to satisfy another feature request someone made on the dev list). It looks like there might be quite a bit of overlap between the two.

Great idea, something we need

cowboystyle's picture

Wonderful idea, my company is in the process of switching the majority of our websites over to Drupal and this is a major issue for us, as we go from one site to another. I'll definitely keep an eye on this thread.

Many uses

Chris Johnson's picture

Another brilliant idea, Angie.

Such a module would have many uses. In addition to the use cases you outlined, I can see it being useful to administrators who have many sites running from the same code (like us) who want to check that a certain group of sites are configured the same way. To the extent that your idea could be extended a bit to summarize the entire configuration, that would be fantastic.

Right now it takes us much of a day to configure a site once it's installed, because we are using many modules. We do have install profiles which preset many things, but there are some things which still need to be done by hand. Since we migrate these sites to newer releases, change configurations now and then, and add sites to groups with similar configurations, the ability to quickly discern the differences, i.e. the settings which need to be "fixed", would be really valuable.

Good documentation is always valuable, and since this proposed module would generate documentation directly from the "ground truth" of the database of the site, it would always be accurate (good) for that point in time.

Three cheers for Angie, I say!

Awesome

nancydru's picture

I will try to keep some of these ideas in mind as I work on my module. I am building it so each "piece" is separately callable, so that could lend itself to turning functions on and off easily.

The hook idea is an exciting one that hadn't entered my mind because I really wasn't sure how many other people might want something like this.

Nancy W.
Drupal Cookbook (for New Drupallers)
Adding Hidden Design or How To notes in your database

Well...

nancydru's picture

I have a lot of this already done, but there doesn't seem to be much interest in seeing what I have and what more needs to be done.

http://nanwich.info/drupal_collection/system_information_module

Nancy W.
Drupal Cookbook (for New Drupallers)
Adding Hidden Design or How To notes in your database

I just read your writeup

bonobo's picture

and it looks good --

RE this quote from the end of your post: "Maybe the Drupal-powers-that-be will accept this module as a contributed module." -- have you applied for a CVS account? If not, apply. If you have applied and are waiting, ask for an update --

Your module is a solution that people will be looking for, and it puts ideas into code -- nice work.

Cheers,

Bill

Yes, I have applied - again

nancydru's picture

I think they feel that someone with less than a year of Drupal is unworthy.

Nancy W.
Drupal Cookbook (for New Drupallers)
Adding Hidden Design or How To notes in your database

I looked up the CVS queue at

sime's picture

I looked up the CVS queue at your original application to contribute a SiteNotes module. It was declined for the following reason:

Unfortunately, correct me if I'm wrong, but I don't see what your module offers over using CCK+Views and fiddling with your menu settings? Please do not hesitate to contact us if you would like to discuss this further, as we can still review our position.

In defense of AjK, this doesn't look like you were rejected for being with Drupal <1 year...

Also

kbahey's picture

Also, the description of the module (originally back in March) lends itself for confusing it with "just another bunch of fields". That is why it was declined perhaps.

The module now (as I understand it) pulls information from other sources, and has logic to do so, and hence CCK is not a fit here.

Drupal development and consulting 2bits.com
Personal Baheyeldin

Drupal performance tuning, development, customization and consulting: 2bits.com, Inc..
Personal blog: Baheyeldin.com.

Yes that's what he said and

nancydru's picture

He never bothered to answer my appeal of his decision in which I provided more information. BTW, his "fiddling" with menu settings is incorrect - it doesn't work; it must be done in a module. And the module has been popular even though it wasn't accepted - it now has 17 users.

I have re-applied for this module. I am awaiting their response. Hopefully it will be more favorable this time.

But I get that kind of treatment frequently from some of the "older" users of Drupal. I also feel that I am occasionally dissed for being a woman.

Nancy W.
Drupal Cookbook (for New Drupallers)
Adding Hidden Design or How To notes in your database

CVS Account granted

nancydru's picture

Step 1 - code - mostly done
Step 2 - CVS - coming soon
Step 3 - documentation - done
Step 4 - publish - waiting for me to learn CVS

Nancy W.
Drupal Cookbook (for New Drupallers)
Adding Hidden Design or How To notes in your database

Run into a CVS problem

nancydru's picture

I've run into a CVS problem. As soon as that gets fixed, it will be there. The code is already in CVS; it just won't create the project.

Nancy W.
Drupal Cookbook (for New Drupallers)
Adding Hidden Design or How To notes in your database

...but there doesn't seem to

sime's picture

...but there doesn't seem to be much interest in seeing what I have...

Don't worry, plenty read and don't comment. Welcome to Developer Self-marketing 101. :)

Test it out

nancydru's picture

Because of a CVS conflict, I had to change the name. It is now the Site Documentation Module.

The documentation page is at http://drupal.org/node/144837

I still have some ideas for new sections to add. Also, I still need some ideas on what kind of information modules might want to pass back from a "hook_sitedoc."

Nancy W.
Drupal Cookbook (for New Drupallers)
Adding Hidden Design or How To notes in your database

Good

Julie W's picture

I think this is a great idea. It would sure be very useful! I hope you'll go ahead and do it.

Julie, Web Designer currently working on the How To Get Erection project.

Julie, Web Designer currently working on the How To Get Erection project.

Site Documentation module

Group organizers

Group notifications

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