< SoK
Revision as of 16:44, 15 August 2013 by Ingwa (talk | contribs) (Project: Let a word processor user use citations from Zotero: Change title of project)
Jump to: navigation, search


Information for students




Project: Sample project

Brief explanation:

Expected results:

Knowledge Prerequisite:



  • a brief explanation
  • the expected results
  • pre-requisites for working on your project
  • if applicable, links to more information or discussions


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: Let Calligra Words and Author user connect 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.


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.
