SoK/Ideas/2021
Ideas
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, contact the developers and find out more about the particular suggestion you're interested in.
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 in the idea, 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.
You need to submit your proposal to season.kde.org before the deadline.
Sample project
Project type: Coding / Web Development / Promo / Translation
Brief explanation:
Expected results:
Knowledge Prerequisite:
Mentor:
When adding an idea to this section, please try to 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
- the expected results
- pre-requisites for working on your project
- 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 you are not a developer but have a good idea for a proposal, get in contact with relevant developers first.
Ideas
Your Own Idea: Something that you're totally excited about
Project type: Coding / Web Development / Promo / Translation
Brief explanation: Do you have an awesome idea you want to work on with KDE but it isn't 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 love
Knowledge Prerequisite: Probably C++ and Qt, but it depends on your 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 on Freenode IRC.
Promo
Tips and Tricks Videos for Social Media COVERED
Project type: Promotion
Brief explanation: The goal of this task is to create promo videos showing off tips and tricks from the list maintained here: T13465. You will be able to choose a few of them and create short videos with some effects applied to them. The amount of videos you will need to do depends on how much time you have.
Expected results: Your short videos will be displayed on social media and viewed by many people. This will help with the promotion of KDE's software as powerful applications.
Knowledge Prerequisite: Knowledge of KDenlive is recommended but not required, but you will need to learn and use KDenlive. The promo team has some KDenlive experts and it is a good occasion to learn how to use it. Knowledge of Blender and other open source animation applications (Synfig?) also a plus.
Mentor: Paul Brown and rest of the KDE Promo team.
Add Sources of Data and Automate their Collection ALREADY ASSIGNED
Project type: Promotion, Data retrieval
Brief explanation: The goal of this task is to seek new sources of data that will help us analyse the current state of KDE software in the world and also to put in place mechanisms that allows for their automatic recollection.
Expected results: Mores sources of data that provide us with more insight. Automatic and periodic recollection of the data.
Knowledge Prerequisite: Scripting and processing of online data.
Mentor: Paul Brown and the rest of the KDE Promo team.
Process Data Collected from Social Media and Other Sources ALREADY ASSIGNED
Project type: Promotion, Data analysis, maybe some scripting
Brief explanation: The goal of this task is to process the different sources Promo collects data from social media, website stats, distro popcons, mailing lists, etc. so that it's easier for Promo to gain insight into user behavior and predilections.
Expected results: Standardized and categorized collected data. Set up tools and workflows to process incoming data.
Knowledge Prerequisite: Knowledge of processing of data formats, basic scripting skills.
Mentor: Paul Brown and the rest of the KDE Promo team.
Create a Data Visualisation Dashboard ALREADY ASSIGNED
Project type: Promotion, Web Development, Graphs
Brief explanation: The goal of this task is to create a scalable (in that it should be able to accept more data streams) website to visualise data we collect from different sources
Expected results: A website that allows visitors to visualise graphically data collected and processed in the prior two tasks
Knowledge Prerequisite: Knowledge of data processing, web development.
Mentor: Paul Brown and the rest of the KDE Promo team.
Create App for Posting and Scheduling Posts for Multiple Social Media Platforms ALREADY ASSIGNED
Project type: Promotion, marketing, coding
Brief explanation: The goal of this task is to create an app with a plugins that allows the promo team to post to several social media platforms simultaneously. It has been suggested to make it a server/client thing. The server could run locally or remotely and would deal with the posting and scheduling itself. The client would be a dumb-ish app, a friendly local interface to the server.
Expected results: A convergent app that can be expanded with plugins that allows the Promo team to post to at least Facebook, Twitter and Mastodon (and maybe LinkedIn, Reddit, and Instagram) all at the same time.
Knowledge Prerequisite: Knowledge of programming using KDE technologies (Qt/QML/Kirigami), servers, web APIs.
Mentor: Paul Brown and the rest of the KDE Promo team.
Documentation: Improve documentation about various part of KDE
Project type: Documentation
Brief explanation: The goal of this task is to improve the various part of the documentation of KDE. There is potential for more than one SoK project in it. The parts to document are for example Kpackage and the plugins infrastructure, Kirigami (the convergent UI toolkit), ... But proposing your own ideas are also welcome, there is many frameworks: https://api.kde.org/frameworks/.
Expected results: It will be easier for people to develop cool applications and utilities with KDE technologies.
Knowledge Prerequisite: A bit of QML/Qt and English writing skills :)
Mentor: Carl Schwan, you can join our matrix room in #developer-doc:kde.org. Please don't PM me or Sir me.
KStars, Coding: Make custom catalogs fast by putting them on a special data structure
Project type: Code
Brief explanation: The goal of this project is to improve the speed at which large custom (user-created / internet-downloaded) catalogs of sky objects (e.g. galaxies etc.) are rendered by KStars. KStars already has adaptations of a space-partitioning data structure (kind of like a k-D tree), the Hierarchical Triangular Mesh, which can be used to create an index based on the region of the sky in which an object lies, which are used elsewhere in KStars. The project would adapt this data structure to work with custom catalogs.
Expected results:
1. Optimize the rendering by only rendering those objects that are in the regions displayed on the screen
2. Optimize the computations by only computing positions for those objects that are in the regions displayed on the screen
3. Stretch Goal: Optimize the loading to only load into memory (from the database) those objects that are in regions displayed on the screen
A merge request with proper code review validation is expected at each step of this project.
The final win for KStars is that we will be able to render catalogs of hundreds of thousands of galaxies (such as the Principal Galaxies Catalog) without impact in performance.
Knowledge Prerequisite: C++, Basic understanding of Object Oriented Programming, Rudimentary familiarity with Qt
Mentor: TBD
Peruse: Expand Peruse or Creator's featureset
Project type: Coding
Brief explanation: Peruse and Peruse Creator are both basic, capable applications, but as all applications, there is more to do to make them really sing. Maybe we want Peruse to be able to make use of the ACBF Jump system to make interactive fiction possible, and for Peruse Creator to be able to create that. Maybe we want Peruse Creator to have more creative management tools to support the creation of books, like a timeline of events, language descriptions. Maybe we want Peruse Creator's translation tools to be more capable, and Peruse itself to be able to display the rich text areas found in ACBF and other advanced formats. In short, have a play, and pitch your ideas.
Expected results: A more capable Peruse and/or Peruse Creator
Knowledge Prerequisite: You should be comfortable with C++, Qt, and QML based application development, as both applications depend heavily on this combination.
Mentor: Dan Leinir Turthra Jensen (catch the person with the screen name leinir anywhere on KDE's infrastructure, and indeed most other places)
Plasma
Project type: Coding
Brief explanation: Write new backend for SessionsModel.
We have some code in libkworkspace that is horrible; kdisplaymanager.cpp. Most of it exists based on assumptions 20 years old and we've kept adding stuff on top. The result is both messy and full of blocking calls.
We have split most of it out, but one part remains; listing active sessions running.
Expected results: We get to throw some horrible code from the 90s in the bin and everything still works.
Knowledge Prerequisite: C++, DBus
Mentor: David Edmundson
Plasma Discover rpm-ostree backend
Project type: Coding
Brief explanation: Write new backend for Discover which supports doing system upgrades using rpm-ostree to support Fedora Kinoite upgrades.
Fedora Kinoite is a variant of Fedora Silverblue with the KDE Desktop Environment. This is currently an unofficial Fedora variant but work is in progress to make it official and this feature is one of the last missing pieces.
Expected results: rpm-ostree based systems can have proper and transparent system upgrades.
Knowledge Prerequisite: C++
Mentor: Aleix Pol and Timothée Ravier
ISO Image Writer, Live USB Maker
Project type: Code
Brief explanation: ISO Image Writer was suggested as a GSoC project by Farid Boudedja, to make live USB booting compatible with the KDE Neon distribution. An alternative program exists, but is not based on KDE and does not work correctly. It needs to be improved with libusb, polkit, syslinux, ISO image file system checker and loader, OpenSSL verifier, etc. In this season, it will be a bit improved with some functions from volunteers. If you have an idea to make system utilities with Qt UI, it will be a good experience.
Expected results:
1. Checking for distribution's check sum
2. Checking image file system corruption and analyse which type of ISO image
3. Adopt well environment with distribution images and use rest space on USB sticks.
Knowledge Prerequisite: C++, syslinux, ISO/FAT/EXT filesystems, libusb, polkit, openssl, Qt
Mentor: Sung Jae Cho
Calamares
Project type: Code, documentation, design
Brief explanation: Calamares is a Linux system installer which is used by a few dozen Linux distributions, including KDE neon. While not strictly a KDE project, it was created by KDE people, is maintained by KDE people, and uses Qt, KDE Frameworks, and KDE's partitionmanager. For political reasons -- Calamares is distro-, desktop- and toolkit-agnostic as to what it installs -- it lives outside of KDE infrastructure, in GitHub.
Calamares has SoK mini-projects for the website, for code, and for documentation. These are organized as issues with specific labels, so that they are easy to find at any moment. Some of the issues have an extensive step-by-step process written out; others are a little more free-form.
Expected Results: look at the individual issues for details. Below is a partial list of the open tasks (as of october 13th, 2020) to give you an idea what is available.
- Send installation log to pastebin (C++, Qt, QNetworkManager)
- Add schema file for shellprocess configuration (Python, YAML)
- Expand generic end-user documentation (Markdown)
- Update website about page with new screenshots (Markdown, needs a VM to get those screenshots)
Knowledge Prerequisite: Depends on the task, see parenthesis after each. The Calamares code is C++14 with Qt along with some Python. If you want to work in the code, you'll need some experience with that. The configuration is all YAML and the configuration tooling is mostly Python and some shell-script. The documentation and website is Markdown and Jekyll (GitHub pages).
Mentor: Adriaan de Groot
KWeather
Project type: Code
Brief explanation: Implement global weather alert system for KWeather using the CAP protocol. The weather alert source is provided by meteorology institutions around the world. The goal is to include as many countries as possible.
Expected results:
- Weather alert daemon that parses the raw data, sends notifications to the system.
- D-Bus interface for other applications to access the information, ex. KWeather.
Knowledge Prerequisite: C++, Qt, the CAP protocol is XML.
Mentor: Devin Lin, Han Young
Plasma Firewall
Project type: Code
Brief explanation: Implement an interface using KNewStuff to share firewall rules (e.g.: enable only http e https to outside).
Expected results:
- Shareable rules across Plasma firewall users;
- Easy to use interface for non-technical users.
Knowledge Prerequisite: C++, Qt, network knowledge.
Mentor: Tomaz Canabrava, Lucas Biaggi
KClock: Produce default alarm/ringtones
Project type: Music Production
Brief explanation: Produce a set of default alarm sounds for KClock (Plasma Mobile's clock application). The sounds may also be used as ringtones in Plasma Mobile.
https://invent.kde.org/plasma-mobile/kclock/-/issues/8
Expected results:
- Production of a set of original alarm/ringtone sounds
Knowledge Prerequisite: Music Production in a DAW software
Mentor: Devin Lin, Han Young
Elisa
Project type: Coding
Brief explanation: Improve Existing Views
Expected results:
- Current Elisa views do not support multiple selection (by mouse for example). It would be nice to be able to get that.
- Another nice feature requires to add drag'n drop between a view and the playlist.
- Another task would be to test and fix problems for visually impaired people. In particular a focus on the context view is needed. Currently that should not be accessible at all.
Knowledge Prerequisite: qml and maybe c++
Mentor: Matthieu Gallien
Current Elisa views do not support multiple selection (by mouse for example). It would be nice to be able to get that.
Another nice feature requires to add drag'n drop between a view and the playlist.
Another task would be to test and fix problems for visually impaired people. In particular a focus on the context view is needed. Currently that should not be accessible at all.
More ideas welcome.
NeoChat
Project type: Code
Brief explanation: Adding more functions to Neochat. Talk with us to find out the most adapted task for you. It can be around encryption, video call or another cool feature
Expected results:
- NeoChat is more awesome
Knowledge Prerequisite: Depends on your task, but good knowledge in C++ is recommended. Mentor: Carl Schwan, you can contact me in https://webchat.kde.org/#/room/#neochat:kde.org
KQuickImageEditor
Project type: Code
Brief explanation: KQuickImageEditor is a simple image editor intended as being embedded in QML applications. Add image effects implemented as GSGL shaders
Expected results:
- Making the library more useful
Knowledge Prerequisite: C++ and a bit of OpenGL Mentor: Carl Schwan
eurOS: Standard European Operating System
Project type: Conception
Brief explanation: The EU-funded project eSSIF-lab calls for IT-infrastructure projects implementing use cases of SSI+eIDAS Technology. The initial idea, inspired by https://futureu.europa.eu (for example European Smartcard Prototype, Standard European Operating System ) idea contributions, is to conceptualize a free OS for server/desktop/smartphone/embedded called "eurOS" which will be hosted on:
- euros.europa.eu (project site)
- docs.europa.eu (docs)
- git.europa.eu (gitlab instance)
- repo.europa.eu (package repo)
and basically aims to provide a slim, secure and kiss LTS OS, demonstrating use cases of Self-Sovereign-Identity on KDE/Plasma/Plasmamobile/Kirigami, to hopefully become a potential candidate for an Standard European Operating System for European institutions on the long run.
Expected results: A written Application Concept at https://essif-lab.eu/open-calls/ before end of June 2021.
Knowledge Prerequisite: GNU Linux System Architecture, Systemd, KDE Framework, Qt, C, C++, Python, Shell, Cybersecurity
Issuer: [email protected]
Mentors: ?