Kexi/Junior Jobs/Add support for importing tables from LibreOffice Base
< 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 (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.
- 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
Schedule
TODO: Put a link to a Google calendar here.
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.