Difference between revisions of "GSoC/2019/Project Ideas"

From XMPP WIKI
Jump to: navigation, search
(List of Project Ideas: Add Smack ideas)
Line 14: Line 14:
  
 
Next, copy the template below to create a new entry and fill out all the required information.
 
Next, copy the template below to create a new entry and fill out all the required information.
 
= List of Project Ideas =
 
 
== Ignite Realtime's Smack ==
 
 
''Website:'' https://igniterealtime.org/projects/smack/index.jsp<br/>
 
 
''Source Code:'' https://github.com/igniterealtime/Smack/<br/>
 
 
''Description:'': Ignite Realtime creates free and open source software with and around the XMPP ecosystem. Smack is a client library for Java/Android applications.<br/>
 
 
''Main Contact Person:'' Florian Schmaus [mailto:flo@geekplace.eu <flo@geekplace.eu>]<br/>
 
 
''List of Teaser Tasks:'' [Smack Teaser Tasks https://issues.igniterealtime.org/browse/SMACK-853?filter=11513]<br/>
 
 
''Contact chat:'' open_chat@conference.igniterealtime.org <br/>
 
 
''Contact forum:'' https://discourse.igniterealtime.org/c/smack <br/>
 
 
=== Idea A ===
 
 
''Brief explanation:'' Add support for XMPP over WebSocket (RFC 7395) to the XMPP Client Library Smack.<br/>
 
 
''Involved Technologies:'' Android compatible Java 8, WebSockets<br/>
 
 
''Mentor(s):'' Paul Schaub (vanitasvitae) [mailto:vanitasvitae@fsfe.org <vanitasvitae@fsfe.org>]<br/>
 
 
''Deliverables / Expected Results:''<br/>
 
* Being able to connect to XMPP services via WebSocket.
 
* Definition of a WebSocket interface on top of the used WebSocket libraries, allowing for different WebSocket implementations.
 
 
Currently Smack can establish connections via TCP/IP and HTTP via BOSH. WebSockets are yet another way to connect to a server.
 
  
 
== Example Project Template ==
 
== Example Project Template ==
Line 63: Line 31:
 
''Contact forum:'' https://discuss.example.org/
 
''Contact forum:'' https://discuss.example.org/
  
=== Idea A: WebSocket Support ===
+
=== Idea A ===
  
 
''Brief explanation:'' Add support for A to example project.<br/>
 
''Brief explanation:'' Add support for A to example project.<br/>
Line 102: Line 70:
  
 
A is a promising new XMPP protocol extension. Its specification includes a ton of buzzwords ranging from blockchain to machine learning. But since it is very young protocol, there are no existing implementations. The goal of this project is to change that situation.
 
A is a promising new XMPP protocol extension. Its specification includes a ton of buzzwords ranging from blockchain to machine learning. But since it is very young protocol, there are no existing implementations. The goal of this project is to change that situation.
 +
 +
= List of Project Ideas =
 +
 +
== Ignite Realtime's Smack ==
 +
 +
''Website:'' https://igniterealtime.org/projects/smack/index.jsp<br/>
 +
 +
''Source Code:'' https://github.com/igniterealtime/Smack/<br/>
 +
 +
''Description:'': Ignite Realtime creates free and open source software with and around the XMPP ecosystem. Smack is a client library for Java/Android applications.<br/>
 +
 +
''Main Contact Person:'' Florian Schmaus [mailto:flo@geekplace.eu <flo@geekplace.eu>]<br/>
 +
 +
''List of Teaser Tasks:'' [Smack Teaser Tasks https://issues.igniterealtime.org/browse/SMACK-853?filter=11513]<br/>
 +
 +
''Contact chat:'' open_chat@conference.igniterealtime.org <br/>
 +
 +
''Contact forum:'' https://discourse.igniterealtime.org/c/smack <br/>
 +
 +
=== WebSocket (RFC 7395) support for Smack ===
 +
 +
''Brief explanation:'' Add support for XMPP over WebSocket (RFC 7395) to the XMPP Client Library Smack.<br/>
 +
 +
''Involved Technologies:'' Android compatible Java 8, WebSockets<br/>
 +
 +
''Mentor(s):'' Paul Schaub (vanitasvitae) [mailto:vanitasvitae@fsfe.org <vanitasvitae@fsfe.org>]<br/>
 +
 +
''Deliverables / Expected Results:''<br/>
 +
* Being able to connect to XMPP services via WebSocket.
 +
* Definition of a WebSocket interface on top of the used WebSocket libraries, allowing for different WebSocket implementations.
 +
 +
Currently Smack can establish connections via TCP/IP and HTTP via BOSH. WebSockets are yet another way to connect to a server.

Revision as of 22:29, 26 January 2019

Introduction

This wiki page lists all GSoC project ideas and their related software projects under the umbrella of the XSF.

Please note that to assess students applying to GSoC for XSF projects we want them to have submitted some small patches to one of the XMPP projects in advance, as this gives us an idea of their general ability to interact with the projects and submit patches. These should only be a day or two's work, and shouldn't be onerous!

A list of teaser tasks is given in the projects section, but please join the chat rooms for the respective projects and discuss them there, where mentors will be able to help you and know what you're up to. There are different teasers for different codebases, and more projects with new teasers will be appearing here over the next few days.

More information about XMPP and the XSF at GSOC 2019 can be found here.

How to add your project idea

If you do not have already an account on this wiki, then ask someone in the jdev@conference.jabber.org chatroom for help (sorry, we don't allow open registration because we're trying to avoid the spammers).

Next, copy the template below to create a new entry and fill out all the required information.

Example Project Template

Website: https://example.org/

Source Code: https://example.org/source

Description:: This is just an example project which can be used as template.

Main Contact Person: John Doe <john.doe@example.org>

List of Teaser Tasks: https://example.org/issues?tag=gsoc-teaser

Contact chat: chat@muc.example.org

Contact forum: https://discuss.example.org/

Idea A

Brief explanation: Add support for A to example project.

Involved Technologies: Smalltalk, FORTRAN77, COBOL

Mentor(s): Foo Bar (TheBatz) <foo.bar@exampole.org>

Deliverables / Expected Results:

  • Foo
  • Bar
  • Baz

Milestones:

  1. Implement parser and unit tests for parsing
  2. Implement protocol logic
  3. Interoperability tests against a different implementation

A is a promising new XMPP protocol extension. Its specification includes a ton of buzzwords ranging from blockchain to machine learning. But since it is very young protocol, there are no existing implementations. The goal of this project is to change that situation.

Idea B

Brief explanation: Add support for A to example project.

Involved Technologies: Smalltalk, FORTRAN77, COBOL

Mentor(s): Foo Bar (TheBatz) <foo.bar@exampole.org>

Deliverables / Expected Results:

  • Foo
  • Bar
  • Baz

Milestones:

  1. Implement parser and unit tests for parsing
  2. Implement protocol logic
  3. Interoperability tests against a different implementation

A is a promising new XMPP protocol extension. Its specification includes a ton of buzzwords ranging from blockchain to machine learning. But since it is very young protocol, there are no existing implementations. The goal of this project is to change that situation.

List of Project Ideas

Ignite Realtime's Smack

Website: https://igniterealtime.org/projects/smack/index.jsp

Source Code: https://github.com/igniterealtime/Smack/

Description:: Ignite Realtime creates free and open source software with and around the XMPP ecosystem. Smack is a client library for Java/Android applications.

Main Contact Person: Florian Schmaus <flo@geekplace.eu>

List of Teaser Tasks: [Smack Teaser Tasks https://issues.igniterealtime.org/browse/SMACK-853?filter=11513]

Contact chat: open_chat@conference.igniterealtime.org

Contact forum: https://discourse.igniterealtime.org/c/smack

WebSocket (RFC 7395) support for Smack

Brief explanation: Add support for XMPP over WebSocket (RFC 7395) to the XMPP Client Library Smack.

Involved Technologies: Android compatible Java 8, WebSockets

Mentor(s): Paul Schaub (vanitasvitae) <vanitasvitae@fsfe.org>

Deliverables / Expected Results:

  • Being able to connect to XMPP services via WebSocket.
  • Definition of a WebSocket interface on top of the used WebSocket libraries, allowing for different WebSocket implementations.

Currently Smack can establish connections via TCP/IP and HTTP via BOSH. WebSockets are yet another way to connect to a server.