Difference between revisions of "Google Summer of Code 2023"

Jump to navigation Jump to search
5,210 bytes removed ,  10:38, 25 January 2023
m
Moxxy: Correct project size of "Push Notifications"
(Add Moxxy)
m (Moxxy: Correct project size of "Push Notifications")
(7 intermediate revisions by one other user 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 ==
== Monal ==
Line 102: Line 112:
''Relevant readings:'' SwiftUI + Swift (+ ObjC)
''Relevant readings:'' SwiftUI + Swift (+ ObjC)


''Project size:'' 20-40 days
''Project size:'' 175h


''Difficulty:'' Easy
''Difficulty:'' Easy
Line 113: Line 123:
=== 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:'' 20-40 days
''Project size:'' 175h


''Difficulty:'' Easy
''Difficulty:'' Easy
Line 135: Line 146:
''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:'' 40-60 days
''Project size:'' 350h


''Difficulty:'' Easy
''Difficulty:'' Easy
Line 150: Line 161:
''Relevant readings:'' SwiftUI + Swift (+ ObjC)
''Relevant readings:'' SwiftUI + Swift (+ ObjC)


''Project size:'' 40-60 days
''Project size:'' 350h


''Difficulty:'' Medium
''Difficulty:'' Medium
Line 225: Line 236:
* Send rich text messages using [https://xmpp.org/extensions/xep-0394.html Message Markup] and [https://xmpp.org/extensions/xep-0372.html References] as well as a fallback using [https://xmpp.org/extensions/xep-0393.html Message Styling]
* Send rich text messages using [https://xmpp.org/extensions/xep-0394.html Message Markup] and [https://xmpp.org/extensions/xep-0372.html References] as well as a fallback using [https://xmpp.org/extensions/xep-0393.html Message Styling]
* Apply markup to messages in conversation history via Pango Attributes
* Apply markup to messages in conversation history via Pango Attributes
== weblin.io ==
''Website:'' https://weblin.io/Start<br/>
''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. And since it uses XMPP, it is decentralized.</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/People Project members]<br/>
=== Scripted Avatars for weblin.io ===
''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 JavaScriptallows 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 programming) can create an avatar rendering engine which allows for custom avatar designers. Avatars can react programmatically and intelligently to events happening on the web page.<br/>
''Involved Technologies:'' JavaScript, TypeScript, Node.js, XMPP<br/>
''Relevant readings:'' [https://weblin.io/Project weblin.io Project description]<br/>
''Project size:'' 40 60 days<br/>
''Difficulty:'' Medium<br/>
''Deliverables / Expected Results:''<br/>
* Proof of concept implementation showing how to add scripted avatars
* Implementation of the framework that allows for avatar scripting
* Sample implementation showcasing a scripted avatar engine
* Pull request with code to add to the webin.io code base
=== Avatar Designer for weblin.io ===
''Brief explanation:'' Given that weblin.io allows for custom avatar rendering engines, this project will add a new avatar rendering engine and a way for users to create their own avatar.<br/>
''Involved Technologies:'' JavaScript, some web-frontend framework & CSS, docker, XMPP<br/>
''Relevant readings:'' [https://weblin.io/Project weblin.io Project description]<br/>
''Project size:'' 20-40 days<br/>
''Difficulty:'' Medium<br/>
''Deliverables / Expected Results:''<br/>
* An avatar rendering engine for your new scripted avatar type
* The avatar designer that lets users create their avatar based on your engine
* Docker container hosting the system
=== Avatar Theater: A New Art Form ===
''Brief explanation:'' With weblin.io people meet, chat, and interact on web pages. They appear as avatars on the web pages they visit. Some are just passing by, others spend time with their friends on web pages, like they do in other chat systems. Participants of an avatar theater take part in a stage play, where their avatars perform the act of playing. But instead of moving and talking themselves, participants lend their avatar to the stage engine. The avatar theater stage engine remote controls the participant's avatar. The stage engine also controls the stage set. Basically, the stage engine conducts the play, but it is the user's responsibility to provide an appropriate avatar. User's don't have to learn the text, but they can still be part of a stage play. This project implements the stage engine for the avatar theater as a weblin.io item.<br/>
''Involved Technologies:'' Node.js or any other web server technology, docker, XMPP<br/>
''Relevant readings:'' [https://weblin.io/Project weblin.io Project description]<br/>
''Project size:'' 40-60 days<br/>
''Difficulty:'' Medium<br/>
''Deliverables / Expected Results:''<br/>
* Proof of concept implementation of remote-controlled avatars via XMPP
* Avatar theater stage engine
* Wrapping the engine into a weblin.io item that can play everywhere
* Stage set control
* A GUI for script editing and avatar onboarding
* Docker container hosting the system
=== XMPP based MUD on Web Pages ===
''Brief explanation:'' The entire web is weblin.io's playground. Weblins not only meet and communicate, but they can also play games, e.g. multi user dungeon style (MUD). The goal of this project is to turn the web into a MUD with quests, monsters, adventures, and role playing. The rules are entirely up to you. You can choose D&D-like rules, any other rule set, or roll your own. The genre is also up to you, be it Fantasy, SF, Urban, Historic. People will then experience adventures across the web and hunt monsters in XMPP chat rooms. Weblin.io already shows items and avatars on web pages, you add rules, quests, and monsters.<br/>
''Involved Technologies:'' Node.js or any other web server technology, docker, XMPP<br/>
''Relevant readings:''
* [https://weblin.io/Project weblin.io Project description]
* [https://www.weblin.io/Items About items]
* [https://en.wikipedia.org/wiki/Designing_Virtual_Worlds Designing Virtual Worlds]<br/>
''Project size:'' 60 days<br/>
''Difficulty:'' Medium<br/>
''Deliverables / Expected Results:''<br/>
* Proof of concept implementation of an interactive MUD engine as XMPP bot
* Selection of a rule set, genre, and software design choices that make the XMPP/web a MUD
* Implementation of a basic adventure system
* Docker container hosting the system
* Converting, acquiring, or creating graphics for items and monsters


== Moxxy ==
== Moxxy ==
Line 307: Line 252:
''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:'' 25 - 45 days
''Project size:'' 175h


''Difficulty:'' Easy
''Difficulty:'' Easy
Line 327: Line 272:
''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:'' 30 - 40 days
''Project size:'' 175h


''Difficulty:'' Medium
''Difficulty:'' Medium

Navigation menu