Difference between revisions of "Summer of Code 2021"

Jump to navigation Jump to search
3,633 bytes added ,  07:02, 11 March 2021
m
no edit summary
m (Add some general readings to mellium)
m
 
(7 intermediate revisions by 4 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 24: Line 26:


= Project Ideas =
= Project Ideas =
== Dino ==
''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 ==
== Mellium ==
Line 31: Line 53:
''Description:'' Mellium is a collection of Go modules related to XMPP.<br/>
''Description:'' Mellium is a collection of Go modules related to XMPP.<br/>
''Project Contact:'' [[User:SamWhited|Sam Whited]]<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]
''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/>
''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]
''Chat:'' [xmpp:users@mellium.chat?join users@mellium.chat]
Line 41: Line 63:
''Relevant readings:'' [https://xmpp.org/extensions/xep-0167.html XEP-0167], [https://xmpp.org/extensions/xep-0353.html XEP-0353]<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/>
''Deliverables / Expected Results:''<br/>
* Audio and video encoding and transfer using standard-compliant Jingle sessions that are compatible with [https://conversations.im Conversations]
* A separate Go library for Jingle that is not XMPP specific (probably, we can discuss design later)
* File transfer using Jingle sessions (also compatible with Conversations)
* 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
* A demo app to start a conversation


=== Group Chat Support ===
=== Group Chat ===


''Brief explanation:'' Add support for group chats using either Multi-User Chat or Mediated Information Exchange (MIX).<br/>
''Brief explanation:'' Add support for group chats using either Multi-User Chat or Mediated Information Exchange (MIX).<br/>
Line 56: Line 79:
=== End-to-End Encryption ===
=== End-to-End Encryption ===


''Brief explanation:'' Add support for end-to-end (E2E) encryption using OMEMO<br/>
''Brief explanation:'' Add support for end-to-end (E2E) encryption using OMEMO, or MLS<br/>
''Involved Technologies:'' Go, Go Subrepos, OMEMO<br/>
''Involved Technologies:'' Go, Go Subrepos, OMEMO or MLS<br/>
''Relevant readings:'' [https://xmpp.org/extensions/xep-0384.html XEP-0384: OMEMO Encryption]<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/>
''Deliverables / Expected Results:''<br/>
* A well-designed API and well-tested library for encrypting messages with OMEMO
* 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.
* Changes to the Go standard library and subrepos to add any missing cryptographic primitives or expose operations that are currently internal only.
== Psi ==
''Website:'' https://psi-im.org/<br/>
''Source Code:'' https://github.com/psi-im/psi<br/>
''Description:'' An XMPP client for advanced users.</br>
''Project Contact:'' [[User:Rion|rion]], Tehnick, VitoZz<br/>
''Relevant readings:'' [https://psi-plus.com/wiki/en:main]<br/>
''Teaser Tasks:'' [https://github.com/psi-im/psi/milestone/4]<br/>
''Chat:'' [xmpp:psi-dev@conference.jabber.ru?join psi-dev@conference.jabber.ru]
=== Mediated Information Exchange (MIX) ===
''Brief explanation:'' Add support for Mediated Information Exchange (MIX).<br/>
''Involved Technologies:'' Qt, C++<br/>
''Relevant readings:'' [https://xmpp.org/extensions/xep-0369.html XEP-0369: Mediated Information eXchange (MIX)]<br />
''Deliverables / Expected Results:''<br/>
* A set of classes in [https://github.com/psi-im/iris iris] library to support MIX extensions.
* A MIX management component in Psi itself similar to one implemented for MUC.
* A Working UI (probably some rework of the current MUC UI to make it compatible with MIX)
* The solution has to be tested with popular XMPP servers
=== QML UI ===
''Brief explanation:'' A modern looking UI for both (group-)chat and roster
''Involved Technologies:'' Qt, QML, JavaScript, C++<br/>
''Relevant readings:'' https://en.wikipedia.org/wiki/QML<br/>
''Deliverables / Expected Results:''<br/>
* It's a huge task, so expected an implementation of standalone QML/*cross-platform* UI with clear and well-documented API interfaces.
* The UI may be backed by some mocked C++ code where Psi code should be taken as a guidance. This is perfectly fine to borrow design/API ideas from other clients too.
* It's assumed the UI will be used not just with Psi. So the branded parts preferably should be kept aside and instead set via API.
* The UI should provide next functions: model/view-based chat/group-chat, roster, avatars, statuses, recent (group-)chats, contact list (with groups/tags), contacts management, own status management.


= Join the group chat! =
= Join the group chat! =
23

edits

Navigation menu