Kexi/Junior Jobs/Add support for importing tables from LibreOffice Base
Appearance
< Kexi | Junior Jobs
Status: in progress, assigned to Harshita Mistry ([email protected]). Student's time zone: (GMT-05:00) Eastern Time - Toronto. Mentor's time zone (GMT+1) Poland - Warsaw.
Public Calendar with tasks and availability: [1].
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
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 (HyperSQL aka HSQLDB) and probably connected via JNI. This could be introduction to later development of complete database import from ODB to a Kexi database.
- See [3] for a start.
- Then see the HSQL Guide
- In particular look what are the elements (files) of typical HyperSQL Database.
- Sample .odb databases are available for this tutorial.
- Studying kexi/migration/importtablewizard.cpp which is a GUI, in m_migrateDriver attribute taking an instance of implementation of a migrate driver derived from KexiMigrate class (in your case - the ODBMigrate driver).
- 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
Schedule
TODO: Put a link to a Google calendar here. https://www.google.com/calendar/embed?src=harshimistry%40gmail.com
Coding standards
Source Code Location
- Early stage: 3rd-party repository, cloned Calligra repo
- Later: KDE repo(s)
- Feature branch: kexi-odb-mistry
- Accepted and reviewed code finds its way to the master branch of calligra.
Code Review
- Once the code is ready for review, it should be put for review at http://git.reviewboard.kde.org.