Proposal for Google Summer of Code 2010 - Shashwat Srivastava
Overview – Development of Multi User Chat functionality, alternate theme(s), alternate registration schemes, support for other modules and documentation for DXMPP Module.
Description - This project will contribute to the development of DXMPP(http://drupal.org/project/dxmpp) module and add additional functionalities to it. They very first goal will be to add Multi User Chat capability (MUC). The next step will be to provide alternate theme(s). Provision for alternate registration and authentication schemes will be there. API cleanup, extension and documentation will go on side by side. Also support for other modules such as token and views will be provided. This project has been planned for Drupal 6.
Timeline -
- May 24 - 31st - get familar with Drupal code base, standard, CVS practices etc
- June 1 - 14 - Understanding Ejabberd & XMPP and their implementation.
- June 14 - July 12 - Implementation of MUC functionality.
- July 12 - Midterm submission: Functional MUC.
- July 16 - August 2 - Build Alternate Theme(s). Support for Token and Views Module.
- August 3 - August 16 - Alternate registration and authentication schemes. Code Testing and debugging. Beta release of the module along with documentation.
- August 17 - August 20 - Final Report submission.
- Also API cleanup and documentation will go on side by side.
Mentors - Aaron, Coornail, Justinrandell
Contact details -
- Email id - darklrd@gmail.com
- Windows Live Messenger - shashwat12@live.com
- Phone number - +91-9871076746
Difficulty - Medium
Comments
You might want to look into
You might want to look into the following modules which are being actively developed and supports most of the features you mentioned:
http://drupal.org/project/chatroom
http://drupal.org/project/im
http://drupal.org/project/dxmpp
Also, any particular reason for choosing IRC protocol instead of XMPP.
Regards,
Is my project feasible?
Hi publicmind,
Thank you for replying.
I will just now go through all the modules you have mentioned but I don't think they provide a complete facebook kind of chat with a proper chat bar present at the bottom of every page instead of being present in a block region so that it is easily accessible by users. I want to make something similar to this - http://www.bowob.com/drupal_chat_module. They have a demonstration here - http://drupal.bowob.com/. But they charge for it and the processing is done on their own server. I want to make a module similar to this.
I have no particular reason for choosing IRC. If XMPP is better I will go with it. I guess I will need to some research on it. Wasn't aware of it.
Do the modules mentioned above already provide this kind of functionality? I have just now checked chatroom. It isn't like this and rest two are still in development stage. Is my project feasible?
Au contraire...
That's precisely what DXMPP does, actually.
Aaron Winborn
Drupal Multimedia (my book, available now!)
AaronWinborn.com
Advomatic
XMPP is generally much better
XMPP is generally much better for chat, based on scalability and performance. Look at the XMPP group for more info on the various XMPP modules and efforts.
Aaron Winborn
Drupal Multimedia (my book, available now!)
AaronWinborn.com
Advomatic
Though I'm not entirely
Though I'm not entirely certain about any performance issues with using IRC protocol. Might be feasible as well. Both of them might be out of reach to many administrators in any case, depending on their hosting options.
The main thing to worry about is the browser hitting apache too much. That's where XMPP excels; various js libraries use a reverse AJAX pull (aka AJAX push or Comet) to allow the server to push info to the client.
I'm interested in possibly mentoring this, once you've decided what route you want to go.
Aaron Winborn
Drupal Multimedia (my book, available now!)
AaronWinborn.com
Advomatic
If not XMPP perhaps have you
If not XMPP perhaps have you looked into the bot project (http://drupal.org/project/bot)? Drupal has received significant contributions over the last year for the IRC integration.
Hi aaron & snufkin, Thank you
Hi aaron & snufkin,
Thank you for your valuable suggestions.
I did some googling and have gone through xmpp group on drupal. Xmpp seems more favorable. Any suggestions?
Aaron will you mentor this project?
I am new to Google Summer of Code. They have mentioned that I need three mentors - main mentor, backup mentor and a local mentor. How do I look for mentors? Also they have asked to get project proposal approved first. How to do that? Any help will be highly appreciated. Thanks a lot!
If you are considering XMPP,
If you are considering XMPP, I would advice you to add the missing functionality to DXMPP or XMPP Framework. You might also consider having a chat with their maintainers on IRC to get their views on your approach.
Regards,
Agreed with publicmind
Also: please include a timeline.
@publicmind: Thanks a lot! I
@publicmind: Thanks a lot! I am trying to get in touch with the maintainers of DXMPP & XMPP Framework and will post the details asap.
@dmitrig01: Thanks for your suggestion. I have already included one. Yes I will include the modified timeline according to the changed objective after discussing.
@aaron: Whenever you are free please reply to this comment. I want to discuss if I could work on DXMPP module.
Revised Proposal
Proposal for Google Summer of Code 2010 - Shashwat Srivastava
Overview – Development of Multi User Chat functionality, user theming, support for other modules and documentation for DXMPP Module.
Description - This project will contribute to the development of DXMPP module and add additional functionalities to it. They very first goal will be to add Multi User Chat capability (MUC). The next step will be user theming framework. API cleanup, extension and documentation will go on side by side. Also support for other modules such as token and views will be provided.
Timeline -
Mentors - Aaron, Coornail
Contact details -
Difficulty - Medium
You have my vote!
Looks excellent. You'll need to state that development is planned for the Drupal 6 version of the module. Also, not sure what you mean by 'User Theming'. I assume you mean 'Build alternate themes', as per the http://drupal.org/node/756280 feature request. (Part of that would be mocking up a theme or two; I have sketches of some ideas if you're not comfortable as a designer, and I'm sure we can recruit some people with a better mind for design at that stage.)
Ideally, I'd like to see documentation as more of a deliverable as well, for instance with a handbook page or three, considering the learning curve involved for every step of deploying a Drupal-XMPP system, even with a module doing some of the heavy lifting.
Finally, there were some more specifics in our initial discussions on IRC, such as "choosing alternate registration & authentication schemes" and examining XMPP Framework as part of the discovery process. I understand that's minutia that might not be relevant at this stage (and we might not want to tie ourselves into too much specificity until you've gone more into the initial discovery process), but I also want to make sure that's not lost in the shuffle.
Thanks,
Aaron
Aaron Winborn
Drupal Multimedia (my book, available now!)
AaronWinborn.com
Advomatic
looks good
jup looks good,
-builds on an existing project => project won't die after GSoC
-is not too hard and not too easy
-something the community really wants
especially if you can take Aaron's comments into account (about the alternate theme, the documentation pages and the alternate registration and authentication schemes) you've got my vote too
--
Check out more of my writing on our blog and my Twitter account.
Thank you aaron and kvantomme
Thank you aaron and kvantomme for your valuable suggestions. I am now preparing final draft and will post it soon for review. I plan to submit my proposal today itself.
I have modified the original
I have modified the original node. Please review my final draft.
Looks good to me. Nothing
Looks good to me. Nothing further to add. Thanks!
Aaron Winborn
Drupal Multimedia (my book, available now!)
AaronWinborn.com
Advomatic
Thanks aaron. I have
Thanks aaron. I have submitted my proposal. Here is the link to it - http://socghop.appspot.com/gsoc/student_proposal/show/google/gsoc2010/sh...
consider me available to help
consider me available to help with the mentoring. i'm the maintainer of the chatroom module, and interested in where this goes.
raw irc log
just wanted to make sure this doesn't get lost. we should revisit this as we're making api decisions down the road. beejeebus is justinrandell. i'd like to have him as another co-mentor.
thanks,
aaron
#drupal [04/09/10 09:17]- beejeebus aaronwinborn: looks good, i'd be interested in mentoring
- aaronwinborn that'd be awesome, beejeebus! wouldn't hurt to have another co-mentor
- beejeebus aaronwinborn: i've been looking into XMPP for the chatroom
- beejeebus aaronwinborn: i'd like to get to a point where drupal uses something like ejabberd as a conduit for realtime chat/notifications
- aaronwinborn same here, beejeebus -- and xmpp is certainly the most scalable option currently available for that
- aaronwinborn and actually, beejeebus -- i was just thinking, since you can configure ejabberd to use mysql, you could in theory expose its db to drupal, opening up all sorts of nifty possibilities on top of what's already available...
- aaronwinborn but we already have xmlrpc, xmpphp, and other options as well
- beejeebus aaronwinborn: right. the biggest design question i have is can all writes go via drupal?
- beejeebus so when a client sends a message to a chat, for example, it is sent to drupal. drupal then publishes it to the XMPP server
- aaronwinborn beejeebus: the downside to that would be having to use ajax for that, which negates any benefit of using comet
- beejeebus no, not really
- aaronwinborn but yes, i suppose we could do that
- aaronwinborn hmmm
- aaronwinborn i see
- beejeebus you have a persistent connection for updates
- beejeebus but a post for writes
- aaronwinborn so that xmpp would then be responsible for pushing back to clients
- aaronwinborn i'd assumed we'd just set up a bot for drupal
- beejeebus right. and so we don't kill servers like apache that can't do that
- aaronwinborn for the chatroom
- beejeebus well, it would be simpler to do that. but i'd love to have my cake and eat it too :-)
- aaronwinborn beejeebus: so yes, i'm definitely interested in you co-mentoring, or at least being available to hash out these implementation ideas
- beejeebus the reason i wrote chatroom was to get tight integration
- beejeebus but the downside is scale. polling just doesn't cut it
- beejeebus so i'd like to keep the tight integration, keep drupal as the canonical store, but keep the persistent stuff elsewhere. anyway, food for thought
- aaronwinborn beejeebus: part of the gsoc project is to work on dxmpp's api as well, making it work more as an engine. similar to xmpp framework in that sense, although the two currently make wildly different assumptions that make them incompatible thus far, unfortunately
- aaronwinborn beejeebus: but i'd definitely be interested in having it be a pluggable system, maybe if chatroom wants to allow other engines to run it? i haven't looked at that module in some time
- beejeebus aaronwinborn: yeah, i'm open to that
- aaronwinborn cool; i think that would be a nice option down the road beejeebus -- not everyone has the access to running ejabberd on their system -- it might be nice to, say, run chatroom for a year or so, then upgrade to xmpp later, and just be able to plug that in
- beejeebus aaronwinborn: i'd really like to push updates from drupal --> a realtime server --> clients
- beejeebus yes
- aaronwinborn beejeebus: the other option of course is that html5 i believe allows for server push, although you still have the apache problems w/ that. not sure if nginx has the same issues
- aaronwinborn beejeebus: in any case, i figure that xmpp + ejabberd + drupal is the best stop-gap measure until the various protocols mature
- beejeebus aaronwinborn: yes. websockets look nice, but they're not there yet
- aaronwinborn beejeebus: i'm going to edit & post this log to the forum post so it's not lost in the aether, if that's ok w/ you. some good ideas here
- beejeebus aaronwinborn: cool with me. just commented in on g.d.o. that i'm up for helping with the project
Aaron Winborn
Drupal Multimedia (my book, available now!)
AaronWinborn.com
Advomatic
Thanks a lot justinrandell!
Thanks a lot justinrandell! It would be really nice to have you as my mentor. I have added you in my mentors list :-)
Thanks aaron.
Shashwat
I will be posting my progress
I will be posting my progress continually in this discussion thread - http://groups.drupal.org/node/68928.