GSoC 2012 Project Manager inversity

Project title:
User Interface for the Scribus Project Manager

Name of proposer and e-mail:
Andrey Ermolenko, invercity1991@gmail.com

Synopsis:
My project will bring to Scribus a UI for the Project Manager, which will enable users of Scribus to manage multiple resources that constitute a single large book or a set of documents sharing common attributes such as master pages, styles, images and so on. Nowadays, Scribus does not provide easy and convenient handling of large documents. Creating documents with 100 pages or more causes significant delays when working with the program, rapidly depletes the system memory, and generally reduces user productivity. The Scribus Team has received many reports and complaints about the difficulties encountered by the authors of large documents. However, the success story pages show that most Scribus users need to edit just such large books, magazines, newspapers, and other documents of high complexity and size. At the moment, to be able to edit large documents users have to make significant compromises and increase the complexity of their workflow by splitting their documents into smaller sub-documents of 20 or 40 pages, which they later have to export to PDF or print separately and then rely on third party PDF handling tools to re-combine them. One way of resolving this problem is to add Project Manager (PM) functionality to Scribus that will allow users to work with large documents with ease and convenience without the need to break them into smaller documents. PM can also enable much improved collaborative workflows by providing intelligent handling, merging, and updating of document parts and resources among collaborators.

Project details:
My main focus will be on creating a user interface (UI) for the Scribus Project Manager (PM), and providing additional specific functionality related to the UI. This project is orthogonal to another Scribus Team's GSOC project that focuses on the back-end functionality of handling resource and document parts for the PM.

A GUI that provides a high level user experience is a very important part of the PM implementation. UI must be clean, convenient, and well-designed functionally. It must provide a well-designed programming interfaces for the interaction with the currently proposed back-end and potential future modules for collaborative work.

Since the process of editing a project will not differs from the process of editing a document too much on the surface, the PM UI needs to resemble the main Scribus UI. A user who creates a new project must be able to add a large number of pages to it transparently. Inside the PM all added pages will be divided into sub-documents of a size that can be handled by the current average user hardware. To the user the process will not be different from editing a single large document.

The PMUI design must be sufficiently modular and open to allow adding new functionality to the PM in the future without requiring a re-design of the UI.

A part of the design process will be to solicit input from the Scribus Community to make sure that both casual and professional users' needs are accommodated.

The next part of the project will focus on the implementation of specific PM functions such as creation of new projects, adding and removing documents and other resources to and from project. All functionality will be anchored to the use of a master document.

The final part of my project will be focused on the implementation of the UI that is capable of handling all functionality provided by the back-end resulting from another GSoC project.

A more detailed technical plan of the project is being discussed with the Scribus Team.

Project schedule:
My GSoC project wil be divided into three periods.

During the first period (before May, 21) i will learn more about the Scribus project and the Scribus codebase. I will also solicit the Community input and work on the design of the PM UI.

During the second period (May - August) I will focus on the UI implementation. More specifically,

May 21 - June 3

Implementation of the master document, which serves as a container for all other documents in a project.

June 4 - June 17

Implementation of the functionality for working with projects - creating new projects, adding and removing documents from a project.

June 18 - July 3

Making a base UI.

July 3 - July 8

Incorporating the functionality for working with a project into the base UI.

July 9

Mid Term Evaluation.

July 10 - July 22

Implementation of the handling of additional functionality from the other GSoC PM project.

July 23 - July 29

Finishing the UI to completeness, testing and debugging the entire project.

August 6 - August 12

Additional time to cover any contingencies.

August 13

Suggested pencil down date.

In addition, I will report the results of my work to my mentor weekly as well as commit all code to a repository. After finishing the GSoC project I hope to be able to continue my work with the Scribus Project to enhance PM and work on new improvements as well as help with fixing problems.

Biography:
I'm a student of the Chernihiv State Technological University (Chernihiv, Ukraine). I'm studying at the Department of Electronic and Information Technologies in the College of Informational Computer Systems (cs.stu.cn.ua) majoring in System Programming. I have two years of C/C++ coding experience in different areas mostly projects related to Qt and OpenGL.

I have experience in team development (kurs.stu.cn.ua) as a team leader and working with the Subversion revision control system. My current school projects include application development for improving university infrastructure. In addition, I have been working on my own small projects, for example, creation of a Qt-based cross-platform file manager with many exciting features.

To show my ability to handle Scribus codebase I fixed a bug #10487

I believe I am a good candidate for this project because I have sufficient knowledge to implement it and am focused on a single organization, so I am able to learn as much about the Scribus project as possible.

Contacts:
Email: invercity1991@gmail.com IRC nickname: Invercity