SoK/Ideas/2020
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.
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.
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 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
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.
Atelier
Project type: Coding
Brief explanation: Atelier is the 3DPrinting software built by the KDE Community to help you to control your 3Dprinters from your PC, and hopeful from any device.
Expected results:
What we would like to have:
- Build a web layer on AtCore(That is the library behind Atelier)
- Build an interface with QML for mobile/embedded devices.
Knowledge Prerequisite: C++ and Qt.
Mentor: Lays Rodrigues Tomaz Canabrava Chris Rizzitello
Calligra
Project type: Web Development
Brief explanation: Calligra is an office program developed by KDE for 22 years. Currently, the webpage of Calligra looks very dated and is using old screenshots from the KDE4 era. The task consists of rewriting the website to look similar to kontact.kde.org. Since the code can be reused the task will consist mostly in writing content and taking screenshots.
Expected results:
A beautiful webpage for the promotion of Calligra.
Knowledge Prerequisite: Markdown and some very basic programming. Familiarity with git. Good English knowledge is recommended.
Mentor: Carl Schwan
GCompris
Project type: Coding
Brief explanation: GCompris is a high quality educational software suite, including a large number of activities for children aged 2 to 10. We recently introduced a multiple level selection. This allows user to choose more closely the competences they want to work on. For example when working on numeration, user can now choose if he wants to learn numbers from 0 to 3 or 0 to 4 or 0 to 5 etc... Contact the GCompris team.
Expected results: The aim of this year is to complete the number of activities including this features. Targeted activities are:
- Enumeration memory game
- Find the date
- Count the items
- Balance the scales properly
But also to improve the level selection for the following activities :
- Analog watch
- Small Numbers
Activities already including the selection level can be found in our git repository under multiple_dataset branch. Activities are smallnumber, smallnumbers2, gletters, reversecount, gletters.
Knowledge Prerequisite:
Be interested in children’s education
Be familiar with GCompris concept and content
Basic knowledge in a programming language (a 1 year school course is enough)
Be able to build the Qt Quick version of GCompris
Application guide: Provide a timeline in your application. If you haven't contributed yet please read http://gcompris.net/wiki/GSOC_newcomers, http://gcompris.net/wiki/An_exercise_for_new_contributors and http://gcompris.net/wiki/Reviewing_an_activity
There are several info in the wiki: http://gcompris.net/wiki/Developer%27s_corner.
Feel free to contact us either on irc or by mail ([email protected])
Mentors: Emmanuel Charruau (IRC: allon), Johnny Jazeix (IRC: JohnnyJ), Timothée Giet (IRC: Animtim), Rajdeep Kaur (IRC: )
Kdenlive
Project type: Coding
Brief explanation: Improve the timeline clips color palette.
Expected results: To have a better UI/UX by designing a concept on how clips should look in the timeline. Also improve the way audio waves are displayed.
Knowledge Prerequisite: Qt and QML
KDE Connect
Project type: Web Development
Brief explanation: Create a website for KDE Connect for better outreach and visibility.
The current discussion for this project is available here.
Expected results:
- To have a static website for KDE Connect that allows any user or developer to understand the purpose and features of KDE Connect
- To provide static link(s) for the various master builds of KDE Connect applications, namely the android application and its desktop counterpart(s).
Knowledge Prerequisite:
- Basic knowledge of HTML, CSS, JavaScript.
- Previous static website projects are a nice-to-have.
- Please do elaborate about how you plan to explain the inner working of KDE Connect in your proposal.
Mentors:
- Carl Schwan
- Piyush Aggarwal
KDE Web
Project type: Web Development / Promo
Brief explanation: We need to update the version of dot.kde.org, blog.kde.org and akademy.kde.org from drupal 7 to drupal 8. We should use this opportunity to create a new theme for those drupal websites.
Expected results:
A more modern webpage for the promotion of KDE and KDE events.
Knowledge Prerequisite: Drupal 8 or good php knownledge. The theme is already provided so you don't need to be a designer ;)
Mentor: Carl Schwan
Mentor: Farid Abdelnour
Krita
Project type: Coding / Documentation / Tutorials / Usability
Brief explanation: Krita is a wide-used digital painting application, written in C++ and Qt. Plugins can also be written in Python. If you want to participate in Season of KDE 2020 for Krita, please contact the Krita developers on #krita on irc.freenode.org (there is also a matrix mirror on webchat.kde.org). We prefer students bring their own ideas. Examples of coding projects you can work on are image filters, pixel generators or brush engines. Non-coding project proposals are welcome as well. These could take the form of papercuts inventories, usability surveys or creating tutorials for underdocumented aspects of Krita.
Mentor: Boudewijn Rempt
marK
Project type: Coding
Brief explanation: marK is a machine learning dataset annotation tool which allows users to annotate multiple types of data to help during the training for supervised classification problems. It is currently under development and we are planning to release its beta version soon. We now have a version of marK that was developed with Qt Widgets, but we are planning to port it to QML, as it will provide an easier way to manipulate different types of data and a possible release for mobile devices in the future. More information can be seen in this post: https://caiojcarvalho.wordpress.com/2019/01/29/mark-a-general-purpose-tool-for-data-annotation/
Expected results: Finish porting marK to QML.
Knowledge Prerequisite: Qt and QML
Mentor: Caio Jordão Carvalho
ROCS
Project type: Coding
Brief explanation: Rocs is a Graph Theory IDE for designing and analyzing graph algorithms. It provides a easy to use visual editor for creating graphs, a scripting engine to execute the algorithms and other tools for experimentation on graphs. The scripting language is Javascript. The UI for Rocs is built with a mix of QWidgets and QML.
Tasks There are multiple tasks; it is not expected that a single student would deal with all of them.
- Fixing the graph editor view that have some problems related to the placement of the graphs in the view and mouse clicks not working correctly.
- Improving workflow for graph generation. Generating a (for instance, random) graph is rather tedious, and that workflow can be improved.
- The UI is not aligned "nicely" and has a lot of internal borders and whitespace that no longer match up with the UI guidelines for KDE projects. It would be nice to simplify and "tighten up" the UI.
Expected results:
- A graph editor view working correctly.
- Easier to generate graphs.
- Looks better and follows the HIG better.
Knowledge Prerequisite: Basic programming in C++ and QML. Familiarity with git. Good English knowledge is recommended.
Mentor: Caio Tonetti, Tomaz Canabrava, Adriaan de Groot
See Also: https://community.kde.org/KDEEdu/Rocs/Todo
Plasma Phonebook Contact Groups
Project type: Coding
Brief explanation: plasma-phonebook is a contacts application for Plasma Mobile and other mobile OS. Goal of this task is to add group management to the app. Contacts can be assigned one or multiple groups and groups can be browsed
Expected results: A basic group management inside the application.
Knowledge Prerequisite: Basic programming in C++.
Mentor: Nicolas Fella
Contact: https://www.plasma-mobile.org/join/
Plasma Mobile Clock application
Project type: Coding
Brief explanation: Plasma Mobile needs a suitable clock application that provides alarms, stopwatch and similar functionality. There is a work in progress that needs expansion (https://phabricator.kde.org/T8904)
Expected results: Basic functionality works
Knowledge Prerequisite: Basic programming in C++.
Mentor: Nicolas Fella
Contact: https://www.plasma-mobile.org/join/
Plasma Mobile: Nextcloud contacts integration
Project type: Coding
Brief explanation: Plasma Mobile is KDE's software stack for mobile devices that includes Plasma phone components, Kirigami and a set of mobile-friendly applications. Plasma Mobile offers the Nextcloud account integration.
Goal of this task is addition of Edit Contact functionality to enable users to edit contacts synced from Nextcloud account using Plasma-Phonebook app.
Expected results: User is able to edit contacts that are synced from Nextcloud account using Plasma-Phonebook app.
Knowledge Prerequisite: Basic knowledge of C++, Qt. Knowledge of Sink is nice to have.
Example code to use sink API for contact synchronization: sink-caldav-example
Mentor: Rituka Patwal
Contact: https://www.plasma-mobile.org/join/
Plasma Phonebook Actions Toolbar
Project type: Coding
Brief explanation: plasma-phonebook is a contacts application for Plasma Mobile and other mobile OS. Goal of this task is to rework the way actions such as calling are displayed inside the application for more details see https://invent.kde.org/kde/plasma-phonebook/issues/4 Expected results: A better UI
Knowledge Prerequisite: Basic programming knowledge.
Mentor: Nicolas Fella
Contact: https://www.plasma-mobile.org/join/