Difference between revisions of "Summer of Code 2012"

Jump to navigation Jump to search
6,724 bytes added ,  20:25, 17 March 2012
(Added poezio)
 
(6 intermediate revisions by the same user not shown)
Line 79: Line 79:
* '''Difficulty''': Easy
* '''Difficulty''': Easy
* '''Details''': XMPP (Through the PEP offerings) supports many social-ish data structures, including a user's location, their mood and their current activity. A student working on this project would add support for these protocols to Swiften, and build a 'user profile' UI around these data to give a view on a contact's state that goes beyond the usual 'Name, address, telephone number' profile. A nice touch would be adding map overlays to the location data, so you could see where all your friends were on a map together, and the suchlike.
* '''Details''': XMPP (Through the PEP offerings) supports many social-ish data structures, including a user's location, their mood and their current activity. A student working on this project would add support for these protocols to Swiften, and build a 'user profile' UI around these data to give a view on a contact's state that goes beyond the usual 'Name, address, telephone number' profile. A nice touch would be adding map overlays to the location data, so you could see where all your friends were on a map together, and the suchlike.
=== Screen sharing ===
* '''Summary''':
* '''Difficulty''':
* '''Details''':


== Spectrum ==
== Spectrum ==
Line 87: Line 92:
* '''Difficulty''': Easy/Medium
* '''Difficulty''': Easy/Medium
* '''Details''': Admins are usually running more Spectrum 2 instances and there is a need for easy interface to manage them and gather the statistics. A student would create web-interface in any language (but Python/Ruby/PHP is preferred) allowing the admin to manage Spectrum 2 instances. The web-interface would communicate with Spectrum 2 instance using the XMPP by sending/receiving messages (Spectrum 2 part of this communication is already implemented and is not part of this project). C++ knowledge is not strictly needed for this project, but would be useful. This is often requested feature and there is a place for student's creativity.
* '''Details''': Admins are usually running more Spectrum 2 instances and there is a need for easy interface to manage them and gather the statistics. A student would create web-interface in any language (but Python/Ruby/PHP is preferred) allowing the admin to manage Spectrum 2 instances. The web-interface would communicate with Spectrum 2 instance using the XMPP by sending/receiving messages (Spectrum 2 part of this communication is already implemented and is not part of this project). C++ knowledge is not strictly needed for this project, but would be useful. This is often requested feature and there is a place for student's creativity.
* '''More info''': http://spectrum.im/projects/spectrum/wiki/Summer_of_Code_2012#Web-interface


=== Ad-Hoc commands ===
=== Ad-Hoc commands ===
Line 92: Line 98:
* '''Difficulty''': Medium/Hard
* '''Difficulty''': Medium/Hard
* '''Details''': The goal of this project is to design an interface for creating Ad-Hoc commands either by Spectrum 2 and also by its backends and create simple Ad-Hoc commands for Spectrum 2 instance maintenance (like "Send message to online users" and so on). A student would use Swiften XMPP library (already used in Spectrum 2) to add Ad-Hoc commands support. Then the student has to map Ad-Hoc commands and data forms into the Google Protobuf to let backends to use it.
* '''Details''': The goal of this project is to design an interface for creating Ad-Hoc commands either by Spectrum 2 and also by its backends and create simple Ad-Hoc commands for Spectrum 2 instance maintenance (like "Send message to online users" and so on). A student would use Swiften XMPP library (already used in Spectrum 2) to add Ad-Hoc commands support. Then the student has to map Ad-Hoc commands and data forms into the Google Protobuf to let backends to use it.
* '''More info''': http://spectrum.im/projects/spectrum/wiki/Summer_of_Code_2012#Ad-Hoc-commands


