Difference between revisions of "Google Summer of Code 2023"

Jump to navigation Jump to search
m
Moxxy: Correct project size of "Push Notifications"
m (Moxxy: Correct project size of "Push Notifications")
(16 intermediate revisions by 4 users not shown)
Line 78: Line 78:


== Student Proposal ==
== Student Proposal ==
Before you started with the proposal - please ensure you follow-ed the steps above!


In addition to writing a proposal, engagement with the actual projects before the application is very important. Showing motivation by taking interest in the project and communicating with the mentors is very advantageous. Solving a typical small problem can show that a student is serious with their plans.
In addition to writing a proposal, engagement with the actual projects before the application is very important. Showing motivation by taking interest in the project and communicating with the mentors is very advantageous. Solving a typical small problem can show that a student is serious with their plans.
Line 85: Line 87:
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 2023] are highly recommended to read first.


= Project Ideas (TO BE UPDATED FOR 2023) =
==== Checklist ====
 
* I have read the [https://summerofcode.withgoogle.com/help Google Summer of Code 2023 guidelines]!
* I have contacted the project mentors and exchanged about the project.
* 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 solved the [https://wiki.xmpp.org/web/Google_Summer_of_Code_2023#Teaser_Tasks XMPP Quiz]
 
= Project Ideas =
 
== Monal ==
''Website:'' https://monal-im.org/<br/>
''Source Code:'' https://github.com/monal-im/monal<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/%3Asuperhero%3A%20Help%20wanted Issues tagged "Help Wanted"]<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 ===
 
''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)
 
''Project size:'' 175h
 
''Difficulty:'' Easy
 
''Deliverables / Expected Results:''
 
* Short and understandable introduction to XMPP / Monal
* Configuration and explanation of the most important privacy settings
 
=== 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.
 
''Relevant readings:'' SwiftUI + Swift (+ ObjC)
 
''Project size:'' 175h
 
''Difficulty:'' Easy
 
''Deliverables / Expected Results:''
 
* Support for animated gifs
* Support for other common image formats (png, jpg etc.)
* Support for common video formats
* Media gallery
* Support swiping through media
 
=== 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:'' 350h
 
''Difficulty:'' Easy
 
''Deliverables / Expected Results:''
 
* Configuration of most settings in Monal through MDM (privacy settings etc.)
* Auto-Create of account in Monal via MDM
 
=== Modern Chat View ===
 
''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)
 
''Project size:'' 350h
 
''Difficulty:'' Medium
 
''Deliverables / Expected Results:''
 
* Chat view with support for one to one chats as well as group chats
* Display the trust level of the device that sended an OMEMO encrypted message in the chat view
* Play / send audio & video messages
* Text messages with support for Quotes, HTTP/HTTPS links, styles
* Sending / showing images and geo locations
* Quote/Copy/Forwarding messages
* Show state of sent messages
* Sending files (upload progress etc.)
* Floating "scroll to bottom" button if not fully scrolled to bottom


== Dino ==
== Dino ==
Line 147: Line 237:
* Apply markup to messages in conversation history via Pango Attributes
* Apply markup to messages in conversation history via Pango Attributes


== weblin.io ==
== Moxxy ==
''Website:'' https://codeberg.org/moxxy/moxxyv2<br/>
''Source Code:'' https://codeberg.org/moxxy/moxxyv2<br/>
''Description:'' Moxxy is an experimental, modern XMPP client written in Flutter<br/>
''Project Contact:'' [[User:PapaTutuWawa|PapaTutuWawa]]<br/>
''Relevant readings:'' XMPP + Flutter + Dart<br/>
''Teaser Tasks:'' [https://codeberg.org/moxxy/moxxyv2/issues?q=&type=all&sort=&state=open&labels=43305&milestone=0&assignee=0&poster=0 Good first issues]<br/>
''Chat:'' [xmpp:moxxy@muc.moxxy.org?join moxxy@muc.moxxy.org] or [https://xmpp.org/chat#converse/room?jid=moxxy@muc.moxxy.org Webchat]
 
=== Groupchats ===


''Website:'' https://weblin.io/Start<br/>
''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.
''Source Code:'' https://github.com/lupuslabs/n3qExt<br/>
''Description:'' weblin.io is a graphical XMPP client that maps web-URLs to XMPP chat rooms and shows participants as animated avatars, by default one chat room for each web site. Virtual items can be deployed to web pages (chat rooms) providing scriptable gateways to additional applications like video conferencing, gaming, NFTs. The goal of weblin.io is to make the Web a vibrant space where people meet and interact, and live. weblin.io is account-free and shows people as avatars of their choice protecting user privacy.</br>
''Project Contact:'' [https://wiki.xmpp.org/web/Heiner_Wolf_Application_2023 Wolfspelz]<br/>
''Relevant readings:'' [https://weblin.io/Project weblin.io Project description]<br/>
''People:'' [https://weblin.io/https://weblin.io/People Project members]<br/>


=== Scripted Avatars for weblin.io ===
''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]


''Brief explanation:'' Adding the infrastructure required to animate avatars with Javascript. Typically, avatars in virtual worlds are based on 3D-models with fixed rules rendering these models. Creativity is limited to 3D modelling. This is also the case in weblin.io. But after all, an avatar is just some screen space filled with graphics. Doing the painting with Javascript allows for much greater creativity. Scripted avatars can employ all technologies available to the browser engine. 3D avatars might be rendered with Three.js. 2D avatars might use SVG. Anyone (capable of progamming) can create an avatar rendering engine which allows for custom avatar designers. Avatars can react programatically and intelligently to events happening on the web page.<br/>
''Project size:'' 175h
''Involved Technologies:'' Javascript, Typescript, Node.js, XMPP<br/>
 
''Relevant readings:'' [https://weblin.io/Project weblin.io Project description]<br/>
''Difficulty:'' Easy
''Project size:'' Small (175h)<br/>
 
''Difficulty:'' Medium<br/>
''Deliverables / Expected Results:''
''Deliverables / Expected Results:''<br/>
 
* A rough idea and concept how to add scripted avatars
* Ability to connect to a MUC and interact with it
* Implementation of the framework thet allows for avatar scripting
* The underlying XMPP library should gain support for MUC interactions: Creating (instant and advanced), joining and leaving
* Sample implementation showcasing a scripted avatar engine
* Deal with bookmarks
* A way for users to get these scripted avatars as avatar items
* Fetch messages from MAM
* An architecture that also allows MIX to be implemented in the future
* Optionally: Simple administrative tasks, like inviting, kicking and banning
 
=== Push Notifications ===
 
''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.
 
''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:'' 175h
 
''Difficulty:'' Medium
 
''Deliverables / Expected Results:''
 
* Register against a push server for push notifications, given a locally available UnifiedPush distributor
* Moxxy should be be woken up, receive messages and display a notification
* Sent messages should be queued up so that they don't get lost
* Users should be able to configure if they want push notifications or the persistent connection


== Your own ideas ==
== Your own ideas ==

Navigation menu