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 may wish to contact the developers and find out more about the particular suggestion you're looking at.

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.

Project: Sample project

Brief explanation:

Expected results:

Knowledge Prerequisite:


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.

Project: Cooperative Learning themes for Pairs

Brief explanation: Describe an xml theme-schema to add Cooperative learning to the educational game Pairs. Modify the Pairs Theme Editor to support this new theme-schema.

Pairs is an educational game for children. Pairs allows the user to load external themes so that the user can customize the game for her/his own educational goal. A Theme editor is also shipped together with Pairs. This editor allow the educator to produce their own themes.

Expected results: A brief documentation of the schema and a new version of the Editor that can create, read, modify and save new Themes following this schema

Knowledge Prerequisite: Git, XML, Qt, C++

Mentor: Marco Calignano <[email protected]>

Project: Connect Calligra Words and Authore to the Zotero bibliography database

Brief explanation: Calligra is the KDE suite of office and graphics applications. Calligra Words is a generic word processor and Calligra Author is a tool for writing and publishing E-books. At this point they are very similar but they are expected to diverge. However, they will always share lots of code.

Zotero is the world's most used citation database software. It is used everywhere in academics and some private organizations. Zotero has a web interface for working with the database and a web service API to connect a word processor and insert citations into the paper being worked on.

Calligra Words and Author are being used by more and more people and a common comment at every new release - including the recent 2.7 one - is a wish to have a connection to Zotero. This project is about providing that.

Expected results: Calligra Words and Author should be able to connect to a Zotero database and let the user insert citations from it in an easy way. The project does *not* include editing the database of citations.

The outcome of the project should be a so called "docker" in Calligra terms that lets the user connect to a Zotero database and insert citations from it into the text document. The user should also be able to insert a bibliography at a point in the document and have that be automatically generated, a bit like a table of contents.

There is already a working bibliography tool in Calligra Words so you will only have to write the connection to Zotero and connect to the existing bibliography system. Possibly this has to be refactored to work with a remote data source. There is also a similar connector to Google Docs that can be studied and copy code from.

Knowledge Prerequisite: Git, Qt, C++, using bibliographies in a word processor. Most likely Zotero.

Mentor: Mojtaba Shahi Senobari <[email protected]> Note: the mentor and the general Calligra community are not Zotero users.

Project: Cooperative Learning games for Pairs

Brief explanation: Enhance the Pairs Theme model interface to integrate the new xml-schema for the cooperative learning themes in the Pairs game. Further implement some GUI changes to allow the cooperative learning theme to be used more intuitively.

Pairs is an educational game for children. Pairs allows the user to load external themes so that the user can customize the game for her/his own educational goal. A Theme editor is also shipped together with Pairs. This editor allow the educator to produce their own themes.

Expected results: Pairs is able to understand the new theme schema. It also allows you to play following the ‘rules’ in the schema.

Knowledge Prerequisite: Git, XML, Qt, QML, C++

Mentor: Marco Calignano <[email protected]>

Project: Add support for importing tables from LibreOffice Base to Kexi

Brief explanation: Add support for importing (Kexi calls it data/design migration) tables from LibreOffice (or OpenOffice) Base (ODB format) to Kexi. This task involves research on ODB format (it's relatively openly defined). Qt/C++ shall be used for the task, not any Java engine (HSQL db). See [1] for a start. This could be introduction to later development of complete database import from ODB to a Kexi database.

Expected results: In the GUI the feature shall be put in the same place as the import from MDB: External Data -> Import Tables -> Table Importing Wizard. Then user would see .odb support in the open file dialog, just like it has access to importing CSV or MDB.

Knowledge Prerequisite: C++, some Qt, some databases, some XML, software architecture

Mentor: Jarosław Staniek (Kexi maintainer)

First steps:

  • Studying kexi/migration/importtablewizard.cpp which is a GUI taking an instance of implementation of a migrate driver derived from KexiMigration::KexiMigrate (in your case - the ODB driver). It's the m_migrateDriver attribute.
  • Trying to implement plugin (needed methods of the driver) in migration/odb/ by looking how it was performed for other cases, e.g. for mysql (see kexi/migration/mysql/ dir) or other cases such as pqxx, txt, xbase, sybase or mdb.

Content is available under Creative Commons License SA 4.0 unless otherwise noted.