23
edits
(Add MIX in Mellium as a project idea) |
m |
||
(12 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
= Participation = | = Participation = | ||
The XSF | 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 = | ||
- | == 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 == | |||
''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. | |||
== 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! = | |||
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]. |
edits