KDE and Google Summer of Code 2017: Fun, Features, Bugs, Blogs

While you were enjoying your summer vacation, our Google Summer of Code (GSoC) students were working hard on their projects. They developed new features for KDE software, stomped bugs, wrote blog posts to report on their progress, and still managed to have fun while doing all that. With the final results announcement just around the corner, let's take a look at what the students accomplished in the past three months.

This year, 24 students contributed to more than 20 KDE projects as part of GSoC. As you probably already know, GSoC is a yearly program organized by Google for students from all over the world. The aim of GSoC is to motivate young developers to join open source organizations, and those who successfully complete their project receive a stipend from Google.

KDE has been participating in GSoC since the very beginning in 2005, and we're proud to say that many of our students remain active contributors and members of the KDE Community.

If you haven't been following our GSoC students' blog updates (a mistake you can easily fix by subscribing to Planet KDE), here's a recap of their activities. Most, if not all of their work will show up as new and improved features in the upcoming versions of KDE software.

More Power to the Creatives

Digital artists will be happy to hear that Krita and digiKam received some power-ups from our GSoC 2017 students. Aniketh Girish improved the user interface of Krita's Resource Manager, making it easier to create and edit bundles. He also created a dialog that enables interaction and content exchange with the website.

Krita's new content downloader.

Alexey Kapustin worked on a touchy subject - implementing telemetry into Krita. Of course, this feature will be completely opt-in, and the information collected will help Krita developers understand the behavior and needs of their users.

Grigory Tantsevov developed a watercolor brush engine that emulates the look and behavior of real watercolors, and Eliakin Costa worked on making Krita more scriptable to save time on repetitive actions.

Choosing a face recognition algorithm in digiKam.

Along the way, Eliakin also improved and developed several plugins, including the Document Tools Plugin, Ten Scripts Plugin, and the Last Documents Thumbnails Docker.

Ahmed Fathy Shaban worked on implementing a DLNA server directly into the digiKam core, and Yingjie Liu achieved 99% face recognition accuracy in digiKam by adding new face recognition algorithms.

Last but not least, Shaza Ismail Kaoud created a useful healing clone tool for digiKam. See the tool in action in this video clip.

Boosting KDE Edu

Applications for all levels of education, from preschool to PhD, received a boost from GSoC students. Thanks to Stefan Toncu, users of Minuet can now choose an instrument for exercise visualization, instead of always being stuck with the keyboard.

GCompris Family activity.

Divyam Madaan and Rudra Nil Basu added a bunch of activities to GCompris: Oware, Computer parts, Piano composition and note names, Pilot a Submarine, Family, and Digital Electronics.

Deeper in the scientific territory, Rishabh Gupta ported the Lua, R, and Qalculate backends in Cantor to QProcess, and Fabian Kristof Szabolcs implemented support for live streaming data in LabPlot.

Csaba Kertesz worked on modernizing the KStars codebase, and Cristian Baldi developed a responsive web app for WikiToLearn from scratch. His project also included building offline browsing right into the WikiToLearn website, and allowing Android users to install the website on their phone just like any other regular app.

Kirigami Welcomes New Apps

Speaking of mobile apps, Judit Bartha worked on the Android version of Marble Maps. Judit implemented bookmark management and redesigned the app to fit the Material Design guidelines using the Kirigami framework. Mohammed Nafees worked on extending Marble Maps to support indoor maps, such as building floor plans.

Marble Maps for Android: old interface on the left, and the redesigned one on the right.

Atul Sharma ported Koko, a simple image viewer, to Kirigami.

Chatting Anywhere, Anytime

Ruqola, the Qt-based client for Rocket.Chat.

Chat applications keep multiplying, and users expect native clients for their Linux desktops. Vasudha Mathur developed Ruqola, the first generic cross-platform interface to Rocket.Chat. She used Kirigami and Qt technologies to shape the application for both desktop and mobile platforms.

Davide Riva developed a protocol-independent chat bridge that supports IRC, Telegram, and Rocket.Chat, allowing for future expansions thanks to its modularity. The bridge is called Brooklyn, and it is already on its 0.2 release.

Vijay Krishnavanshi and Paulo Lieuthier worked on Kopete. Vijay ported the remaining KDE4 parts of Kopete to KF5, and Paulo created a new plugin for chat history management.

Making KDE Software Better

Plenty of improvements have been implemented across the KDE applications ecosystem. Chinmoy Ranjan Pradhan worked on adding Polkit support to KIO, the system library used by KDE software to access and manage files. Polkit allows non-root users to perform file management operations that would usually require admin privileges. With this feature, opening Dolphin as root should finally become a thing of the past.

Lukas Hetzenecker examined HiDPI rendering issues in KDE applications (Gwenview, Spectacle, Okular) and set out to fix them. Mikhail Ivchenko focused on KDevelop, and worked on stabilizing the support for the Go programming language.

Looking Forward to Next Year

Taking part in GSoC is a great opportunity for professional development. In addition to expanding their programming skills, the students earn valuable project management experience, as they are expected to plan and report on every step of their project.

Despite all those benefits, GSoC is not always so peachy for everyone. Sometimes students encounter code-shattering bugs, or have to rewrite entire software components in another programming language. This is where the mentors step in. Mentors offer guidance when students get stuck, and provide advice in making key decisions. Without their support, GSoC wouldn't be so successful, so here's a big "thank you" to all our GSoC 2017 mentors!

To all our students who passed the final evaluation: Congratulations! We're delighted to have been a part of this journey with you, and we hope you'll stick around in the KDE Community. And if you didn't pass, don't despair. We still greatly value your contribution and effort, and you're more than welcome to keep contributing to KDE.

It's never too early to start preparing for the next Google Summer of Code. If you're a student interested in Free and open source software, join us today!