Difference between revisions of "Summer of Code 2011 Project Ideas"

Jump to navigation Jump to search
Line 107: Line 107:
** Implement real-time-protocol (using standard RTP)
** Implement real-time-protocol (using standard RTP)
** Investigate frameworks for hardware interaction & media encoding/decoding.
** Investigate frameworks for hardware interaction & media encoding/decoding.
=== Constrained Swift ===
* '''Summary''': Implement support for XMPP protocols that are targeted towards (resource-)constrained environments
* '''Difficulty''': Medium
* '''Details''': XMPP provides protocols for dealing with 'constrained' environments: session resumption and incremental roster retrieval for bandwidth-constrained situations, BOSH for places where keeping a long-lived connection is hard, SIFT for limiting the amount of incoming traffic, ... Support for these protocols is not only interesting when XMPP software is used in these particular situations, it also makes the client faster and more reliable in general. In this project, you will study the protocols that can improve Swift in these situations (Session Management, BOSH, SIFT, ...), and extend Swift (and the underlying Swiften XMPP library) to support these use cases.


=== Multi-account Support ===
=== Multi-account Support ===
Line 118: Line 123:
* '''Details''': Although XMPP has supported multiple simultaneously connected clients from the start, the user experience is in practice seldom what a user would expect. This has not been a big problem up until recently, since most people tend to connect with only one client at the same time. These days, however, people are constantly going back abd forth between their always-on mobile IM client and their desktop. Enabling a good user experience for this requires new protocols and techniques for transferring conversations between devices, ... This project is about implementing these protocols to streamline the use case of multiple resources
* '''Details''': Although XMPP has supported multiple simultaneously connected clients from the start, the user experience is in practice seldom what a user would expect. This has not been a big problem up until recently, since most people tend to connect with only one client at the same time. These days, however, people are constantly going back abd forth between their always-on mobile IM client and their desktop. Enabling a good user experience for this requires new protocols and techniques for transferring conversations between devices, ... This project is about implementing these protocols to streamline the use case of multiple resources


=== Constrained Swift ===
== Multi-User Chat Support ===
* '''Summary''': Implement support for XMPP protocols that are targeted towards (resource-)constrained environments
* '''Summary''': Implement full MUC protocol support, and improve MUC-related UI aspects
* '''Difficulty''': Medium
* '''Difficulty''': Easy
* '''Details''': XMPP provides protocols for dealing with 'constrained' environments: session resumption and incremental roster retrieval for bandwidth-constrained situations, BOSH for places where keeping a long-lived connection is hard, SIFT for limiting the amount of incoming traffic, ... Support for these protocols is not only interesting when XMPP software is used in these particular situations, it also makes the client faster and more reliable in general. In this project, you will study the protocols that can improve Swift in these situations (Session Management, BOSH, SIFT, ...), and extend Swift (and the underlying Swiften XMPP library) to support these use cases.
* '''Details''': Although Swift already supports multi-user chats, the support for it is still basic. For example, things that are still missing are room management/administrutanio, converting a one-to-one chat to a MUC, and other more advanced use cases. This project will improve the MUC support currently present in Swift to also support the more advanced use cases, while still providing a clear and good UI. Another goal of this project is to work out how to provide a UI that allows you to be in a large number of rooms simultaniously (which is currently hard to manage in most XMPP clients, including Swift).


== Gajim ==
== Gajim ==
20

edits

Navigation menu