SoK/Ideas/2020: Difference between revisions
No edit summary |
No edit summary |
||
(37 intermediate revisions by 12 users not shown) | |||
Line 1: | Line 1: | ||
{{Warning|KDE SoK 2020 is over now, but it doesn't mean you can't contribute anymore. Contact the team, ask if they have junior job and can help you get started. [[SoK/Ideas/2021]]}} | |||
[[File:Mascot konqi-app-presentation.png|thumbnail|right|[[Konqi]] is giving a lesson!]] | [[File:Mascot konqi-app-presentation.png|thumbnail|right|[[Konqi]] is giving a lesson!]] | ||
==Ideas== | ==Ideas== | ||
Line 10: | Line 14: | ||
If there is no specific contact given in the idea, you can ask questions on the general KDE development list [email protected]. See [http://www.kde.org/mailinglists/ the KDE mailing lists page] for information on available mailing lists and how to subscribe. | If there is no specific contact given in the idea, you can ask questions on the general KDE development list [email protected]. See [http://www.kde.org/mailinglists/ the KDE mailing lists page] for information on available mailing lists and how to subscribe. | ||
=== | When your proposal is ready, submit it here: [https://season.kde.org/?q=program_home&prg=47 Season of KDE] | ||
=== Sample project === | |||
'''Project type:''' Coding / Web Development / Promo / Translation | |||
'''Brief explanation:''' | '''Brief explanation:''' | ||
Line 34: | Line 42: | ||
===Your Own Idea === | ===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. | '''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. | ||
Line 44: | Line 54: | ||
'''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. | '''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:''' | '''Brief explanation:''' | ||
Line 64: | Line 76: | ||
Chris Rizzitello | Chris Rizzitello | ||
=== | === Calligra === | ||
'''Project type:''' Web Development | |||
'''Brief explanation:''' | '''Brief explanation:''' | ||
Line 77: | Line 91: | ||
'''Mentor:''' | '''Mentor:''' | ||
Carl Schwan | Carl Schwan, ping me in https://t.me/KDEWeb or #kde-www in Freenode/Matrix | ||
=== GCompris === | |||
'''Project type:''' Coding | |||
'''Brief explanation''': | |||
[https://gcompris.net/ 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... | |||
[mailto:[email protected] Contact] the GCompris team. | |||
=== | '''Expected results''': | ||
The aim of this year is to complete the number of activities including this features. | |||
Targeted activities are listed under the following address: | |||
https://phabricator.kde.org/T12428 | |||
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) | |||
=== Plasma === | |||
'''Project type:''' Coding | |||
'''Brief explanation:''' | '''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:''' | '''Expected results:''' | ||
We get to throw some horrible code from the 90s in the bin and everything still works. | |||
'''Knowledge Prerequisite:''' | '''Knowledge Prerequisite:''' | ||
C++, DBus | |||
'''Mentor:''' | '''Mentor:''' | ||
David Edmundson | |||
=== Kdenlive === | |||
'''Project type:''' Coding | |||
'''Brief explanation:''' | '''Brief explanation:''' | ||
Line 105: | Line 160: | ||
'''Knowledge Prerequisite:''' | '''Knowledge Prerequisite:''' | ||
Qt and QML | 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 [https://phabricator.kde.org/T10615 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, ping me in https://t.me/KDEWeb or #kde-www in Freenode/Matrix | |||
* 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:''' | |||
<br /> | |||
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:''' | '''Mentor:''' | ||
Carl Schwan, ping me in https://t.me/KDEWeb or #kde-www in Freenode/Matrix | |||
=== Krita === | |||
'''Project type:''' Coding / Documentation / Tutorials / Usability | |||
'''Brief explanation:''' | '''Brief explanation:''' | ||
Line 117: | Line 210: | ||
Boudewijn Rempt | Boudewijn Rempt | ||
=== Project: ROCS | === KDE Developer Portal === | ||
'''Project type:''' Documentation / Web Development / Marketing | |||
'''Brief explanation:''' | |||
KDE as a project is lacking a "start here" portal for both internal and external purposes. A developer portal gives a launchpad to both contributors looking to contribute to a project directly as well as third-party developers looking to take advantage of a project's offerings for their own applications. | |||
'''Mentor:''' | |||
Carson Black (Matrix @appadeia:matrix.org, Telegram @pontaoski) | |||
=== 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:''' | '''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 | 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 | algorithms and other tools for experimentation on graphs. The scripting | ||
language is Javascript. The | 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:''' | '''Expected results:''' | ||
A graph editor view working correctly. | * A graph editor view working correctly. | ||
* Easier to generate graphs. | |||
* Looks better and follows the HIG better. | |||
'''Knowledge Prerequisite:''' | '''Knowledge Prerequisite:''' | ||
Basic programming. Familiarity with git. Good English knowledge is recommended. | Basic programming in C++ and QML. Familiarity with git. Good English knowledge is recommended. | ||
'''Mentor:''' | '''Mentor:''' | ||
Caio Tonetti | 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 [https://kube-sink.readthedocs.io Sink] is nice to have. | |||
Example code to use sink API for contact synchronization: [https://invent.kde.org/rpatwal/sink-use-examples/tree/master/sink-caldav-example sink-caldav-example] | |||
'''Mentor:''' | |||
Rituka Patwal | |||
'''Contact:''' | |||
https://www.plasma-mobile.org/join/ |
Latest revision as of 10:24, 27 October 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.
When your proposal is ready, submit it here: Season of KDE
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, ping me in https://t.me/KDEWeb or #kde-www in Freenode/Matrix
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 listed under the following address:
https://phabricator.kde.org/T12428
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)
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
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, ping me in https://t.me/KDEWeb or #kde-www in Freenode/Matrix
- 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, ping me in https://t.me/KDEWeb or #kde-www in Freenode/Matrix
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
KDE Developer Portal
Project type: Documentation / Web Development / Marketing
Brief explanation: KDE as a project is lacking a "start here" portal for both internal and external purposes. A developer portal gives a launchpad to both contributors looking to contribute to a project directly as well as third-party developers looking to take advantage of a project's offerings for their own applications.
Mentor: Carson Black (Matrix @appadeia:matrix.org, Telegram @pontaoski)
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/