Cyberhus.dk is a Danish 100% non-profit organisation founded in 2004 as a partner charity under the youth charity, Ungdommens Vel (Youth Welfare). The website is built as a “virtual house” that offers online counselling for vulnerable children and teens (age 12-18). Counselling is undertaken mainly by volunteer chat-counsellors, all with relevant educational backgrounds.
We are planning a redesign of our chat software and have agreed to ask the Open Source Community for guidance and help in the planning and development of this software.
The ideal solution would - of course - be easily integrated on all platforms and pluggable into all content management systems. This is clearly too ambitious for the scale of our project, so we will focus on making a solution that works well in Drupal.
Cyberhus.dk helps thousands of young people each year and participates in international projects such as Insafe and Incluso that is funded by the European Union. If we succeed in developing a counselling chat module, it will (of course) be licensed under a GPL license and will benefit the Drupal community and our partners in other countries as well.
Hopefully we will end up with a well functioning module with a lot of skilled developers contributing!
So, what’s the problem, exactly?
Although we at Cyberhus.dk are very much into the whole Open Source mindset - including Drupal, we are not a software development company, and we have limited skills and funding to develop this software.
For us it would be valuable to get any feedback on where to focus our efforts in order to reach our goals. We would like the chat module to be ready for launch before the end of this year. We have looked at the DXMPP module which seems to be the most promising non-proprietary module. But it also seems to require a lot of configuration and the maintenance status of “unknown” does not inspire confidence. The Chatroll module seems to be ready out of the box, but we would like to avoid proprietary modules.
Where do you recommend we start? All advice are welcome, and we will be happy to provide more details if needed. The following is a brief description of the main functionality of the chat.
The concept and basic functionality of the chat
The functionality of the chat counselling software pretty straightforward - a number of volunteer counsellors are situated at a “validated” IP-address, and when the counsellors log into the chat application and open the chat, users can log in.
The counselling chat, when used in the right context, enables young people to get answers to questions that they otherwise might never have asked because of shame or fear.
One-to-one chat
A one-to-one chat is when one user (anonymously) logs in to the chat. This opens a text chat with an available counsellor. The counsellor can only have “one line open” at a time. The chat displays the timestamp and the messages of the counsellor and the user and should behave like other chats in general (with smileys etc).
Group chat
This functionality makes it possible for at given number of anonymous or registered users to login to the chat, and chat with one or more chat counsellors in a shared chat room. The counsellors have the rights to ban users from the chat room.
Scalability
The chat should be able to handle - at least - several hundred simultaneous user without any problems.
Security
The chat conversations should never be saved in clear-text format in the database, but be encrypted. Because of legal issues regarding the logging of IP-addresses, the software should provide a possibility of not logging - or encrypt - the IP-addresses of the users.
Drupal chat modules and groups
Here are the modules we have looked at - please add to the list, if you have suggestions...
DXMPP
http://drupal.org/project/dxmpp
Chatroll
http://drupal.org/project/chatroll
http://chatroll.com/features
Subscription module with proprietary code
Chatroom
http://drupal.org/project/chatroom
Does not seem to provide group chat and is not highly scalable according to the description.
XMPP group
http://groups.drupal.org/xmpp
Drupalchat group
http://drupal.org/project/drupalchat