OG (http://www.drupal.org/project/og) lets you create groups of people with controlled access to content.

I'm building a service called Workspace (http://www.wovenlabs.com/workspace), letting one create a spontaneous working group (OG), and making issue tracking, forums, source code revision control (Subversion), and more available to it.

One critical component is integrated chat. 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. Any thoughts/plans for such a 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. (I notice you have 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.

Your thoughts on the above?

I'm very interested in this module. I tried it and it works nice in limited tests... I like the color coding for different users in the chatroom, and everything seems strong for an early version. I'll continue to report back. I have strong aesthetics and CSS/usability skills so I'll try and contribute there. Thanks for what looks like a promising module!

--Dave
--http://www.wovenlabs.com

Comments

Anonymous’s picture

Assigned: Unassigned »
Category: task » feature

hi dave,

sounds great - both the OG stuff and any UI help you can put in.

i'm looking forward to building this :-)

cheers
justin

DaveNotik’s picture

Added some initial loose notes:

http://www.wovenlabs.com/workspace/components/chat

--D

Anonymous’s picture

hi dave,

some ideas from the notes on your site below. i'll post a them on that page as well.

first, my general approach to this will be to try to implement features that meet the OG integration needs in a way that makes these features useable by any module. this will probably take a bit longer, and mean that things aren't always a perfect fit for OG, but i think its the best way to go.

assuming we can settle on some more or less defineable features for the chatroom module, i'll turn them into issues and work through them from there.

automatically creating a chat

i'm open to suggestion here, but my first thought is that it would be better to create a chatroom, not a chat, for each group. chatrooms are drupal nodes, and allow for easy listing of chat's that belong to a chatroom, and an edit page where an admin can archive chats (which will produce a page that is probably some of the way towards what you want in point 6), edit the description, etc.

exporting a list of online users with clickable links

the first and easiest place to start is who is participating in a chat that the user viewing the block has access to. anyone participating in a chat is sending regular requests to the server for upates, so we can just return a list of users who have requested an update in the last X seconds.

the harder part will be making it easy for other modules to create lists that correspond to their needs, like your example of who is online in on OG group. the tricky part here is how to determine who is online. to make this real-time, all pages will need to ping the server with an "i am online" message. so perhaps the chatroom module should expose an i am online service, that will allow modules to put a small block of js in their pages which will send ping? and perhaps a hook so that modules can get at this information and customise it for display?

another tricky bit is getting a realtime notification that someone wants to start a chat with you. this also requires pinging the server at regular intervals, and some javascript that fires off some DOM trickery to allow the user to respond to the invitation. this is probably also something that the chatroom module could expose for other modules to use.

popout chats

i'm not sure about the anchored-to-the-page popout chat yet - i think that will be the most complex of all the suggestions. perhaps a first step is to work up a proof of concept "stipped down" view of a chat, where it load in a smaller, fixed size window with only the scrolling msg board and online list in it.

themeing

i'm not really using the theme functions at all, which is primarily because i haven't RTFM on them yet, so any and all suggestions here are welcome.

logs

you're point 6. makes me think that its worth exposing blocks with links to chat logs. suggestions here are more than welcome.

cheers
justin

Anonymous’s picture

hi Dave,

thanks for posting my thoughts on your webiste. any comments?

i've started an issue here regarding a popout chat page, and i'll try to get a proof of concept done this weekend.

cheers
justin

DaveNotik’s picture

Hi Justin:

I made my comments on the popout issue (http://drupal.org/node/73151). There are probably some new issues I should create?

--D

Anonymous’s picture

i'll be committing some code in the next 48 hours where chats are now nodes, so this will hopefully cover most of the OG integration.

Anonymous’s picture

Assigned: » Unassigned
Darren Oh’s picture

Making chats a CCK field type would allow them to be attached to groups, user profiles, or anything else that needed to be chat-enabled. Some work has been done on field-level access control, so it would be possible to control which users can see the chat field. Attaching chat fields to user profiles would also allow real-time private messaging.

Darren Oh’s picture

Status: Active » Closed (won't fix)

Look at the our group page if you would like to help write the next version.