Difference between revisions of "Google Summer of Code 2023"

Jump to navigation Jump to search
(→‎Moxxy: Change Moxxy time format)
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= Participation =
= Participation =


The XSF has plans to be a mentoring organization for '''Google Summer of Code 2023'''. This is an early attempt to ensure good planning and enough time for the application process. '''Remind: The XSF has not yet applied nor being accepted'''.
The XSF has plans to be a mentoring organization for '''Google Summer of Code 2023'''. The XSF has been accepted as a mentoring organization in GSOC 2023!


XMPP oriented projects should still add project ideas to the below list.
XMPP oriented projects should still add project ideas to the below list.
Line 73: Line 73:
* '''Submit small patches''': 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 an afternoon or two's work, and should not be onerous!
* '''Submit small patches''': 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 an afternoon or two's work, and should not be onerous!


* '''Solve the XMPP quiz''': To be announced.
* '''Solve the XMPP quiz to the best extend you can''': Please include you answers in your application. Please also don't make your answers public so others don't start copy & pasting responses. The idea is not to have the perfect answers, but show that you took time to review the technology. If you don't understand certain details that is a good indicator to start a discussion about it within the community.
** What does XMPP stand for?
** Is XMPP just another name for Jabber?
** What is federation?
** What can you do with XMPP apart from chatting?
** Do you know examples/implementations for XMPP usage in a centralized service, as a federated service, as a serverless service?
** What is a XEP?
** What is a stanza?
** Describe the core RFCs and XEPs.
** Does XMPP run on IoT devices?
** What is OMEMO?


