Community:SummerOfCode14:Brainstorming: Difference between revisions

m
→‎Instantbird: Fix incorrectly used mark-up
m (→‎Instantbird: Fix incorrectly used mark-up)
Line 358: Line 358:
! Comments
! Comments
|-
|-
! WebRTC support
| WebRTC support
! ''Goal: Support voice/video chat using WebRTC via XMPP (and potentially other protocols).''
| ''Goal: Support voice/video chat using WebRTC via XMPP (and potentially other protocols).''
Add voice and video chat to Instantbird via WebRTC. This will involve adding APIs to allow protocols to prepare a voice/video connection to a contact and some basic user interface to show the video feed.
Add voice and video chat to Instantbird via WebRTC. This will involve adding APIs to allow protocols to prepare a voice/video connection to a contact and some basic user interface to show the video feed.
! JavaScript, XPCOM, XUL
| JavaScript, XPCOM, XUL
! Florian Quèze
| Florian Quèze
! Benedikt Pfeifer
| Benedikt Pfeifer
! XEP-0320, XEP-0338, XEP-0339, XEP-0343 for XMPP
| XEP-0320, XEP-0338, XEP-0339, XEP-0343 for XMPP
|-
|-
! Single window UI:  
| Single window UI:  
! ''Goal: Provide an alternative UI that works well in a single window.''
| ''Goal: Provide an alternative UI that works well in a single window.''
To design and implement a single-window UI that does not require a separate contact list and makes good use of the available space when the window is full-screen. Avenues to explore are e.g. multiple side-by-side chats (extending what is currently possible with tabs), and automatic resizing of conversations. The student should bring a good (if not complete) vision for this project, demonstrated via mockups in the application.
To design and implement a single-window UI that does not require a separate contact list and makes good use of the available space when the window is full-screen. Avenues to explore are e.g. multiple side-by-side chats (extending what is currently possible with tabs), and automatic resizing of conversations. The student should bring a good (if not complete) vision for this project, demonstrated via mockups in the application.
! JavaScript, XPCOM, XUL
| JavaScript, XPCOM, XUL
! Florian Quèze
| Florian Quèze
!
|
!
|
|-
|-
! FileLinks in IMs / File transfer
| FileLinks in IMs / File transfer
! ''Goal: File transfers that work reliably for every protocol.''
| ''Goal: File transfers that work reliably for every protocol.''
The Thunderbird Filelink feature allows users to upload attachments to  an online storage service, replacing the email attachment with a link. This existing code could be used to implement file transfer. While some protocols support file transfer directly, this approach would provide a fallback that should always work. Designing and implementing a good UI  frontend would also be required.
The Thunderbird Filelink feature allows users to upload attachments to  an online storage service, replacing the email attachment with a link. This existing code could be used to implement file transfer. While some protocols support file transfer directly, this approach would provide a fallback that should always work. Designing and implementing a good UI  frontend would also be required.
! JavaScript, XPCOM, XUL
| JavaScript, XPCOM, XUL
! Florian Quèze
| Florian Quèze
! aleth
| aleth
! The frontend should be flexible enough to be able to handle other file transfer methods when they are implemented, e.g. WebRTC for XMPP or DCC for IRC.
| The frontend should be flexible enough to be able to handle other file transfer methods when they are implemented, e.g. WebRTC for XMPP or DCC for IRC.
|-
|-
! Improve JS-XMPP
| Improve JS-XMPP
! ''Goal: Ease working with the JavaScript XMPP implementation and implement new features.''
| ''Goal: Ease working with the JavaScript XMPP implementation and implement new features.''
Include better syntax for XML handling, implementing handling of MUCs  and other features. Feature-parity with libpurple's XMPP support is one of the prerequisites for replacing the libpurple XMPP plug-in that is currently used. One possible improvement would be to support voice and video calls between a JS-XMPP client and a Jingle client using WebRTC.
Include better syntax for XML handling, implementing handling of MUCs  and other features. Feature-parity with libpurple's XMPP support is one of the prerequisites for replacing the libpurple XMPP plug-in that is currently used. One possible improvement would be to support voice and video calls between a JS-XMPP client and a Jingle client using WebRTC.
! JavaScript, XPCOM
| JavaScript, XPCOM
! Florian Quèze
| Florian Quèze
! Patrick Cloke
| Patrick Cloke
!
|
|-
|-
! Additional JavaScript protocol plug-ins
| Additional JavaScript protocol plug-ins
! ''Goal: Implement new protocol plug-ins in JavaScript, or create more stable implementations of existing ones.''
| ''Goal: Implement new protocol plug-ins in JavaScript, or create more stable implementations of existing ones.''
Instantbird supports protocol plugins implemented in JavaScript. The student will either add support for new protocols in Instantbird (if so, explain why this protocol matters) or reimplement in JavaScript an existing protocol that is poorly supported by libpurple (if so, explain what will be better supported in the new implementation, or why the current implementation is not adequate). The student working on new protocols should take every opportunity to improve the code and APIs shared by all JS protocol plugins.
Instantbird supports protocol plugins implemented in JavaScript. The student will either add support for new protocols in Instantbird (if so, explain why this protocol matters) or reimplement in JavaScript an existing protocol that is poorly supported by libpurple (if so, explain what will be better supported in the new implementation, or why the current implementation is not adequate). The student working on new protocols should take every opportunity to improve the code and APIs shared by all JS protocol plugins.
! JavaScript, XPCOM, maybe js-ctypes
| JavaScript, XPCOM, maybe js-ctypes
! Patrick Cloke
| Patrick Cloke
! Patrick Cloke
| Patrick Cloke
! IRC, XMPP, Twitter and Yahoo have already been implemented in JavaScript and should not be considered; Some base code exists for OSCAR (AIM/ICQ); SIP, Bonjour and OSCAR are probably the most wanted protocols.
| IRC, XMPP, Twitter and Yahoo have already been implemented in JavaScript and should not be considered; Some base code exists for OSCAR (AIM/ICQ); SIP, Bonjour and OSCAR are probably the most wanted protocols.
|-
|-
! Off-The-Record messaging integration
| Off-The-Record messaging integration
! ''Goal: Integrate OTR in an easy to use fashion.''
| ''Goal: Integrate OTR in an easy to use fashion.''
OTR is an often requested feature, but must be integrated in such a way to require little user interaction. Furthermore, the student could try to make Instantbird compliant with the secure messaging checklist suggested by Saint-Andre (link?)
OTR is an often requested feature, but must be integrated in such a way to require little user interaction. Furthermore, the student could try to make Instantbird compliant with the secure messaging checklist suggested by Saint-Andre (link?)
! JavaScript, XUL, XPCOM, maybe js-ctypes or C++
| JavaScript, XUL, XPCOM, maybe js-ctypes or C++
! Patrick Cloke
| Patrick Cloke
! Patrick Cloke
| Patrick Cloke
|}
|}


3

edits