GSoC 2011 Proposal for Idea: Innovative new UI/Interaction Methods

Rohan Garg rohangarg at ubuntu.com
Thu Mar 31 23:08:45 CEST 2011


Hi!
I am attaching a proposal regarding the idea "Innovative new UI/Interaction
Methods" [1] for GSoC 2011, feedback would be highly appreciated. I will
submit this proposal on google melange in a couple of days if there are no
issues with the proposal.

Regards
Rohan Garg

[1]
http://community.kde.org/GSoC/2011/Ideas#Project:_Innovative_new_UI.2FInteraction_Methods
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/kde-telepathy/attachments/20110401/0cd0d7fe/attachment-0001.htm 
-------------- next part --------------
Name: Rohan Garg

Email Address: rohan16garg at gmail.com
               rohangarg at kubuntu.org

Freenode IRC Nick: shadeslayer

IM Service and Username: Jabber : rohan16garg at gmail.com
                         Jabber : rohangarg at jabber.org

Location (City, Country and/or Time Zone): Gurgaon, India GMT +5:30

Proposal Title: Innovative new UI/Interaction Methods

Motivation for Proposal / Goal:

In any Desktop Environment, it is imperative that each application interacts with other applications running on the Desktop.KDE Telepathy should be no different, it should ideally interact with Plasma Desktop and Nepomuk, both of which are important aspects of a complete KDE SC experience.

Keeping that in mind i would like to propose the following features as a part of GSoC 2011 for Telepathy KDE 

  * A Chat logger which logs everything into nepomuk databases

  * A KRunner plugin that would allow you to perform the following actions
    - Call $Person 
    - Chat $Person 
    - conversations:<Keyword 1> <Keyword 2> 
    - email:<Keyword 1> <Keyword 2> 
    - timestamp: <Time Stamp> 
    - A combination of 2 or more plugins from the above list

  * Adding file transfers with contacts meta data
  * A Activity aware QML Contact List widget

Implementation Details:

  1) Extend KDE Telepathy Logger
     The work involved in this task would be to get Telepathy Logger to talk to nepomuk and store all the logs in nepomuk, where they are associated with the person you were talking to.

     For this feature we will look into finishing off any remaining issues with the current telepathy kde logger and then store logs in Nepomuk via the nmo:Message ontology.The nmo:Message ontology provides us with the various subclasses which are ideal for use with this idea.The ontology even provides us methods to link this data to PIM accounts via pimo: , thus giving telepathy kde the ability to associate IM Chat logs with PIM Kontacts
     
     All the chat logs in nepomuk are stored along with crucial metadata fields such as From, To, Time Stamp, the actual message content, and so on and so forth.

  2) Writing krunner plugins
     This is the easy bit and could probably be implemented within 2 weeks max. These plugins allow you to interact with telepathy via KRunner as one usually does with other KDE applications and should work as described in the previous mail [1]

  3) Adding file transfers with contacts meta data
     When a contact sends you a file, upon receiving the file it is populated with meta data such as who sent you the file. As Daniele E. Domenichell pointed out, the file transfer library isn't quite ready yet, so i guess we can improve the file transfer mechanism during the GSoC period and then implement this feature once File transfer is working. ( I distinctly remember someone saying that they would ideally like to finish this before GSoC starts, can't exactly remember who )

  4) A Activity aware QML Contact List widget
     A QML Widget that is activity aware, i.e say for eg. you are on a Activity called 'Work' , then the widget will show all your contacts that have been put under the Work group in KDE PIM by you.

      This is quite simply a widget that would sit on your desktop and allow you to :
      
      * Initiate a chat with a contact
      * Initiate a call with a contact
      * See the persons current status
      * Email a contact

Tentative Timeline (in weekly intervals until 2 weeks after the end of GSoC):

Weeks 1 and 2 ( May 23 - June 6th ) : 
Unfortunately during these 2 weeks i have my end semester exams and i will be pretty much unavailable from 2nd May, but, i have already been learning about how Telepathy KDE works for the past 10 days and have even fixed a few build issues and a few trivial bugs in the Model View components.

Week 3 ( June 6th - June 13th ): 
Start studying Telepathy KDE Logger, evaluate what portions of it are incomplete and need work before starting work on Telepathy KDE Nepomuk Logger. Work out details on the Activity aware Telepathy KDE plasmoid and talk to Plasma developers what new technologies they have to offer to us.Get to know what all pimo: offers us in terms of integration with KDE and collaborate on this with KDE PIM Developers.

Weeks 4 and 5 (June 13th - June 27th ) : 
Start working on the QML Telepathy Plasmoid, i already have a mockup of the plasmoid here [0].Figure out ways to integrate with Plasma Activities and how the behavior of the plasmoid will change on changing activities and eventually implement the entire plasmoid in QML with inputs from Plasma Developers.

Weeks 5 to 10 ( June 27th - July 25th ) : 
Start working on Telepathy KDE Nepomuk logger and start writing the necessary code using the nmo:Message ontology and it's properties. Link logs with KDE PIM data using the nco:ContactMedium ontology ( this ontology gives us nco:IMAccount, nco:PhoneNumber, and nco:EmailAddress to integrate these logs with PIM Data ).Possibly also find a way to integrate logs with nco:Role, i'm still reading up on this and a bit unsure on how to integrate logs with this ontology, so maybe nepomuk developers can provide more insight into this.

Now, to actually access the logs i was thinking of writing a bunch of DBus methods so that other apps can access these logs and a seprate Telepathy Log viewer can be made by calling these DBus methods.

In the end, make all of the above features visible via Telepathy KDE GUI and a configuration dialog so as to set the period of logging, ranging from M Days to N Years.No one want's to keep logs for ever ;)

Week 10 to 12 ( July 25th - August 8th ) :
Implement KRunner plugins with functionality mentioned as above and attach file transfers to pimo:Person

Week 13 ( August 8th - August 15th ):
Document Code, Fix bugs, prepare branch for merging into master

Week 14 to 16 ( August 15th - August 29th )
Document any undocumented code, merge code back into master, start looking for new projects inside telepathy KDE.

Do you have other obligations from late May to early August (school, work, vacation, etc.)? Please note that we expect the Summer of Code to be a full-time, 40-hr a week occupation. It is important to be clear and upfront about other commitments that you may have during that time.

I have exams in the month of May till the first week of June, my Academic calendar can be found here [1].So I will probaly not be available for that particular period of time.Apart from that i will be free for the whole GSoC period and i have no other commitments as well.
Since i have no other commitments apart from GSoC i can easily give extra time once i start coding to compensate for the loss of the first 2 weeks.

About Me (let us know who you are!):

Hi! I'm Rohan Garg and I am a student at Institute of Technology and Management pursuing my B.Tech in Electronics and Communication.I'm in my 3rd year and have been contributing to Kubuntu for the past 18 months, and to KDE for the past 6 months.I recently got a KDE Developer account.The majority of my work has been on fixing small bugs here and there, but i would love to work on a proper feature for KDE Project that makes it into the next release.My primary domain of interest is Networking and Communication which is one of the reasons i took up this project.You can find more about me at [2].I am also one of the Co Maintainers of Project Neon which provides daily builds of KDE [3].

[0] http://goo.gl/1Vlxk
[1] http://goo.gl/2IcTm
[2] https://wiki.ubuntu.com/shadeslayer
[3] http://goo.gl/xNzlR
[4] https://projects.kde.org/users/2792


More information about the KDE-Telepathy mailing list