Summer of Code 2014

From XMPP WIKI
Jump to navigation Jump to search

Participation

In order for the XSF to participate in Google Summer of Code 2014 we need to find out now if we will have Project and Mentor participation.

This page should be used to track any Project Idea so we can determine interest.

Dates

Opening of GSoC applications: February 03 at 19:00 UTC

Volunteering Project Orgs and Mentors

  • Joachim lindborg coordination and mentoring IoT related projects
  • Steffen Larsen mentoring of client / server projects. (will write some projects proposals later!)
  • Yann Leboulanger mentoring Gajim related projects

Project Ideas

Buddycloud and Social XMPP related topics

  • Secure XMPP messaging using public keys stored in XMPP nodes
  • An XMPP component that provides contextual location services - rehashed for 2014 technology that can be embedded into any XMPP application (runs as an XMPP component).
  • Writing tests for XMPP XEP compliance that extend the work on http://protocol.buddycloud.com/ to support other XEPs and XMPP things (code at: https://github.com/buddycloud/buddycloud-tests-framework)
  • Jingle WebRTC integration integration within a buddycloud chanel (mentored by the famous WebRTC developer, Philipp Hanke)
  • Standalone buddycloud server (XMPP server + buddycloud-server-java)
  • buddycloud SDKs for other languages and platforms: using XMPP, XMPP-FTW or the HTTP-API

Ignite Realtime, Smack to target Android and JavaSE project

A GSOC 2014 project idea: Allow Smack to target Android and JavaSE Smack should target Android and Java SE, therefore making aSmack obsolete. In order to achieve this goal, components of Smack need to be abstracted so that they can be impleted with Java SE APIs and their Android counterpart (if any). This abstraction also requires a modular build system.

Used Technologies: Java, Gradle, Android, Groovy, XMPP, XML

Prerequisites: Knowledge of Java. Helpful: XMPP enthusiast and interest in designing elaborate build systems

IoT connected devices and smart services projects

Internet of Things has become very big and the main game changer from early connected m2m systems is the very close connection between humans and Devices over Internet. To facilitate interoperability between these devices and towards user interactions. Standards are crucial there are several such ongoing standardisations some backed by big companies. XMPP is with its openness and the XSF to govern it's functionality is a perfect match to create a real open interoperable communication tool for IoT.

To help in this effort we need alot of support at various levels and therfore we turn to the GSoC to help us in creating the open tools for the Internet of Things

Add IoT support in chat klient of choice

  • Summary: Implement the IoT extensions into a client for example Psi Xabber.
  • Difficulty: Easy-Medium
  • Details: The IoT extensions ex XEP-0323 and XEP-0325 creates possibility to read and write fields to IoT devices. To be able to interact with devices a good interface is needed to edit control data and read sensor data to show diagrams of collected data and even to act as a provisioning client. With this tool any provider of a open IoT device would instantly have a uniform interface.
  • Skills (to have)
    • Ability to code in language of the client of choice
    • Ability to work with user interfaces
    • Git version control
    • Understanding of XMPP IoT extensions
    • Understanding of XMPP forms
  • Apply Now!

IoT smart logic

  • Summary: Use any XMPP library for ex SleekXMPP to create a logic environment to control devices and collect data.
  • Difficulty: Easy-Medium
  • Details: The IoT extensions ex XEP-0323 and XEP-0325 creates possibility to read and write fields to IoT devices. To let this create smart services there needs to be logic like IFTTT or IEC 61131 or other. The idea is to create such an environment and management of devices and fields to build smart logic and services in any IoT related domain. ´prefarably the logic should be visual Node red project
  • Skills (to have)
    • Ability to code
  • Skills (to have or to learn)
    • Git version control
    • Understanding of XMPP IoT extensions
    • Understanding of SleekXMPP
    • Rule engines Ladder Logic or
  • Apply Now!

Add IoT support in a language package and hardware system

  • Summary: Implement the IoT extensions into a programming language of you choice and run it on sensing hardware.
  • Difficulty: Easy-Medium
  • Details: The IoT extensions ex XEP-0323 and XEP-0325 creates possibility to read and write fields to IoT devices. To leverage the thresholds for others to use these extensions implementations is needed in common programming languages and hardware platforms as an example the SleekXMPP python package has an implementation. Or perhaps you would like to integrate some other environment such as the Lego BrickPi into an open robotics platform
  • Skills (to have)
    • Ability to code in language of the client of choice
  • Skills (to have or to learn)
    • Git version control
    • Understanding of XMPP IoT extensions
    • Understanding of XMPP forms
    • Usage of XMPP in small devices such as raspberries, Cubieboard etc
  • Apply Now!

Gajim projects

Multi-user Audio / Video conference

We already have jingle audio / video for one to one chat. Find the better way to attack this problem (several things exist, like MUJI, Jitsi Videobridge) and implement it in Gajim.

MAM

MAM is a way to store our logs server side, so we can share it in different locations.

End-to-End Encryption using TLS

Gajim already support E2E, GPG, OTR. The next protocol that should be implemented is chat over TLS. There is a proto-XEP and a IETF draft about that.