GSoC/2024/Ideas: Difference between revisions
No edit summary |
Foundation for Krita GSOC ideas |
||
Line 117: | Line 117: | ||
'''Mentor:''' Albert Vaca Cintora <[email protected]> | '''Mentor:''' Albert Vaca Cintora <[email protected]> | ||
=== Krita === | |||
'''Krita is a digital painting application, used by millions of people all over the world. For Google Summer of Code, we expect students to already have contributed to Krita by building the application and submitting merge requests for some bug fixes. Note that some projects also demand a good knowledge of algorithms and skill in doing research. | |||
* [http://www.krita.org Krita project web site] | |||
* [https://mail.kde.org/mailman/listinfo/kimageshop Mailinglist] | |||
* [https://web.libera.chat/ #krita IRC channel on irc.libera.chat] | |||
''' | |||
==== ~ 90h ~ ==== | |||
===== => Project: Averaged/Mixed Color Selector ===== | |||
===== => Project: Saving curves ===== | |||
===== => Project: Precision and new units in guides ===== | |||
===== => Project: Merging masks ===== | |||
==== ~ 175h ~ ==== | |||
===== => Project: Onion Skin Shift & Trace ===== | |||
===== => Project: Selection Action Bar ===== | |||
===== => Project: New option in Color Sampler: ===== | |||
===== => Project: Waveform in animation track ===== | |||
===== => Project: Summary frames on groups ===== | |||
===== => Project: Improve Compositions Docker's Batch Export Features ===== | |||
'''Brief explanation''': The current Compositions Docker does feature exporting and batch exporting, but currently lacks configuration for image or animation export settings. It could use more control over how all compositions are exported. | |||
'''Expected results''': Configurable export settings for the composition docker, and API improvements to allow for reuse of existing export GUI window(s). | |||
'''Knowledge Prerequisite''': C++, Qt, CMake | |||
'''Duration:''' ~175 hr | |||
'''Mentor''': | |||
===== Project: Pixel Perfect Hand-drawn Lines ===== | |||
==== ~ 350h ~ ==== | |||
===== => Project: Extend Arrange Docker for layers plus snapping ===== | |||
'''Brief explanation''': Currently, the arrange docker only supports aligning and distributing vector objects of a singlet vector layer. This project aims to extend the arrange docker support for layers and masks too. | |||
'''Expected results''': All the current operations available in Arrange docker could be done with the layers. | |||
'''Knowledge Prerequisite''': C++, Qt, CMake | |||
'''Duration:''' ~350h | |||
'''Mentor''': TBD | |||
===== Project (Advanced): Ribbon Brush ===== |
Revision as of 21:06, 31 January 2024
See also: GSoC Instructions, Last year ideas
Guidelines
Information for Students
These ideas were contributed by our developers and users. They are sometimes vague or incomplete. If you wish to submit a proposal based on these ideas, you are urged to contact the developers and find out more about the particular suggestion you're looking at.
Becoming accepted as a Google Summer of Code student is quite competitive. Accepted students typically have thoroughly researched the technologies of their proposed project and have been in frequent contact with potential mentors. Simply copying and pasting an idea here will not work. On the other hand, creating a completely new idea without first consulting potential mentors rarely works.
When writing your proposal or asking for help from the general KDE community don't assume people are familiar with the ideas here. KDE is really big!
If there is no specific contact given you can ask questions on the general KDE development list [email protected]. See the KDE mailing lists page for information on available mailing lists and how to subscribe.
Adding a Proposal
Sample project
Project type: Coding / Web Development / Promo / Translation
Brief explanation:
Expected results:
Knowledge Prerequisite:
Mentor:
When adding an idea to this section, please include the following data:
- if the application is not widely known, a description of what it does and where its code lives
- a brief explanation (2-5 sentences)
- the expected size of the project (small-90 hours, medium-175 hours or large-350 hours)
- the expected results
- pre-requisites for working on your project (skills required/preferred)
- if applicable, links to more information or discussions
- mailing list or IRC channel for your application/library/module
- your name and email address for contact (if you're willing to be a mentor)
- if possible, an easy, medium or hard rating of the project
If you are not a developer but have a good idea for a proposal, get in contact with relevant developers first.
Ideas
Project: Something that you're totally excited about
Brief explanation: Do you have an awesome idea you want to work on with KDE but that is not among the ideas below? That's cool. We love that! But please do us a favor: Get in touch with a mentor early on and make sure your project is realistic and within the scope of KDE. That will spare you and us a lot of frustration.
Expected results: Something you and KDE loves
Knowledge Prerequisite: Probably C++ and Qt but depends on your project
Duration: Mention one of ~90, ~175 or ~350 hours of effort necessary to finish the project. Use only one of these three project classes and don't come up with other numbers here.
Difficulty:: Easy, medium or difficult project
Mentor: Try to see who in KDE is interested in what you want to work on and approach them. If you are unsure you can always ask in #kde-soc:kde.org on matrix.
Python bindings for KDE Frameworks
Brief explanation: While Qt itself, has official bindings to Python, this is not the case for the KDE Frameworks. This project hopes to add python bindings to as many frameworks as possible during the summer.
Expected results: Make it easier to build Python apps with Qt
Knowledge Prerequisite: C++ and Python knowledge. Having read https://doc.qt.io/qtforpython-6/ https://doc.qt.io/qtforpython-6/shiboken6/index.html and https://www.kdab.com/creating-python-bindings-for-qt-libraries/ is a good start
Duration: Flexible depending on the amount of frameworks we want to cover during this GSoC.
Difficulty:: Medium
Mentor: Carl Schwan - @carl:kde.org on matrix
Port Arianna to Foliate-js
Brief explanation: Arianna is an ebook reader and currently use epub.js, which is not really maintained anymore. The idea would be to port it https://github.com/johnfactotum/foliate-js which is modern epub renderer used by foliate.
Expected results: A nice and modern epub renderer for Arianna
Knowledge Prerequisite: Javascript knowledge and minimal C++ knowledge to build the project
Duration: 175 hours
Difficulty:: Medium
Mentor: Carl Schwan - @carl:kde.org on matrix
Project: Adding support for multiple numeral system in GCompris
Brief explanation: For now, GCompris numbers are always displayed as Western Arabic numbers (0, 1, ...). There are several systems in the world and Qt/Javascript provides us ways to select the ones we want. The aim of the task is to add the handling of multiple systems and update all the places we display numbers to use the new system. A bit more details are available in https://phabricator.kde.org/T16332.
Expected results: Ability to change numeral system and change it on all the code.
Knowledge Prerequisite: Basics on Javascript and C++
Duration: ~175 hours
Difficulty:: Easy
Mentors: Emmanuel Charruau @allon:kde.org / Johnny Jazeix @johnnyj:kde.org. But please join #gcompris:kde.org to discuss with the team.
Project: Work on one or more KDE Connect tasks
Project type: Coding
Brief explanation: KDE Connect is a desktop and phone app that lets you devices communicate. https://kdeconnect.kde.org/
Expected results: Work on some of the tasks detailed here: https://invent.kde.org/network/kdeconnect-meta/-/issues
Knowledge Prerequisite: The desktop app is written in C++/Qt, the Android app in Java & Kotlin, and the iOS app in Swift.
Mentor: Albert Vaca Cintora <[email protected]>
Krita
Krita is a digital painting application, used by millions of people all over the world. For Google Summer of Code, we expect students to already have contributed to Krita by building the application and submitting merge requests for some bug fixes. Note that some projects also demand a good knowledge of algorithms and skill in doing research.
~ 90h ~
=> Project: Averaged/Mixed Color Selector
=> Project: Saving curves
=> Project: Precision and new units in guides
=> Project: Merging masks
~ 175h ~
=> Project: Onion Skin Shift & Trace
=> Project: Selection Action Bar
=> Project: New option in Color Sampler:
=> Project: Waveform in animation track
=> Project: Summary frames on groups
=> Project: Improve Compositions Docker's Batch Export Features
Brief explanation: The current Compositions Docker does feature exporting and batch exporting, but currently lacks configuration for image or animation export settings. It could use more control over how all compositions are exported.
Expected results: Configurable export settings for the composition docker, and API improvements to allow for reuse of existing export GUI window(s).
Knowledge Prerequisite: C++, Qt, CMake
Duration: ~175 hr
Mentor:
Project: Pixel Perfect Hand-drawn Lines
~ 350h ~
=> Project: Extend Arrange Docker for layers plus snapping
Brief explanation: Currently, the arrange docker only supports aligning and distributing vector objects of a singlet vector layer. This project aims to extend the arrange docker support for layers and masks too.
Expected results: All the current operations available in Arrange docker could be done with the layers.
Knowledge Prerequisite: C++, Qt, CMake
Duration: ~350h
Mentor: TBD