Difference between pages "GSoC/2020" and "GSoC/2020/Project Ideas"

From XMPP WIKI
(Difference between pages)
Jump to navigation Jump to search
 
 
Line 1: Line 1:
= Google Summer of Code 2020 =
= Introduction =


Disclaimer: It is not yet finally decided whether or not the XMPP Standards Foundation will participate in this years GSoC.
This wiki page lists all GSoC project ideas and their related software projects under the umbrella of the XSF.


The XSF is an umbrella organisation for various XMPP-related projects. As such, there's two tiers involved - the XSF itself, which is responsible for cat-herding mentors to submit ideas, choosing students etc., and the software projects themselves that then mentor students. Anyone interested in participating in GSoC as an XSF student can join the [[#Join_the_group_chat.21|gsoc@muc.xmpp.org chat room]], where various mentors will be available to answer questions and generally help. Although each idea in the lists of project ideas mentions a possible mentor, this MUC is the best place to start.
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!


As there are several disparate projects here, there's variety across several codebases in different languages and with significantly different aims, so take a look through all the ideas - there should be something for everyone here :)
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.


= Project Ideas / Participate =
More information about [[GSoC/2020 | XMPP and the XSF at GSOC 2020 can be found here]].


Please visit our
Please not that the student's final project proposals may, but are not required to, be for projects on the ideas list. Students with their own GSoC project ideas are encouraged to talk to the respective project contact persons about the feasibility of their idea.


<div style="text-align: center; font-size: 200%">[[GSoC/2020/Project Ideas |Project Ideas Page]]</div>
= List of Project Ideas =


for the list of GSoC project ideas. Students can also engage projects to suggest and discuss their own idea(s) about potential GSoC projects.
== Dino ==


= Timeline =
''Website:'' https://dino.im/<br/>


{| class="wikitable"
''Source Code:'' https://github.com/dino<br/>
| Date
| Event
|-
| 2020-02-05 19:00 UTC
| Mentoring organization application deadline
|-
| 2020-02-20 18:00 UTC
| List of accepted mentoring organizations published
|}


