Source: site.view [edit]
Function name: groupIdeas
Arguments:
Description: Thoughts about how groups should be implemented in WubHub.
Page type: snippet
Render function:  
Module: global

Page source:

<H1>Group Ideas</H1>

WubHub needs the notion of groups, very much like Yahoo Groups, to allow many sub-communities to form within it.

<p>

<h3>Functionality</h3>

Groups should be able to have:
<ol>
  <li> A customized home page
  <li> A set of members that belong to the group
  <li> A set of commands/content special to that group
  <ul>
     <li> group calendar
     <li> group blog of news
     <li> group-definable things (e.g. stats page for basketball group, ...)
  </ul>
</ol>
<p>
WubHub Members should be able to join multiple groups, discover new groups, start groups.

<h3>Implementation</h3>

I think that our current module system can be directly extended to support groups.  Creating to a group will simply create a module (directory) with that group name.  Subscribing to a group will add flag.groupname to user.profile flags.  The user's permissions would be modified as follows:
<ul>

   <li> Group Member: would have the group module added to their read, write, and path permissions
   <li> Group Owner: would have the group module added to their read, write, and path permissions [question: any different permissions than regular member?]
   <li> Non-members: have the group module added to their read permissions, but not write or path (just like we do with single users today)
</ul>

<p>
I expect that there could be groups that anyone could join, and some groups would need to be invited, using a similar mechanism to how people signin today.  The invite mechanism would have to be generalized. 
<p>
We don't currently allow module creation/deletion by users.  We would need some primitives to allow this.  

<p>
Here's how this meets our requirements
<ul>
  <LI> A customized homepage can be saved to the module:  group.home
  <LI> A groupMember(group) function would use tags to find people who are registered.
  <LI> WubHub paths and permissions should allow content creation and command access to group members.
</ul>

<h3>Questions</h3>

<UL>
  <li> How much look-n-feel customization do we allow/encourage for groups?  A group homepage and related content should have some distinctive feel (group name, logo, colors?) but we want it all to remain in the WubHub style and family, because members will be accessing and using plenty of content beyond their group.  I think we should remain much more like Yahoo Groups (e.g. similar look n feel for groups) than Ning (where every group looks extremely different, and the group pages maintain strong boundaries).

 <li> How easy/hard should it be to delete an entire module and all sub-content?

 <li> Should we add a new type of permissions called delete?  Users could delete their own content, but not global files or files in other groups.  Group owners could delete group content, but not regular members.

 <li> Should we reorganize our persistence directory structure to separate users and groups?  If we don't, names of users and groups can't collide, and I think this would be a problem.

 <li> We would now have moduls for users, and for groups.  Should we allow creation of modules for other things, and maybe even allow (gasp) sub-directories within a user module or group module?  I'm guessing not in the short term...

 <li> Navigation: do we allow a "cd" to a group (see <a href="WubHub_DoIt?cmdline=bear.navigableUniverse">bear.navigableUniverse)</a>?  Right now, my proposal is that you could go to the group homepage by typing group.home, and that the homepage might have links on it.  But currently, I like that you can move through the entire space of WubHub (and the web) by typing a command that has no reference to being anywhere...
</UL>