GSoC/2023/Ideas
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
Project:
If appropriate, screenshot or another image
Brief explanation:
Expected results:
Knowledge Prerequisite:
Duration: ~175 hr or ~350 hour (use only one)
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
- expected effort to finish the project (either ~175 or ~350 hrs)
- your name and email address for contact (if you're willing to be a mentor)
**Ideas with no mentors listed and their contact info will be removed**
If you are not a developer but have a good idea for a proposal, get in contact with relevant developers first.
Ideas
Kalendar
Project: Calendar Invitation
Brief explanation: The goal is to make it possible to send calendar invitation from Kalendar and also handle incoming invitations. This includes showing the free busy information from the attendees. Part of this features are already implemented in the C++ core but needs to be hooked up in the UI and others will require more work.
Expected results: Being able to manage all your meetings with Kalendar and make sure this is unit tested :)
Duration: ~350 hours
Knowledge Prerequisite: C++ is highly recommended, this is a complex code base
Mentor: Carl Schwan and Claudio Cambra (contact us in #kalendar:kde.org on Matrix)
Project: Improved multiplatform support
Brief explanation: Kalendar works great on Linux, but due to our dependency tree it is tricky to get it to build on Windows, and we do not have any current builds for macOS. For this project you will work on improving our support for either or both of these platforms and helping them become first class citizens for Kalendar. This will likely involve working on related projects like Akonadi.
Expected results: Working daily builds of Kalendar on Windows and/or macOS, depending on chosen project duration.
Duration: ~175 hours for one platform or ~350 hours for both platforms
Knowledge Prerequisite: C++ and CMake will be used extensively
Mentor: Claudio Cambra and Carl Schwan (contact us in #kalendar:kde.org on Matrix)
Project: Mail integration
Brief explanation: The goal is to make Kalendar not just a great calendaring application, but also a great mail application. We have basic email lists and a basic viewer working, but there is a huge amount of work still to do here: threading, editing, sending, and a lot more. A lot of this will not have to be done from scratch thanks to Akonadi (i.e. email retrieval and sending), but a lot of it will (i.e. threading).
Expected results: Kalendar should be a nice mail app :)
Duration: ~350 hours
Knowledge Prerequisite: C++ is required, QML will be needed but can be learned on the go if one has some JS experience
Mentor: Carl Schwan and Claudio Cambra (contact us in #kalendar:kde.org on Matrix)
Project: Implement calendar availability
Brief explanation: The short version is that you will need to implement RFC 7953 in Kalendar. The long version is that this availability extension definde by this RFC allows to define available and unavailable time periods. This is then helpful when trying to schedule a meeting with someone (see above tasks) as you will then be able to see then and avoid scheduling a meeting at that time. Implementation you will first need to add support for this in KCalendarCore for it and then expose this to the user interface so that user can modify their availability.
Expected results: Being able to configure my availability in Kalendar
Duration: ~175 hours
Knowledge Prerequisite: C++ and QML is recommended
Mentor: Carl Schwan and Claudio Cambra (contact us in #kalendar:kde.org on Matrix)
Project: Accessibility improvements
Brief explanation: It is a general KDE goal to make our applications accessible to everyone, including those who may require using their computers with keyboard navigation and screen readers. Kalendar needs a lot of work in this regard, particularly regarding navigation within the calendar views and around the application.
Expected results: Keyboard navigation throughout the entirety of Kalendar is expected, as well as use with screen readers. Further ideas for accessibility-related improvements are a big plus.
Duration: ~175 hours
Knowledge Prerequisite: QML will be required for this task, and you will likely need to use some C++ too.
Mentor: Claudio Cambra (contact me in #kalendar:kde.org on Matrix)
Your Own Idea
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 ~175 or ~350 hours of effort necessary to finish the project. Use only one of these two project classes and don't come up with other numbers here.
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.