Kexi/Junior Jobs/Add support for importing tables from LibreOffice Base

From KDE Community Wiki

Status: in progress, assigned to Harshita Mistry ([email protected])

Goal: Add support for importing (Kexi calls it data/design migration) tables from LibreOffice (or OpenOffice) Base (ODB format) to Kexi.

Proposed and mentored by Jstaniek, 2014

Note

This task is assigned within the GSoC 2014 program for KDE


Knowledge Prerequisites

C++, some Qt, some databases, some XML, software architecture

Requirements

  • In the GUI the feature shall be available 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

Hints

  • This task involves research on ODB format (it's relatively openly defined)
  • Qt/C++ shall be used for the task together with Java engine (HSQLDB) and probably connected via JNI. This could be introduction to later development of complete database import from ODB to a Kexi database.
  • See [1] for a start.
  • Sample .odb databases are available for this tutorial.
  • 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.
  • Implementing 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
  • In the actual C++ implementation, KoOdfReadStore class from calligra libs can be used to read contents of the .odb.

Organization of the works

  • commit changes to student's public branch at least once after each workday, not after a milestone
  • developing wire-frames/prototypes of the software in advance, especially important since the solution is rather hybrid
  • documenting them and developing/designing tests while the development progresses, not as the last step
  • developing both C++/Qt side of the solution as well as the Java side in parallel to catch possible difficulties earlier
  • putting the tasks in calendar (we may use e.g. a public Google calendar for that) so we can track the status

After implementation

TODO

Development

This is a notepad for development

Coding standards

Source Code Location

  • Early stage: 3rd-party repository, cloned Calligra repo
  • Later: KDE repo(s)
    • Feature branch: kexi-odb-mistry

Once the code is ready for review, it will be provided for review at http://git.reviewboard.kde.org. Then the code will find its way to the master branch of calligra.