GSoC 2009 Enhancement of Text Filter by jainbasil

Aim Of This Project
This project aims at the enhancement of the Text Filter in Scribus so that it can import/export InDesign Exchange Files, InDesign Snippets, XTags, plain XML etc., to create a new dialog widget that can handle the global preferences for import/export of these XML based file formats. It will also implement a new UI for the Text Filter to make it more flexible and consistent with other Scribus dialogs.

Objectives
Xtags is a text based format, which is used for import/export of text files in QuarkXPress. Xtags converts these text files into fully formatted layouts based on the special formatting codes embedded in the text file. IDML (InDesign Markup Language) and INX are XML representations of an Adobe InDesign document or components. These documents are capable of fully describing Adobe InDesign documents. All these are established or emerging formats in the world of Desktop Publishing, and thus arises the necessity of implementing import/export of these formats in Scribus. This project aims at achieving the following :


 * 1. Implement an efficient algorithm for import/export of Xtags, IDML/INX, plain XML.
 * 2. Implement a Qt UI dialog to represent the global preferences for importing and exporting these document formats. This UI may be implemented as a child of Document Properties accessible from File Menu.
 * 3. Implement a UI for import/export of Xtags and IDML/INX. This will be accessible via the menu item GetText in Scribus.
 * 4. Redesign the a new UI for the Text Filter to make it more flexible and consistent with other Scribus dialogs.

Challenges
The major challenges that will be faced during the implementation of this project are:


 * Implementing an efficient algorithm for parsing the formats will be a challenging work, since INX is less documented and there are no other ready made efficient algorithms available in FLOSS for handling these files.


 * Parsing tags with multiple parameters will be another challenging work ( Xtags have a heavy implementation of Tags with multiple parameters; for eg. The rule above tag : <*ra(thickness, style,color,shade, from left, from right, offset) > )

More discussion with the community is needed to decide upon the abovementioned challenges.

Road Map
Following is the detailed road map of implementing the project. Estimated time requirement is shown for each step.


 * Up to May 23, 2009: Proper analysis of Scribus class hierarchy and functions, understand the import and export formats, understand XML File Handling in Qt (using QtXML classes), discussions with the community regarding said challenges and to find proper solutions.
 * Task 1 (Time required: 3 weeks): Implementation of the parsing algorithm for Import/Export.
 * Task 2,3 (Time required: 2 weeks): Implementation of UI for setting Global Preferences of import/export and implementation of UI for import/ export of Xtags, IDML/IDX and XML. New design for UI will be implemented after submissions of proposed UI to the community and making necessary changes to it, considering the community review. The time limit includes all these processes (submissions and reviews).
 * Task 4 (Time required : 2 weeks): Redesign of UI for Text Filter in Scribus to make it more consistent and more flexible. Design of the new UI for Text Filter will also be submitted to the community for review and suggestions.
 * Clean Up week: Clean up the code, review comments, fix bugs and write documentation.

Project Outcomes
The expected outcomes of this project are as follows


 * Ability to import/export Xtags, IDML, InDesign Snippets/INX in Scribus.
 * Improved UI for Text Filter which is more consistent and flexible with other scribus dialogs.

About Me

 * Name    : Jain Basil Aliyas
 * IRC Nick : jainbasil
 * Email ID : jainbasil@gmail.com
 * Location : Kerala, India
 * Timezone : GMT + 5:30
 * Blog    : jainbasil.wordpress.com

I am Jain Basil Aliyas, and am currently studying for B. Tech degree in Computer Science and Engineering, at Govt. Engineering College, Trichur, Kerala, India.

I have been using GNU/Linux for the past 5 years, starting off with Red Hat Linux 7.2. My interest in contributing to the community was sparked by the release of KDE 4 which changed the world of Desktop Environments. I am a member of the Scribus-developers' mailing list and keep track of discussions on the same. I am an active contributor to the KDE Project, specifically Kstars. I am quite familiar with the classes and their hierarchy in Scribus. However, there is still more for me to explore in the Scribus source code and I hope to do this soon.

I have good knowledge in C, C++, Qt and Python, and I've been into coding for past 4 years. I've done library management systems for educational purposes in my locality in which the Microsoft Windows platform was used. I've performed well in a competition conducted by Space-Kerala in designing a bash-like shell called maSH for GNU/Linux.

Currently I only use FOSS and hold talks about the promotion of FOSS. I am one of the Ambassadors of the Fedora Project from India and an active member of the Free Software Users' Group, Thrissur. I am the designer of their website (http://fsugtsr.org using Drupal) and maintain the same.

Contributions

The following are the examples for my experience in coding for Open Source Community.


 * KDE Educational (kde-edu) Project Contributions : http://edu.kde.org/kstars/contributors.php
 * Patch fixing the Bug “ Comet Names range display setting doesnot work “ ; Bug No. 181602, listed in http://bugs.kde.org/show_bug.cgi?id=181602