20
edits
m (Invite student ideas too.) |
|||
(5 intermediate revisions by the same user not shown) | |||
Line 40: | Line 40: | ||
Skills: GIS functions, database scaling techniques, XMPP component design | Skills: GIS functions, database scaling techniques, XMPP component design | ||
===Realtime search service === | === iOS XMPP client with pub-sub support === | ||
" | |||
'''An open-source XMPP client for iPhones and iPads with support for open social networking. AKA, get standards compliant XMPP based social networking into the hands of of the masses.''' | |||
Difficulty: ''Medium - Hard'' | |||
To be successful, this project will deliver and XMPP client that is easy to use, and standards compliant. It should handle roster synchronisation and use XEP-0198 to ensure reliable message delivery on an unreliable mobile network. The iOS client should also provide integrated social networking functions that can challenge the closed Twitter and Facebook hegemony. | |||
It should provide the following social features: | |||
* location updating and sharing with XEP-0080 and XEP-0255 | |||
* do channel posting and updating using pub-sub | |||
* handle mood setting | |||
* pay particular attention to ease of use and good UI design principles | |||
The client will need to be well integrated with the iOS core features to ensure long battery life while running in the background. | |||
Skills: Good XMPP knowledge. XMPPFramework skills. | |||
===Realtime search service for pub-sub nodes === | |||
"Build a library that makes it easy to search for content in pub-sub nodes" | |||
Difficulty: ''Medium - Hard'' | Difficulty: ''Medium - Hard'' | ||
Pub-sub servers shipped with XMPP servers are gaining increased use. Additionally pub-sub like "code-on-a-node" projects are gaining traction. | |||
The aim of this project is to develop a library to help search through indexed pub-sub node content. | |||
The library should be easily re-usable in other applications to enable searching and notifications based on content or specific changes to that content. | |||
This | This would let users perform queries like "Show me all pub-sub updates that contain #FOSDEM" or "Show me all changes to nodes already containing #FOSDEM" | ||
Ideally this content could even be redistributed using pub-sub. | |||
Skills: pub-sub, node.js (or similar async languages) | Skills: pub-sub, node.js (or similar async languages) | ||
Line 109: | Line 130: | ||
* '''Summary''': Implement support for XMPP protocols that are targeted towards (resource-)constrained environments | * '''Summary''': Implement support for XMPP protocols that are targeted towards (resource-)constrained environments | ||
* '''Difficulty''': Medium | * '''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. | * '''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, Link-local for serverless locations, ... 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, Link-local, ...), and extend Swift (and the underlying Swiften XMPP library) to support these use cases. | ||
=== Multi-account Support === | === Multi-account Support === |
edits