=== Twitter backend ===
=== Twitter backend ===
Line 97: Line 104:
* '''Difficulty''': Medium
* '''Difficulty''': Medium
* '''Details''': Spectrum 2 supports Twitter network using the Pidgin's microblog-purple plugin. This plugin is not designed to be easily used in the way Spectrum 2 uses it. The goal of this project is to implement standalone Twitter backend. Backend is a console application which connects the main Spectrum 2 instance and then handles XMPP user's requests and map them to the Twitter network. Backend can be written in any language with Google Protobuf support, but C++ or Python is preferred.
* '''Details''': Spectrum 2 supports Twitter network using the Pidgin's microblog-purple plugin. This plugin is not designed to be easily used in the way Spectrum 2 uses it. The goal of this project is to implement standalone Twitter backend. Backend is a console application which connects the main Spectrum 2 instance and then handles XMPP user's requests and map them to the Twitter network. Backend can be written in any language with Google Protobuf support, but C++ or Python is preferred.
* '''More info''': http://spectrum.im/projects/spectrum/wiki/Summer_of_Code_2012#Twitter-backend


== Prosody ==
== Prosody ==
Line 144: Line 152:
* http://carsonified.com/wp-content/uploads/2010/04/maslow-hierarchy-interface-design.png
* http://carsonified.com/wp-content/uploads/2010/04/maslow-hierarchy-interface-design.png
* http://doomsong.co.uk/extensions/render/message-archive-management.html  
* http://doomsong.co.uk/extensions/render/message-archive-management.html  
* http://xmpp.org/extensions/xep-0136.html  
* http://xmpp.org/extensions/xep-0136.html
 
=== The "it 'effing works as expected" Project ===
'''Summary''' buddycloud users deserve a great (and predictable) experience
 
'''Difficulty''' Medium - Difficult
 
'''Details'''  At buddycloud HQ we're trying to make more than a "Yeah I think it supports that..." service. When a sysadmin deploys a buddycloud server they should know that it absolutely works as expeced and has passed your rigerous test suite. To run these tests your project will be to devise a suite of tests that eventually produces a table like http://mobilehtml5.org/
 
Tests would fire off the necessary commands to "create user a", "create user b", "a follows b's channel" "b apporves a's follow request" etc.


Yor project will define the base standard of support that guarantees a buddycloud compatible server works as expected. Your tests will help sysadmins choose standards compliant servers and help users know when their server is not supporting all features (and encourage non-standard implmentations to fix their implementations).


This project could / should also be avaliable to test other XMPP services too.
'''More info'''
* http://www.tigase.org/project/testsuite
* http://seleniumhq.org/projects/


=== buddycloud places ===
=== buddycloud places ===
Line 200: Line 223:
* https://github.com/buddycloud/iphone-client
* https://github.com/buddycloud/iphone-client
* https://github.com/buddycloud/android-client
* https://github.com/buddycloud/android-client
=== buddycloud media server ===
'''Summary''' Work with the core buddycloud team to spec and build a reference implementation of the buddycloud media server
'''Difficulty''' Difficult
'''Details'''  Sharing videos, pictures and documents powers so much of what we do on the internet and strengthens relationships with loved ones. We all loving seeing photos of loved ones, funny videos or albums of friend's events. Your help on this project will make a huge impact: a well designed media server has the power to change the way we share media and work documents. This project is special - it will be working very closely with the buddycloud core team and other XMPP exports to rethink how  we share media: both in buddycloud channels and when we send instant messages. This project is much more than building another Twitpic clone.
An important part of this project will be getting seamless sharing working by successfully bridging the XMPP and HTTP protocol worlds. The buddycloud media server should enable drag and drop sharing over authenticated XMPP and HTTP connections. The server should also allow viewing of content from open channels to non-authenticated viewers on the web.
'''Skills'''
* very strong XMPP knowledge
* excellent web frontend design skills
* web-sockets and XMPP server knowledge
* great skills in working with an existing team and communicating
'''See Also'''
* http://salon.io/
* https://buddycloud.org/wiki/Buddycloud_media_server
=== ncurses buddycloud ===
see: http://wiki.xmpp.org/web/Summer_of_Code_2012#Buddycloud-like_microblogging
== Poezio ==
== Poezio ==


