= !BluePrint: Chat = [[TOC]] == Introduction == The Blueprint aims at development of a real time chat system for Sahana Eden. == Description == * Provide a chat board through which users can help each other or get help from the system administrator. * Perhaps have one chat for each organization or project. == Requirements == * Ability to show which users are online == Stake Holders == * The End Users - The group of end users would like to have a communication channel through which they can contact each other .[[BR]] * Developers - Instead of using an IRC the people who contribute sahana eden can find themselves at a one stop platform to clear various doubts or have a technical discussion. * Site Administrator, Site Operators, == Need == Many organizations and people use Sahana Eden. Eden Chat will be a medium of communication between organizations and users. It would allow users to remain on a single platform and accomplish the task they want to perform without the need to go over 3rd party software to communicate.The chat would be integrated with Eden features that would help making tasks easier such as customized commands(like in irc) for accomplishing different tasks by different users. It would have the capability of seeing online users and message on mobile incase the user is offline. This would make communication easier since one need not any other information to contact other user.The chat could allow to send map images or map location from Eden Map to other user. The chat would be much more secure than irc and it will have better privacy than irc. We want to be able to provide the ability for users to be able to message each other in real-time. This is useful for compliance reasons as well as just convenience. === Advanced === * Easily switch to the user's email / SMS / Phone to contact them if they are not available by chat * candy plugin which links to Eden's msg.compose() * Status Updates * candy plugin? * History * Store chat history in DB (per-room & per user<>user private chat with appropriate permissions). * Scheduled task to prune. * Allow access to view this history from within the client 1 day/1week/1month/3months. * User can override archiving. * VoIP * Single-user * Multi-user * Video * Whiteboard * Screen Sharing * File Transfer * candy plugin to expose ejabberd's capabilities? == Design == * Simple option is to provide a preconfigured IRC client, but this may not be good for scalability * e.g. [http://qwebirc.org qwebirc] was used for SandyRelief and there is some code to have this display in a side-pane to the main browser window * Scalable option would to provide an XMPP client (e.g. to a Jabber server) === Server === * [http://www.process-one.net/en/ejabberd/ ejabberd] * [http://www.igniterealtime.org/projects/openfire/ OpenFire] === Client === * http://candy-chat.github.io/candy/ * Needs updating to work with current jQuery/UI * Add Authentication: Users are who they say they are & are only allowed into the correct rooms. * Add Notifications hook. * Add Offline Users. * Pull-in profile pictures. * Add "User is typing" * Add Recent Messages at Top * http://stackoverflow.com/questions/1081634/which-is-the-most-mature-python-xmpp-library-for-a-gchat-client * http://twistedmatrix.com/trac/wiki/TwistedWords * http://wokkel.ik.nu * https://github.com/Jajcus/pyxmpp2 * http://xmpppy.sourceforge.net (unmaintained) === VoIP === Assuming single-user: * http://mumble.sourceforge.net * Flash client included in http://frug.github.io/AJAX-Chat/ == Implementation == Name : Arnav Kumar Agrawal[[BR]] Github : [https://github.com/arnavkagrawal] [[BR]] IRC Handle : knowing42[[BR]] Email id: arnavkagrawal@gmail.com [[BR]] Skype: arnavkagrawal == References == Professional XMPP Programming with JavaScript and jQuery: [http://professionalxmpp.com/] ---- [wiki:BluePrint BluePrints] [wiki:BluePrint BluePrints]