Workspace

Woven Workspace is a distributed team collaboration environment. It is intended as the primary tool by which members of a distributed group will assemble and interact.

Our initial focus is to support distributed application development, as there is a significant need for more effective tools to foster this growing form of collaboration.

Components

Workspace is an ambitious project with numerous complementary areas of research and development. This section houses the most current notes and documentation for each component.

Activity maps

[needs content]

Collaborative authoring

Collaborative Editor for Drupal (SoC 2006)
http://www.ernestdelgado.com/wiki/index.php/Drupal

Collaborative drawing

Draw Freely - Open Source vector graphics editor
http://www.inkscape.org/

Group formation/team assembly

[Needs content]

Group structure

[needs content]

Integrated chat

One critical component of an effective Workspace is integrated chat. The user should not need to fuss with downloading an IM client, and real-time communications should be seamless. Some aggregated notes follow.

Module: Chatroom
http://www.drupal.org/project/chatroom

Issue: Work with the OG (groups) paradigm
http://drupal.org/node/71324

Ideally, it works like Gmail Chat, only with the ability to have group chat — so I can see who in the group is online, and I click to chat with one or many of them, and the chat box persists as I navigate around the rest of the site doing my thing.

The above would be ideal, but having a dedicated always-active chat room for the group might be a strong place to start. For example, perhaps a chat room is automatically created when a new group is created and given the same name as the group. (With chatroom.module, there is the concept of “chats” below “chatrooms”, so maybe a “Default” chat is created?) Maybe it can be “popped out” to a new window so I can still move around my workspace while chatting. As a themer, I should be able to place a link to that chat where I want it, so people can easily click to launch the group’s chat.

Here are some possible uber-tasks for the ideal scenario:

  1. Allow for easy spawning of one-to-one chats. Integrate with “who’s online” functionality (see Drupal core’s block of the same name) — may require shoring up this functionality to real presence awareness, as reliable as Gmail’s is. Should allow for ability to click username, which brings up chat window (anchored to bottom right as in Gmail). Chat box should pop up on receiving end and discussion ensues.
  2. Of course, the above requires a method for persisting the layer across pages within Drupal, which may require further AJAX-ifying other aspects of Drupal to allow for this. Requires research.
  3. Integrate the above with OG, i.e. make an OG-specific block with group members, clicking them brings up anchored chat dialogue (as in 1). This way, if I’m in a group, and other group members are online, I can easily chat w/ them.
  4. Let the user control whether or not others can initiate chats with them. Have a setting like “Receive chats”, on by default.
  5. Group chat. Let me initiate a chat, and invite others to it from the dialogue. The new receiving end would see the chat dialogue pop up with all participants shown.
  6. Log conversations. Create a new node with the chat log nicely formatted (see Gmail’s “Chats” folder). Should only be accessible to chat’s participants — that gets tricky, and depends on thinking of Drupal and nodes in a different way, i.e. some nodes are my very own, like the e-mail concept.

I’ll leave it there for now, and will flesh it out as we go.

Integrated development tools

[needs content]

Integrated payments/fund transfer

[needs content]

Integrated SVN (revision control)

This component will enable each project group to have its own SVN module for use as a source repository and revision control system. Making this development tool available is critical to the utility of a distributed development environment like Workspace.

  1. An option should exist allowing a repository (SVN module) to be created. This option should be accessible after the project group (OG) is created, to encourage that it be enabled only if explicitly desired (versus casually enabling all options at group creation). Only the group manager should have access to the above option.
  2. The group manager should be allowed to determine who in the group should have access to the SVN module. (This is similar to drupal.org/project.module’s recent CVS-related access changes.)
  3. SVN module login information should correlate to the Workspace login information.
  4. A new block should be available for all in the project group for access to SVN related pages. A new menu item should allow access for this as well, but this is left up to the particular theme.
  5. SVN committ messages should be viewable (like drupal.org/cvslog.module) and browsable.
  6. Diffs should be available (via ViewSVN… other third-party tool).
  7. TBD. There should be some Case Tracker integration, e.g. allowing a reference to relevant SVN commit messages or changed files when marking a case resolved.

Invoicing/billing

[needs content]

Issue tracking

This component enables teams to track outstanding cases which need resolution. It provides e-mail notifications to participants about updates to cases. Similar to many issue tracking systems.

Case Tracker module
http://www.drupal.org/project/casetracker

Case Tracker module readme
http://cvs.drupal.org/viewcvs/drupal/contributions/modules/casetracker/R...

CCK based project management
http://groups.drupal.org/node/409

Drupal Group
http://groups.drupal.org/issue-tracking-and-software-releases

Profiles

Node Profile Module and CCK (SoC 2006 project)
http://drupal.org/node/65387

Reputation/feedback system

[needs content]

Roles/responsibilities

[needs content]

Time/calendaring

[needs content]

Current Features

Workspace currently has the following notable features:

Workspace is currently only able to serve as a single project workspace.

Intended Usage

I see two primary roles and their (initial) uses.

Client

Vendor

The client (or project manager/owner) will be able to define project requirements and form the necessary team elements, manage team logistics including reports and payments, and interact; the vendor (which includes designers, developers, and other working members of a team) will be able to join project teams they’ve been invited to, submit reports, interact, and make use of tools for distributed development and team integration.

The client may choose to request a manager, to be assigned by us, and whose responsibility it will be for procurement and integration of all necessary team elements.

In short, the client will be able to execute and successfully complete the project, and the vendor(s) will be able to successfully perform a service and get paid for it, with manager oversight as necessary.

Roadmap

Per the intended usage, dPanel.org should have the following additional features:

Phase 1:

* Ability for multiple project spaces
o Project description and creation wizard
o Private; simple access control
o Invite to project
* Per-project, per-component case tracking
* E-mail notifications on new content
o On new content
o On edited content
o On commented

Phase X:

* Book pages revisions (easy as Wiki)
* Integrated chat
* Participant feedback
o Ratings; per-project, site-wide
o For Vendor, Client, Manager
* Reporting tools
o Time reporting
o Invoicing
o Payment
* Integrated payment
* Activity maps
o Project view
o Workflow
* Manager certification