A list of teaser tasks is given in the [[#Project_Ideas|Project Ideas]] overview, 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 teasers will be appearing here over the next few days.
A list of teaser tasks is given in the [[#Project_Ideas|Project Ideas]] overview, 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 teasers will be appearing here over the next few days.
Line 109: Line 119:


''Brief explanation:'' When new unexperienced (XMPP) users start Monal for the first time, they should be taken by the hand and introduced to XMPP (decentralized, login vs. registration) as well as the most important privacy settings / privacy policy. The resulting introduction should be implemented using SwiftUI and should replace / incorporate the existing login/register UI.
''Brief explanation:'' When new unexperienced (XMPP) users start Monal for the first time, they should be taken by the hand and introduced to XMPP (decentralized, login vs. registration) as well as the most important privacy settings / privacy policy. The resulting introduction should be implemented using SwiftUI and should replace / incorporate the existing login/register UI.
''Relevant readings:'' SwiftUI + Swift (+ ObjC)
''Relevant readings:'' SwiftUI + Swift (+ ObjC)
''Project size:'' 175h
''Project size:'' 175h
''Difficulty:'' Easy
''Difficulty:'' Easy
''Deliverables / Expected Results:''
''Deliverables / Expected Results:''


Line 119: Line 133:
=== Image Preview ===
=== Image Preview ===


''Brief explanation:'' When tapping onto an image in the chat, a storyboard based image viewer appears, showing that image in full screen. Implement a new SwiftUI based media viewer supporting animated gifs, other image types and videos. Allow to swipe through all received/sent media. Show a gallery of all received media leading to this image viewer when tapping a button in the contact details.
''Brief explanation:'' When tapping onto an image in the chat, a storyboard based image viewer appears, showing that image in full screen. Implement a new SwiftUI based media viewer supporting animated gifs, other image types and videos. Allow to swipe through all received/sent media. Show a gallery of all received media leading to this image viewer when tapping a button in the contact  
details.
 
''Relevant readings:'' SwiftUI + Swift (+ ObjC)
''Relevant readings:'' SwiftUI + Swift (+ ObjC)
''Project size:'' 175h
''Project size:'' 175h
''Difficulty:'' Easy
''Difficulty:'' Easy
''Deliverables / Expected Results:''
''Deliverables / Expected Results:''


Line 134: Line 153:


''Brief explanation:'' Add support for "managed configuration" allowing to automatically configure Monal in school or business environments.
''Brief explanation:'' Add support for "managed configuration" allowing to automatically configure Monal in school or business environments.
''Relevant readings:'' [https://github.com/monal-im/Monal/issues/164#issuecomment-778239069 Links in Monal Issue comment] + ObjC / Swift
''Relevant readings:'' [https://github.com/monal-im/Monal/issues/164#issuecomment-778239069 Links in Monal Issue comment] + ObjC / Swift
''Project size:'' 350h
''Project size:'' 350h
''Difficulty:'' Easy
''Difficulty:'' Easy
''Deliverables / Expected Results:''
''Deliverables / Expected Results:''


Line 145: Line 168:


''Brief explanation:'' The existing chat view (storyboard based) should be replaced by a new SwiftUI implementation. It should support text-, audio-, video-, geo- and OMEMO-messages.
''Brief explanation:'' The existing chat view (storyboard based) should be replaced by a new SwiftUI implementation. It should support text-, audio-, video-, geo- and OMEMO-messages.
''Relevant readings:'' SwiftUI + Swift (+ ObjC)
''Relevant readings:'' SwiftUI + Swift (+ ObjC)
''Project size:'' 350h
''Project size:'' 350h
''Difficulty:'' Medium
''Difficulty:'' Medium
''Deliverables / Expected Results:''
''Deliverables / Expected Results:''


Line 190: Line 217:
''Project size:'' Small (175h)<br/>
''Project size:'' Small (175h)<br/>
''Difficulty:'' Medium<br/>
''Difficulty:'' Medium<br/>
''Important Note:'' This project can only be achieved by first implementing the "Stateless file sharing" project.<br/>
''Deliverables / Expected Results:''<br/>
''Deliverables / Expected Results:''<br/>
* Implement [https://xmpp.org/extensions/xep-0234.html#requesting Jingle File Transfer requests] to request and deliver files.
* Implement [https://xmpp.org/extensions/xep-0234.html#requesting Jingle File Transfer requests] to request and deliver files.
Line 232: Line 258:


''Brief explanation:'' For some users, groupchats are an essential part of the instant messaging experience. Moxxy is currently lacking such functionality. This project should provide users with the basics of groupchats.
''Brief explanation:'' For some users, groupchats are an essential part of the instant messaging experience. Moxxy is currently lacking such functionality. This project should provide users with the basics of groupchats.
''Relevant readings:'' [https://codeberg.org/moxxy/moxxmpp moxxmpp], [https://xmpp.org/extensions/xep-0045.html XEP-0045], [https://xmpp.org/extensions/xep-0313.html XEP-0313], [https://xmpp.org/extensions/xep-0402.html XEP-0402]
''Relevant readings:'' [https://codeberg.org/moxxy/moxxmpp moxxmpp], [https://xmpp.org/extensions/xep-0045.html XEP-0045], [https://xmpp.org/extensions/xep-0313.html XEP-0313], [https://xmpp.org/extensions/xep-0402.html XEP-0402]
''Project size:'' 175h
''Project size:'' 175h
''Difficulty:'' Easy
''Difficulty:'' Easy
''Deliverables / Expected Results:''
''Deliverables / Expected Results:''


Line 248: Line 278:
''Brief explanation:'' Not all users are able or want to have Moxxy permanently running in the background. XMPP, however, provides us with a way to negotiate the usage of push notifications, if available. This projects should
''Brief explanation:'' Not all users are able or want to have Moxxy permanently running in the background. XMPP, however, provides us with a way to negotiate the usage of push notifications, if available. This projects should
provide Moxxy with the ability to work on devices where running in the background indefinitely is not an option.
provide Moxxy with the ability to work on devices where running in the background indefinitely is not an option.
''Relevant readings:'' [https://codeberg.org/moxxy/moxxmpp moxxmpp], [https://xmpp.org/extensions/xep-0357.html XEP-0357], [https://unifiedpush.org/ UnifiedPush], [https://github.com/UnifiedPush/flutter-connector UnifiedPush's Flutter library]
''Relevant readings:'' [https://codeberg.org/moxxy/moxxmpp moxxmpp], [https://xmpp.org/extensions/xep-0357.html XEP-0357], [https://unifiedpush.org/ UnifiedPush], [https://github.com/UnifiedPush/flutter-connector UnifiedPush's Flutter library]
''Project size:'' 350h
 
''Project size:'' 175h
 
''Difficulty:'' Medium
''Difficulty:'' Medium
''Deliverables / Expected Results:''
''Deliverables / Expected Results:''


Navigation menu