GSoC 2012 Project Manager Front

This page contents ideas for implementation of Scribus Project Manager

The main functions to be implemented
The main functionality must include all functions, which is required for working with project and all included documents. At the first, it must be a convenient user interface, which will allow us to perform all operations with project, which we will implement. Therefore, we must determine in advance all the necessary features and functions that can be added in the future, so you did not need to make big changes in the UI later.

Also we must think about the way of handling project properties and changing them. The problem is that the user should be able to change styles for the whole document at once, and for its individual parts, respectively, we have to keep the styles for each part of the project. That's why we will use the masterDocument for saving global properties and styles, and slave documents for saving special styles. So, if we need to make changes to whole project, changes will be accepted to masterDocument, and then automatically accepted to all slave documents. And if we need to make changes only to one of the parts of the project, changes will be accepted only for such slave document.

The next feature which must be taken into account is that documents, which project includes must be editable without master document file. It will allow more than one person to work with project separately (for example, if it is necessary to create a book with some chapters, some persons can make each chapter separately, and then all chapters will be connected into one project.

Start functionality also must includes such functions, as pdf generation, printing documents from project, page numeration through all documents in project. This features requires to have functionality for working with all documents in projects like with one document, so such functionality also must be implemented.

Splitting project implementation into 2 subprojects
I think, it will be possible to split PM into 2 subprojects, which will helps to implement PM better, because both student will implement only their separate part of the tasks, and it allow to more precisely implement them.

Splitting project task for the PM project implementation require synchronizing work of students which will work on it, so students must often communicate which each other. The other problem is that to split tasks for project in such way, which enables students to work with even the anyone from them is not working. So, i think we must split into such parts:

Tasks for first student:
The first student will make user interface for Project Manager, and implementation of functions, which will be related to basic functions of Project Manager (such as creation new projects, adding and removing documents form project). Of course, making a GUI for any program requires having already implemented functionality. In our situation, the second student will do implementation of most functions, so there can be delays when the second student will not have time to realize his tasks. Therefore, to avoid delays the first student at first will create a basic design of GUI, and realize basic functionality, and then, when the second student realize some part of his tasks, the main functionality will be implemented in GUI.

Tasks for second student:
The second student will realize most functionality of Scribus Project Manager. His work will not require implementing tasks of the first student, so he can work separately. Functions, which second student must implements, are: functions, which allows to edit all parts of the project separately or all at once, as it was originally intended, based on the idea of the Scribus Manager. It will require to make changes to format of master document. Also second student will implement pdf file exporting (if will enable to export whole project into one pdf file), page numeration, printing whole project.

Tasks for both students:
Besides separate tasks for students, they also will have general duties. They both must reports of each tasks, and at the end of making PM, make documentation for each part.