Difference between revisions of "Summer of Code 2021"

Jump to navigation Jump to search
4,000 bytes added ,  10:59, 2 March 2021
no edit summary
(Add Jingle in Go as an idea and fix list)
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Participation =
= Participation =


The XSF is considering applying to be a mentoring organisation for Google Summer of Code 2021.
The XSF has applied to be a mentoring organisation for Google Summer of Code 2021. We will know whether we are accepted or not on March 9th with the official list is published.
 
XMPP oriented projects should still add project ideas to the below list.


== Dates ==
== Dates ==
Line 25: Line 27:
= Project Ideas =
= Project Ideas =


* Implement [https://xmpp.org/extensions/xep-0369.html XEP-0369: Mediated Information eXchange (MIX)] in [https://mellium.im Mellium] (an XMPP library in Go)
== Dino ==
* Implement a Jingle stack in Go for [https://mellium.im Mellium], the overall goal will be to be able to start video chats and/or file transfers with [https://conversations.im/ Conversations]
 
''Website:'' https://dino.im/<br/>
''Source Code:'' https://github.com/dino/dino<br/>
''Description:'' Dino is a modern open-source chat client for the desktop. It focuses on providing a clean and reliable Jabber/XMPP experience while having your privacy in mind.</br>
''Project Contact:'' [[User:Larma|larma]], fiaxh<br/>
''Relevant readings:'' [https://wiki.gnome.org/Projects/Vala/Tutorial Vala Tutorial]<br/>
''Teaser Tasks:'' [https://github.com/dino/dino/labels/good%20first%20issue Good first issues]<br/>
''Chat:'' [xmpp:chat@dino.im?join chat@dino.im]
 
=== Inline link preview ===
 
''Brief explanation:'' Add support for attaching and displaying link metadata.<br/>
''Involved Technologies:'' Vala, XMPP, HTML, OpenGraph<br/>
''Relevant readings:'' [http://ogp.me/ OpenGraph protocol]<br/>
''Deliverables / Expected Results:''<br/>
* User interface widget to display metadata, suitable for preview image, title, abstract and the original url/domain.
* Automatic generation of metadata, working with major websites. This should be done in a generic fassion, not targeting a specific website
* Design or reuse a specification for sending metadata with XMPP messages
 
== Mellium ==
 
''Website:'' https://melluim.im/<br/>
''Source Code:'' https://mellium.im/code<br/>
''Description:'' Mellium is a collection of Go modules related to XMPP.<br/>
''Project Contact:'' [[User:SamWhited|Sam Whited]]<br/>
''Relevant readings:'' [https://golang.org/doc/effective_go Effective Go], [https://mellium.im/docs/ Mellium docs], [https://pkg.go.dev/mellium.im/xmpp Mellium API docs]<br/>
''Teaser Tasks:'' [https://github.com/mellium/xmpp/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22 Good first issues]<br/>
''Chat:'' [xmpp:users@mellium.chat?join users@mellium.chat]
 
=== Audio/Video Chat ===
 
''Brief explanation:'' Add support for Audio/Video Communication via Jingle.<br/>
''Involved Technologies:'' Go, WebRTC, Jingle<br/>
''Relevant readings:'' [https://xmpp.org/extensions/xep-0167.html XEP-0167], [https://xmpp.org/extensions/xep-0353.html XEP-0353]<br />
''Deliverables / Expected Results:''<br/>
* A separate Go library for Jingle that is not XMPP specific (probably, we can discuss design later)
* Audio and video chat in mellium.im/xmpp that is compatible with [https://conversations.im Conversations]
* File transfer in in mellium.im/xmpp using Jingle sessions (also compatible with Conversations)
* A demo app to start a conversation
 
=== Group Chat ===
 
''Brief explanation:'' Add support for group chats using either Multi-User Chat or Mediated Information Exchange (MIX).<br/>
''Involved Technologies:'' Go<br/>
''Relevant readings:'' [https://xmpp.org/extensions/xep-0369.html XEP-0369: Mediated Information eXchange (MIX)], [https://xmpp.org/extensions/xep-0045.html XEP-0045: Multi-User Chat]<br />
''Deliverables / Expected Results:''<br/>
* A well tested library for joining or serving MUC or MIX and a set of integration tests that work against Prosody or Ejabberd
* A simple component for hosting MUC or MIX chats
 
=== End-to-End Encryption ===
 
''Brief explanation:'' Add support for end-to-end (E2E) encryption using OMEMO, or MLS<br/>
''Involved Technologies:'' Go, Go Subrepos, OMEMO or MLS<br/>
''Relevant readings:'' [https://xmpp.org/extensions/xep-0384.html XEP-0384: OMEMO Encryption], [https://datatracker.ietf.org/doc/draft-ietf-mls-protocol/ The Messaging Layer Security (MLS) Protocol (draft-ietf-mls-protocol)]<br />
''Deliverables / Expected Results:''<br/>
* If using MLS, an XEP describing behavior and how MLS should be integrated with XMPP
* A well-designed API and well-tested library for encrypting messages with OMEMO or MLS
* Changes to the Go standard library and subrepos to add any missing cryptographic primitives or expose operations that are currently internal only.
 
= Join the group chat! =
 
Use a regular XMPP client and join the GSoC chat room '''[xmpp:gsoc@muc.xmpp.org?join gsoc@muc.xmpp.org]'''.
 
How to join:
 
* Download and install a client, or [https://xmpp.org/chat?gsoc use a web client]
* Create an account, or use an existing one
* Find, join, and bookmark: [xmpp:gsoc@muc.xmpp.org?join gsoc@muc.xmpp.org].
34

edits

Navigation menu