The complete timeline can be found at [https://developers.google.com/open-source/gsoc/timeline the official GSoC 2020 page].
''Description:'': Dino is a modern open-source chat client for the desktop.<br/>


= Join the group chat! =
''Project Contact Person:'' [[User:Larma| Marvin W. (larma)]]<br/>


Use a regular XMPP client and join the GSoC chat room '''[xmpp:gsoc@muc.xmpp.org?join gsoc@muc.xmpp.org]'''.
''Contact chat:'' [xmpp:chat@dino.im?join chat@dino.im]


How to join:
=== Audio/Video Communication ===


* Download and install a client, or [https://xmpp.org/chat?gsoc use a web client]
''Brief explanation:'' Add support for Audio/Video Communication via Jingle.<br/>
* Create an account, or use an existing one
 
* Find, join, and bookmark: [xmpp:gsoc@muc.xmpp.org?join gsoc@muc.xmpp.org].
''Involved Technologies:'' Vala, GTK+, GStreamer, WebRTC, Jingle<br/>
 
''Mentor(s):'' [[User:Larma| Marvin W. (larma)]], fiaxh<br/>
 
''Deliverables / Expected Results:''<br/>
* Audio and video encoding and transfer using standard-compliant Jingle sessions
* A user interface to start audio or video chats
 
The XMPP protocol includes a signaling system to set-up peer-to-peer connections, dubbed Jingle. Dino already supports Jingle for the purpose of file transfers. Another usecase for Jingle is to start an audio and/or video dual-link session. This project idea is about adding support for setting up such communication sessions as well as adding a basic user interface to do so. This project provides a lot of room for extensions like screen-sharing or encryption.
 
=== In-Band Real Time texting ===
 
''Brief explanation:'' Add support for In-Band Real Time texting.<br/>
 
''Involved Technologies:'' Vala, XMPP, GTK+<br/>
 
''Mentor(s):'' [[User:Larma| Marvin W. (larma)]], fiaxh<br/>
 
''Deliverables / Expected Results:''<br/>
* Allow users to exchange text as they type with other users and other compatible clients
* Performant input and output (UI rendering wise and network wise)
 
Real-time text is text transmitted instantly while it is being typed or created. The recipient can immediately read the sender's text as it is written, without waiting. It allows text to be used as conversationally as a telephone conversation, including in situations where speech is not practical (e.g., environments that must be quiet, environments too noisy to hear, restrictions on phone use, situations where speaking is a privacy or security concern, and/or when participant(s) are deaf or hard of hearing).
 
= How to add your project idea =
 
If you do not have already an account on this wiki, then ask someone in the jdev@muc.xmpp.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/<br/>
 
''Source Code:'' https://example.org/source<br/>
 
''Description:'': This is just an example project which can be used as template.<br/>
 
''Project Contact Person:'' John Doe [mailto:john.doe@example.org <john.doe@example.org>]<br/>
 
''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.<br/>
 
''Involved Technologies:'' Smalltalk, FORTRAN77, COBOL<br/>
 
''Mentor(s):'' Foo Bar (TheBatz) [mailto:foo.bar@example.org <foo.bar@exampole.org>]<br/>
 
''Deliverables / Expected Results:''<br/>
* Foo
* Bar
* Baz
 
''Milestones:''<br/>
# Implement parser and unit tests for parsing
# Implement protocol logic
# 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.<br/>
 
''Involved Technologies:'' Smalltalk, FORTRAN77, COBOL<br/>
 
''Mentor(s):'' Foo Bar (TheBatz) [mailto:foo.bar@example.org <foo.bar@exampole.org>]<br/>
 
''Deliverables / Expected Results:''<br/>
* Foo
* Bar
* Baz
 
''Milestones:''<br/>
# Implement parser and unit tests for parsing
# Implement protocol logic
# 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.

Revision as of 15:29, 7 January 2020

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 2020 can be found here.

Please not that the student's final project proposals may, but are not required to, be for projects on the ideas list. Students with their own GSoC project ideas are encouraged to talk to the respective project contact persons about the feasibility of their idea.

List of Project Ideas

Dino

Website: https://dino.im/

Source Code: https://github.com/dino

Description:: Dino is a modern open-source chat client for the desktop.

Project Contact Person: Marvin W. (larma)

Contact chat: chat@dino.im

Audio/Video Communication

Brief explanation: Add support for Audio/Video Communication via Jingle.

Involved Technologies: Vala, GTK+, GStreamer, WebRTC, Jingle

Mentor(s): Marvin W. (larma), fiaxh

Deliverables / Expected Results:

  • Audio and video encoding and transfer using standard-compliant Jingle sessions
  • A user interface to start audio or video chats

The XMPP protocol includes a signaling system to set-up peer-to-peer connections, dubbed Jingle. Dino already supports Jingle for the purpose of file transfers. Another usecase for Jingle is to start an audio and/or video dual-link session. This project idea is about adding support for setting up such communication sessions as well as adding a basic user interface to do so. This project provides a lot of room for extensions like screen-sharing or encryption.

In-Band Real Time texting

Brief explanation: Add support for In-Band Real Time texting.

Involved Technologies: Vala, XMPP, GTK+

Mentor(s): Marvin W. (larma), fiaxh

Deliverables / Expected Results:

  • Allow users to exchange text as they type with other users and other compatible clients
  • Performant input and output (UI rendering wise and network wise)

Real-time text is text transmitted instantly while it is being typed or created. The recipient can immediately read the sender's text as it is written, without waiting. It allows text to be used as conversationally as a telephone conversation, including in situations where speech is not practical (e.g., environments that must be quiet, environments too noisy to hear, restrictions on phone use, situations where speaking is a privacy or security concern, and/or when participant(s) are deaf or hard of hearing).

How to add your project idea

If you do not have already an account on this wiki, then ask someone in the jdev@muc.xmpp.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.

Project 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.