Difference between revisions of "Google Summer of Code 2024"

Jump to navigation Jump to search
 
(8 intermediate revisions by 4 users not shown)
Line 52: Line 52:
= How to get started? =
= How to get started? =


* Read the [https://summerofcode.withgoogle.com/help Google Summer of Code 2023 guidelines]!
* Read the [https://summerofcode.withgoogle.com/help Google Summer of Code 2024 guidelines]!
* Review the projects below and inform yourself if that could be of interested for you [https://wiki.xmpp.org/web/Google_Summer_of_Code_2023#Project_Ideas Link]
* Review the projects below and inform yourself if that could be of interested for you [https://wiki.xmpp.org/web/Google_Summer_of_Code_2024#Project_Ideas Link]
* Reach out the projects contact, tell about yourself and why you are interested (see project section)
* Reach out the projects contact, tell about yourself and why you are interested (see project section)
* Join our GSoC group chat channel via XMPP (you can reach out via mail of course as well, but we really recommend to also use the technology) [https://wiki.xmpp.org/web/Google_Summer_of_Code_2023#Join_the_group_chat! Link]
* Join our GSoC group chat channel via XMPP (you can reach out via mail of course as well, but we really recommend to also use the technology) [https://wiki.xmpp.org/web/Google_Summer_of_Code_2024#Join_the_group_chat! Link]
* Continue to discuss teaser tasks with the project contact [https://wiki.xmpp.org/web/Google_Summer_of_Code_2023#Teaser_Tasks Link]
* Continue to discuss teaser tasks with the project contact [https://wiki.xmpp.org/web/Google_Summer_of_Code_2024#Teaser_Tasks Link]
* If everything is fine, start preparing a proposal and if reviewed submit the application [https://wiki.xmpp.org/web/Google_Summer_of_Code_2024#Student_Proposal Link]
* If everything is fine, start preparing a proposal and if reviewed submit the application [https://wiki.xmpp.org/web/Google_Summer_of_Code_2024#Student_Proposal Link]


Line 85: Line 85:
** What is OMEMO?
** 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 as part of most [[#Project_Ideas|Project Ideas]], 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.


== Student Proposal ==
== Student Proposal ==
Line 95: Line 95:
Of course, a good proposal is fine, too. We would be interested in the motivation behind the application. Additionally, the student's background, the possible experiences and preferred technologies, the outcome of a preliminary research on the protocol and codesbases the student might work on. Furthermore, their own perspective on how the collaboration and organization through the Google Summer of Code with the mentors should look like and a review of which possible problems may be faced are also helpful.
Of course, a good proposal is fine, too. We would be interested in the motivation behind the application. Additionally, the student's background, the possible experiences and preferred technologies, the outcome of a preliminary research on the protocol and codesbases the student might work on. Furthermore, their own perspective on how the collaboration and organization through the Google Summer of Code with the mentors should look like and a review of which possible problems may be faced are also helpful.


Furthermore we recommend a bit of research on online guides to write a proposal or motivational letter. The official guidelines of the [https://developers.google.com/open-source/gsoc/help/student-advice Google Summer of Code 2023] are highly recommended to read first.
Furthermore we recommend a bit of research on online guides to write a proposal or motivational letter. The official guidelines of the [https://developers.google.com/open-source/gsoc/help/student-advice Google Summer of Code 2024] are highly recommended to read first.


==== Checklist ====
==== Checklist ====


* I have read the [https://summerofcode.withgoogle.com/help Google Summer of Code 2023 guidelines]!
* I have read the [https://summerofcode.withgoogle.com/help Google Summer of Code 2024 guidelines]!
* I have contacted the project mentors and exchanged about the project.
* I have contacted the project mentors and exchanged about the project.
* I have conducted a teaser task (see second bullet point).
* I have conducted a teaser task (see second bullet point).
* I have join our GSoC group chat channel via XMPP (you can reach out via mail of course as well, but we really recommend to also use the technology) [https://wiki.xmpp.org/web/Google_Summer_of_Code_2023#Join_the_group_chat! Link].
* I have join our GSoC group chat channel via XMPP (you can reach out via mail of course as well, but we really recommend to also use the technology) [https://wiki.xmpp.org/web/Google_Summer_of_Code_2024#Join_the_group_chat! Link].
* I have solved the [https://wiki.xmpp.org/web/Google_Summer_of_Code_2023#Teaser_Tasks XMPP Quiz]
* I have solved the [https://wiki.xmpp.org/web/Google_Summer_of_Code_2024#Teaser_Tasks XMPP Quiz]


= Project Ideas =
= Project Ideas =


== Monal ==
The following table contains links to individual project ideas.
''Website:'' https://monal-im.org/<br/>
''Source Code:'' https://github.com/monal-im/monal<br/>
''OSI-License:'' 2-Clause BSD: https://github.com/monal-im/Monal/blob/develop/LICENSE<br/>
''Description:'' Monal is a modern iOS and MacOS XMPP chat client<br/>
''Project Contact:'' [[User:TMolitor|tmolitor]]<br/>
''Relevant readings:'' XMPP + SwiftUI + Swift (+ ObjC)<br/>
''Teaser Tasks:'' [https://github.com/monal-im/Monal/labels/%F0%9F%8E%83%20GSOC%20Teaser Issues tagged "GSOC Teaser"]<br/>
''Chat:'' [xmpp:monal@chat.yax.im?join monal@chat.yax.im] or [https://xmpp.org/chat#converse/room?jid=monal@chat.yax.im Webchat] or via 1:1 chat with [xmpp:thilo.molitor@juforum.de tmolitor]


=== Modern Onboarding ===
{| class="wikitable"
|+ GSoC Project ideas from XMPP-related organisations
|-
! XMPP Organisation Name !! Project Idea Title                                          !! Project Size !! Difficulty
|-
| Monal                  || [[gsoc2024/Monal/Modern Onboarding|Modern Onboarding]]      || 90 hours  || easy   
|-
| Monal                  || [[gsoc2024/Monal/Media Gallery|Media Gallery]]              || 90 hours  || easy
|-
| Monal                  || [[gsoc2024/Monal/MDM support|MDM support]]                  || 175 hours || easy
|-
| Monal                  || [[gsoc2024/Monal/SiriKit support|SiriKit support]]          || 350 hours || medium
|-
| Dino                  || [[gsoc2024/Dino/Inline link preview|Inline link preview]]    || 175 hours || easy
|-
| Dino                  || [[gsoc2024/Dino/Rich message support|Rich message support]]  || 175 hours || easy
|-
| Prav.app              || [[gsoc2024/Prav.app/Standards compliant SMS OTP based authentication|Standards compliant SMS OTP based authentication]] || 350 hours || medium
|}


''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.
=== Your own ideas ===
 
''Relevant readings:'' SwiftUI + Swift (+ ObjC)
 
''Project size:'' 90h
 
''Difficulty:'' Easy
 
''Deliverables / Expected Results:''
 
* Short and understandable introduction to XMPP / Monal
* Configuration and explanation of the most important privacy settings
 
=== Media Gallery ===
 
''Brief explanation:'' When tapping onto an image in the chat, a SwiftUI based image viewer appears, showing that image in full screen. Enhange that SwiftUI based media viewer to support videos. Allow to swipe through all received/sent media (images and videos). Show a SwiftUI based gallery of all received media when tapping a button in the contact details, leading to this image/video viewer when tapping onto a gallery item.
 
''Relevant readings:'' SwiftUI + Swift (+ ObjC)
 
''Project size:'' 90h
 
''Difficulty:'' Easy
 
''Deliverables / Expected Results:''
 
* Support swiping through media
* Support for common video formats
* Media gallery
 
=== MDM support ===
 
''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
 
''Project size:'' 175h
 
''Difficulty:'' Easy
 
''Deliverables / Expected Results:''
 
* Configuration of most settings in Monal through MDM (privacy settings, accounts etc.)
* Auto-Create of account in Monal via MDM
 
=== SiriKit support ===
 
''Brief explanation:'' Implement SiriKit interactions for `write a message`, `read a message`, `respond to a message`, `read contact details (last online time, status message etc.)`, `open chat of contact` and possibly `add contact`.
 
''Relevant readings:'' [https://github.com/monal-im/Monal/issues/938 Links in Monal Issue] + ObjC / Swift
 
''Project size:'' 350h
 
''Difficulty:'' Medium
 
''Deliverables / Expected Results:'' Monal can be handled hands-free and actively used to do a conversation while driving a car.
 
=== Your own idea ===
 
You feel confident to propose your own well-stated idea? Please go ahead and reach out to us using one of the contact addresses listed above (preferable via email).
 
== My Project ==
''Website:'' https://myproject.org/<br/>
''Source Code:'' https://myproject.org/repo<br/>
''OSI-License:'' https://myproject.org/license<br/>
''Description:'' My project description<br/>
''Project Contact:'' You contact / profile<br/>
''Relevant readings:'' XMPP + ... <br/>
''Teaser Tasks:'' Proper link to teaser tasks<br/>
''Chat:'' Put your chat address, email and, if XMPP also a Webchat link
 
=== My Project Idea ===
 
''Brief explanation:'' Fill
 
''Project size:'' 90h, 175h or 350h
 
''Difficulty:'' Easy, Middle (unless you have someone that is obviously capable no hard projects are unlikely to be accepted, such as AV or group chat / MUC implementation. Please remind this is a student project and should contain also educational perspective.)
 
''Deliverables / Expected Results:'' Fill
 
== Your own ideas ==


You feel confident to propose your own well-stated idea? Then please ahead. First reach out in our GSoC group chat please.
You feel confident to propose your own well-stated idea? Then please ahead. First reach out in our GSoC group chat please.

Navigation menu