All pastes #963891 Raw Edit

Unnamed

public text v1 · immutable
#963891 ·published 2008-03-30 21:50 UTC
rendered paste body
Google Summer of Code - Application

Data export / printing in Parley
Abstract:
Parley currently lacks printing / export support. This should be achieved using XSL transformations. Goal of the project is to add the infrastructure to simply use transformations from a  xsl file to translate current kvtml2 files to formats like XHTML and PDF. Having the infrastructure ready, the specific xsl files have to be written too.
The validation of the exported documents should make sure that this Project follows the existing standards for the output formats. This has to be part of overall testing and quality assurance.

Introduction:
Parley can be used to enter a lot of vocabulary data and use it for learning on the computer but we currently cannot print out our data or show it independent of Parley.
So we have to find a way to translate the current kvtml2 files to more readable formats like XHTML or PDF. To achieve this, we can use XSLT which can cope with tree structured languages and convert them into each other.

The development task is made up of  at least two parts:
The design and integration of the xslt interface: we should be able to process one or multiple kvtml2 files and output the generated files. Additionally we should be able to show the output in the appropriate document viewer (if it is installed) or print it on a printer. This part will be written in C++/Qt and will either go into the application itself or into libkeduvocdocument.
The work on the different xsl-files themselves: Currently XHTML with CSS and PDF are the preferred formats; after the summer maybe ODF can be done too.

Since there exist even more output formats, the second part will probably be easily extensible after the summer whereas the first part shouldn't be changed for a longer time.

Methodology:

Before starting to code, I will make a plan which will directly start the documentation.
This should take 25% to 50% of the time. After having a fixed plan this should be implemented in the next 25% to 50% of the time. At the end there should be some time for evaluation, testing and documentation. As this is more a general methodology it should be applied to each of the sub-projects that are needed.

Time plan:

I will work around 20 hours (~3 hours per day) only for this project but possibly help on the rest of the Parley code base too.

week
tasks
1
design the interface and define testing possibilities
2
implement basic classes
3
extend the implementation fully
4
test and fix bugs
5
define translation for kvtml2 format; collect ideas and think about needed layouts; define testing possibilities
6
implement XHTML + CSS format
7
improve, test and fix issues
8
think about layout for PDF, define testing possibilities
9
implement PDF
10
improve and fix issues
11
document everything, fix errors and finish it
12
presentation at aKademy

Special remarks:

Standards get more and more important in IT - this touches KDE as well.
My main goal for the Google Summer of Code is that valuable and reliable code should be produced which follows the available standards. This should be possible since both PDF and XHTML are well documented.
All KDE programs beside Parley that use the kvtml2 format (kanagram, khangman, kwordquiz) will benefit indirectly - Parley works as a kvtml2 editor for those applications.

Success criteria:

The main goal should be reached:  the classes for document export and printing should work and output into at least one format. The second format is needed too, but will not make the project unusable. Each output format should be valid by its standard, e.g. the XHTML output should produce always valid XHTML that will pass the w3c validator tests.

About Me:

I am 26 years old and studying physics at the University of Leipzig.
I will start my diploma thesis in autumn about theoretical physics using on Markov-Chain-Monte-Carlo simulations.
I started programming when I was 14 years old but kept it as a small personal hobby for a longer time. After having a look at multiple free software projects I joined KDE last summer working on the windows port of KDE. Within Google Summer of Code I want to enter development apart from bug-fixing and build-system work.

References:
http://edu.kde.org/parley/
http://en.wikipedia.org/wiki/XSL_Transformations
http://validator.w3.org/