Difference between revisions of "Summer of Code 2015"

Jump to navigation Jump to search
5,279 bytes added ,  08:59, 12 March 2015
no edit summary
m (→‎Teaser Tasks: Split out the Stroke stuff from Swiften)
Line 57: Line 57:
* '''Contact Details:''' Chatroom at swift@rooms.swift.im
* '''Contact Details:''' Chatroom at swift@rooms.swift.im


=== Network recovery in Swift ===
* '''Software Project:''' Swift
* '''Software URL:''' http://swift.im/swift
* '''Software VCS URL:''' https://github.com/swift/swift
* '''Software Description:''' Swift is a desktop XMPP chat client. It aims to prioritise usability and usefulness to users in preference to an extensive niche feature list.
* '''Brief explanation:''' Sometimes network connections fail, and this is frustrating for users when they're chatting. It's more frustrating if the client doesn't recover. A student working on this project will look at ways of improving the experience around network failures for Swift. This would include support for XEP-0198 session resumption (where a client can tell the server to resume an old session when it reconnects), ways to detect MUC chatroom disconnections while the client is still connected, ways to detect a machine sleeping and waking etc.
* '''Expected results:''' A series of self-contained PRs to cover each enhancement, including:
** XEP-0198 resume support
** "Gone away" MUC detection (and recovery)
** Sleep/wake discovery
** "Network down' discovery
* '''Knowledge Prerequisite:'''
** '''C++ fluency''': Vital
** '''Qt Experience''': Desirable, can be learned
** '''XMPP Experience''': Desirable, can be learned
** '''Git experience''': Desirable, can be learned
** '''Boost experience''': Desirable, can be learned
* '''Difficulty:''' Moderate
* '''Implementation Language:''' C++
* '''Mentor:''' Kevin Smith, Tobias Markmann
* '''Contact Details:''' Chatroom at swift@rooms.swift.im
=== Multi-account support in Swift===
* '''Software Project:''' Swift
* '''Software URL:''' http://swift.im/swift
* '''Software VCS URL:''' https://github.com/swift/swift
* '''Software Description:''' Swift is a desktop XMPP chat client. It aims to prioritise usability and usefulness to users in preference to an extensive niche feature list.
* '''Brief explanation:''' Swift has an interface designed for connecting to a single account, for simplicity (a goal of Swift's). Some users wish to connect to several servers at once, and the current solution of "run multiple copies of Swift" is unsatisfying. A student working on this project would project a pleasing user experience allowing users to connect to several accounts in a single Swift, without losing the simplicity that comes from the current single-account approach.
* '''Expected results:'''
** Logging in with multiple accounts
** A single roster window, showing each account's roster (split)
** Merged but identifyable bookmarks and recent chats
** Ability to add a contact to any account
** Ability to join MUCs with any account
** Ability to perform other actions (e.g. user search) with any account
** Setting cross-account things in only one place - e.g. a single status setter for all sessions
** Solving issues anywhere else a user might need to choose their account before an action.
* '''Knowledge Prerequisite:'''
** '''C++ fluency''': Vital
** '''Ability to create pleasant UIs''': Vital
** '''Qt Experience''': Desirable, can be learned
** '''XMPP Experience''': Desirable, can be learned
** '''Git experience''': Desirable, can be learned
** '''Boost experience''': Desirable, can be learned
* '''Difficulty:''' Easy code, challenging UI
* '''Implementation Language:''' C++
* '''Mentor:''' Kevin Smith, Tobias Markmann
* '''Contact Details:''' Chatroom at swift@rooms.swift.im
=== Voice and Video in Swift===
* '''Software Project:''' Swift
* '''Software URL:''' http://swift.im/swift
* '''Software VCS URL:''' https://github.com/swift/swift
* '''Software Description:''' Swift is a desktop XMPP chat client. It aims to prioritise usability and usefulness to users in preference to an extensive niche feature list.
* '''Brief explanation:''' Jingle is an XMPP protocol that allows streaming of voice and video (amongst other things) for video calling. We'd like to support this in Swift. Some preliminary work has been done to use the libwebrtc library to add video calling, but this is at best prototype standard, and doesn't use Jingle. A student would take this work (or, possibly, start again with a new and more suitable library) and bring it to production quality with Jingle used for negotiation, such that video calls can be made from Swift.
* '''Expected results:''' A series of continual improvements, merged through the summer
** Updating the branch to the latest libwebrtc
** Merging the code with master, behind compilation flags such that it doesn't get enabled for normal users
** Fixing issues with audio streaming in current implementation
** Adding Jingle for negotiation
** Enabling the feature by default on master
* '''Knowledge Prerequisite:'''
** '''C++ fluency''': Vital
** '''Ability to create pleasant UIs''': Vital
** '''Ability to work with an underdocumented third-party library''': Vital
** '''Qt Experience''': Desirable, can be learned
** '''XMPP Experience''': Desirable, can be learned
** '''Git experience''': Desirable, can be learned
** '''Boost experience''': Desirable, can be learned
** '''WebRTC experience''': Desirable, can be learned
* '''Difficulty:''' Moderate
* '''Implementation Language:''' C++
* '''Mentor:''' Kevin Smith, Tobias Markmann
* '''Contact Details:''' Chatroom at swift@rooms.swift.im


=== Openfire New Protocol support ===
=== Openfire New Protocol support ===

Navigation menu