Line 257: Line 305:


* '''XEPs used''': 0166, 0234, 0260, 0261
* '''XEPs used''': 0166, 0234, 0260, 0261
== Gajim ==
[http://gajim.org Gajim] is a jabber client written in python and GTK. If you're interested in this (or other) project, please jump into the [xmpp:gajim@conference.gajim.org?join gajim@conference.gajim.org] room and talk to Asterix.
=== Jingle Relay Nodes ===
* '''Summary''': Implement jingle relay nodes protocol
* '''Difficulty''': Medium
* '''Details''':
The goal of this project is to improve reliability of jingle communication using Nodes.
* '''XEPs used''': 0278
=== Last Message Correction ===
* '''Summary''': Implement XMPP and GUI part of last message correction protocol
* '''Difficulty''': Easy
* '''Details''':
The goal of this project is to :
** allow user to modify the last message he sent
** show corrections we received from a contact.
* '''XEPs used''': 0308
== Jitsi ==
[http://jitsi.org Jitsi] is an XMPP audio/video and chat communicator that also supports other protocols such as SIP, AIM/ICQ, Windows Live, Yahoo! as well as many other useful [[http://jitsi.org/features features]]. Jitsi's XMPP projects are also available [http://jitsi.org/index.php/Development/GSoC-XMPP here]
=== XMPP Echo and Mirror === 
* '''Summary''': Implement an XMPP component that can Echo and Mirror Audio/Video traffic
* '''Difficulty''': Medium
* '''Details''': Implement an XMPP component and Openfire plugin that can provide JIDs/numbers, which, when called, simply play pre-recorded movies or echo and mirror audio and images from the users.
* '''XEPs used''': 0166, 0167, 0176
* '''More info''': http://jitsi.org/index.php/GSOC/XMPPEchoAndMusic
=== libjitsi spin-off === 
* '''Summary''': Spinning a libjitsi off of Jitsi so that other XMPP projects could also use it.
* '''Difficulty''': Medium
* '''Details''': Jitsi implements a lot of features and supports many complex operations. We’d like to make our work available to all XMPP projects by creating a Jitsi media library.
* '''XEPs used''': 0166, 0167, 0176
* '''More info''': http://jitsi.org/index.php/GSOC/LibJitsi
=== Secure XMPP Server Discovery with DNSSEC === 
* '''Summary''': A Java implementation for DNSSEC.
* '''Difficulty''': Difficult
* '''Details''': Implement support for the DNSSEC protocol in Java and replace the existing libunbound implementation in Jitsi so that XMPP services (among others) could be securely recovered before connection.
* '''More info''': http://jitsi.org/index.php/GSOC/DNSSEC
=== Translating libjingle's PseudoTcp in Java === 
* '''Summary''': A Java implementation libjingle's PseudoTcp protocol.
* '''Difficulty''': Difficult
* '''Details''': Ever noticed how GoogleTalk allows you to exchange files directly with peers and the speed is so awesome? Well, an important part of that is a tiny TCP implementation that works on top of UDP. Would you like to work on it with us? 
* '''More info''': http://jitsi.org/index.php/GSOC/PseudoTCP
=== XMPP Goodies === 
* '''Summary''': Various XMPP additions to Jitsi.
* '''Difficulty''': Easy
* '''Details''': Implement support for various XMPP related features such as user search, last message correction and retrieval of messages sent through other locations.
* '''More info''': http://jitsi.org/index.php/GSOC/XMPPGoodies
=== TCP for Jingle Nodes === 
* '''Summary''': Implement support for TCP in Jingle Nodes.
* '''Difficulty''': Medium++
* '''Details''': JingleNodes provide services that can proxy (relay) media when all participants are in a call. This project is about making this possible over TCP for JN's Java implementation.
* '''More info''': http://jitsi.org/index.php/GSOC/TCPJingleNodes




== More projects ==
== More projects ==
20

edits

Navigation menu