# &app; User Guide V&manrevision;

2002
2003
2004
2005
2006
Kurt Maute, PMP
2000
2001
Alvaro Del Castillo
2000
2001
Pedro Soria-Rodriguez
GNOME Documentation Project

&legal;

Kurt
Maute, PMP
GNOME Documentation Project

     Kurt@Maute.us

Alvaro
Del Castillo
GNOME Documentation Project

     acs@barrapunto.com

Pedro
Soria-Rodriguez
GNOME Documentation Project

     sorrodp@alum.wpi.edu

&app; User Guide V0.14
17 May 2006
kmm

Reorganized task usage section, breaking out 'Useing Gantt View' section

Additions for new features:

- Nonstandard days visualization

- Simple priority scheduling

- Columns Editor

- Show guide lines in gantt view

&app; User Guide V0.13
17 Nov 2004
kmm

Changed revision to match Planner revision

Misc menu and navigation changes

Additions for new features:

- Better database support including db creation

- EDS plugin (way cool)

&app; User Guide V1.6 for &app; V0.12
24 Apr 2004
kmm

Additions for new features:

- Undo/Redo

Added configuring PostgreSQL for remote connection

&app; User Guide V1.5.3; for &app; V0.12 development
29 Mar 2004
kmm

Additions for new features:

- Resource Usage View

- Resource Short Name

Completed name changes from MrProject to Planner

Changed guimenuitem choices to reflect new Actions menu

Retook all screen shots and reduced size to 60% of original

Decreased number of screen shots. Need to manage the number of screen shots and evaluate their value added as Planner grows. the following were removed:

- group1-subtasks.png - was replaced by task-view.png since that now shows a hierarchy of summary and subtasks.

- group1-task-linked.png

- task-up.png

- project-zoom-up.png

- project-zoom-fit.png

- task-custom-properties-add.png

&app; User Guide V1.5.2; for MrProject; V0.10;
13 Nov 2003
kmm

Additions for new features:

- Open From/Save to Database

- Appendix on how to configure the database

- Save to HTML

&app; User Guide V1.4 for MrProject V0.9
23 Feb 2003
kmm

Additions for new features:

- Custom Properties for Projects, Tasks, & Resources

- Fixed Duration mode for Tasks

- Milestones

- Resource allocations by units

- PRINTING!

Usage of the 'Quick Add' Dialogs for Tasks & Resources
&app; User Guide V1.3 for MrProject V0.8
29 Dec 2002
kmm

Additions for new features:

- Calendars

- Cost column in Resource view

Some new screenshots
This manual describes version &appversion; of &app;

## Feedback

To report a bug or make a suggestion regarding the &app; or this manual can be submitted to the GNOME Bugzilla , under the &app; product. Please search bugzilla before submitting your bug to ensure that yours hasn't already been reported.

## Introduction

&app; is a general purpose project management tool that provides a variety of features, which are available via 4 separate screen layouts called views. As you will see, the views are accessed by clicking the icons in the left hand toolbar in the &app; window.

### Task View

Tasks are also shown on the Gantt view, but the Task view shows more detail for each task.

#### &app; Task View

Task View is used for the following:

- Task Definition - break down project deliverables into smaller, more manageable tasks

- Task Sequencing - identify dependencies between tasks and other constraints via the task properites dialog, predecessors tab. Details in .

- Task Duration Estimating - estimate the time it will take to complete the tasks

- Task Cost Calculation - estimate what it will cost to complete the tasks

### Gantt View

The Gantt View combines the Gantt chart with a shortened version of the task view.

A Gantt chart is a graphical display of all the tasks that a project is composed of. Each bar on the chart is a graphical representation of the length of time the task is planned to take. The Gantt Chart doesn't offer any features that are not available in the other views, but it is a valuable Project Management tool for the way it allows the user to see the project data.

#### &app; Gantt View

The Gantt View allows you to:

- View a graphical representation of the project schedule

- Manage task relationships using drag and drop

- Use Zoom in and Zoom out features to view different levels of detail

- View resources assigned to each task

You can change what columns are visible by choosing View Edit Visible Columns . This dialog will allow you to add, remove, and reorder the columns in the Gantt view. The same feature is available in the other views as well.

### Resource View

#### &app; Resource View

The Resource View gives you access to the following features:

- Resource list management, including both human resources and materials

- Resource group management

- Resource cost management

### Resource Usage View

#### &app; Resource Usage View

The Resource Usage View shows the availability of resources based upon the tasks they've been assigned to. They layout is similar to the Gantt chart, but this one is organized by resource.

The summary line shows the availability of the resource. The availability for each resource can be rolled up so that only the summary line is displayed by clicking on the triangle next to the resource name.

The detail shows each task that the resource is assigned to and the time that the task is scheduled for is represented by a bar in the chart. Overallocations are shown up as red in the summary bar, and its easy to see where the task allocations line up to create the overallocation.

Color coding is as follows:

- Green shows that the resource is not allocated to any task at that time

- Blue has a slightly different meaning depending on its context. On the task line, it shows that the resource is either partially or fully allocated to the task (with the allocation percentage displayed next to it), but on the resource summary line, it shows that the resource is fully allocated at that time.

- Grey shows that the resource is partially allocated at that time

- Red shows that the resource is overallocated

## Getting Started

### Starting &app;

You can start &app; in the following ways:

Applications menu

  Choose Office Project Management .

Command line

  To start &app; from a command line, type the following command, then press Return:

  `&cmd;`

  there are no command line parameters at this time.

### When You Start &app;

When you start &app;, the following window is displayed. As you can see, the Gantt Chart view is the default.

#### &app; Start Up Window

Shows &app; main window. Contains titlebar, menubar, toolbar, display area, and scrollbars. Menubar contains File, Edit, View, and Help menus.

The &app; window contains the following elements:

Menubar.

  The menus on the menubar contain all of the commands you need to work with files in &app;.

Toolbar.

  The toolbar contains a subset of the commands that you can access from the menubar.

Statusbar.

  The statusbar displays information about current &app; activity and contextual information about the menu items.

### Editing Multiple Projects

More than one project may be open at the same time. Each project will have its own &app; window. Try it by pressing "CTRL-N" several times. You should get something similar to .

#### Several projects at the same time

Shows Gnome 2 Desktop, with three &app; windows open.

## Usage

### Open and Save Projects

To open an project, choose File Open , or the Open button on the toolbar. The Open File dialog is displayed. Select the &app; file that you want to open, then click OK. &app; files are stored with the extension `.&cmd;`.

You can also open a file by selecting it from your file browser or desktop and dragging it into an open &app; window.

To save a project, choose File Save As to save a new project, or an existing project under a new file name. Choose File Save to save an existing project, keeping the same file name.

If you try to open a project file in a format that &app; does not recognize, the application displays an error message.

It is prudent to save your work periodically. &app; does not currently have a recovery feature, so if your editing session is interrupted by a power outage or other reason, you would lose any work done since your last save.

### Open Project From and Save To Database

To open an project from a database, choose File Import Open From Database... . The Open from Database dialog is displayed. Enter the server, database name, user, and password, and then click OK. If the database is on the same machine you're running &app; on, then you can leave that blank. You can also leave the password field blank if no password is required for the database user.

After &app; connects to the database, it will open the Select a Project dialog, which displays a list of projects that are stored in that database. Select the project plan you want to open, then click OK.

To save a project to a database, choose File Export Save to Database... . The Save to Database dialog is displayed. Enter the server, database name, user, and password, and then click OK. If the database is on the same machine you're running &app; on, then you can leave that blank. You can also leave the password field blank if no password is required for the database user.

If the database you're saving your file to doesn't exist, &app; will offer you the option to automatically create it.

### Import and Export

Planner supports importing and exporting files in various formats.

#### Import Microsoft Project XML

The MS Project XML import is new and considered experimental at this time. Microsoft Project version 2002 and above supports saving project files in XML format. Look for it in the MS Project Save As dialog. To use this import feature you must first save your MS Project file in xml format as it will not work with the native .mpp files.

To import the file, choose File Import MS Project XML . Simply choose the file you'd like to import in the Import a File dialog.

Please be aware of the following limitations of the import:

- Properties - MS Project does not save this into to the xml file

- Calendars - not imported due to differences in the way the two tools store the data

- Resource Groups - not imported due to differences in the way the two tools store the data

#### Export to HTML

The Export to HTML function creates a view of your project in HTML format that you can publish on a web site, or email to stakeholders who don't have access to &app;. Included in the HTML document, is a simplified Gantt chart, task list (with %complete, start, end, work, and resource columns), and a resource allocation table. Its an excellent way to give people easy access to project status information.

You can create the HTML page by choosing File Export HTML .

#### Export to Previous &app; Format

For backward compatibility, &app; supports export to formats from previous versions. To use this feature, choose File Export &app; 0.11 format .

### Undo/Redo

To undo a mistake, you can either click the Undo button on the toolbar, or choose Edit Undo .

To redo an action, you can either click the Redo button on the toolbar, or choose Edit Undo . Redo puts back the change that you reversed by using the Undo option.

#### Caution:

Undo and Redo are relatively new features, and while the implementation is quite good, there are still some actions that cannot be undone. Its always a good idea to save your work before making any modifications that you're not sure you'll want to keep.

### Edit Project Properties

To edit the project properties, choose Project Edit Project Properties . In this dialog box you can edit the name of the project, its start date, the name of the project manager, the organization the project belongs to, the project phase, and the default calendar.

- The General Tab

  Its important to note that the default start date for all tasks is the project start date. Therefore, you should set the project start date before entering many tasks. In the event that you do change the project start date after tasks have been entered, they will default to the new start date, unless they're associated with a constraint, such as a predecessor task or "start no earlier than" constraint.

  This dialog also allows the user to assign a phase to the project. Phases can be added by choosing Project Edit Project Phases , which provides a dialog with a simple list of project phases and buttons to Add and Remove them. Assigning a phase to the project is for information purposes only. It has no other function at this time.

  Each project has a default calendar. The default calendar applies to every resource on the project unless otherwise specified in the resource editor. Use the select button on this dialog to change the project default calendar. See the section for more information on calendars.

  #### Project Properties

- The Custom properties Tab

  You can add custom properties to the project by clicking the add button.

  #### Custom Project Properties

  In the Custom properties add dialog, you can give your new property a label, a name, description, and set the property type to either text, integer number, or floating point number. Once you have added your new property, you can set its value by clicking in the value field of the Custom project properties dialog.

  #### Custom Project Properties Add Dialog

### Edit Project Calendars

To edit the project calendars, choose Project Manage Calendars . Project Calendars assist us in scheduling by defining when resources can be used in terms of working and nonworking days, and the hours they are available on working days. On the left is the name of the calendar being displayed, in the center is the calendar, and on the right hand side are the ranges of working hours for the selected day. The default calendar shown below depicts a typical working month, with weekends grayed out, signifying that they are nonworking days.

#### Note

In the Gantt chart, nonworking days are also grayed out. Any changes made to the project default calendar will be reflected in the Gantt Chart.

To make changes to a calendar, select the day to be changed, and then one of the 3 available radio buttons:

- Use working time from derived calendar - uses the parent calendar to determine the working time for that day. See for more information.

- Set day type to: - uses the selected day type to determine the working hours for that day. See the section on for more information.

- Custom working time - defines a unique set of working hours for a specific day.

#### Project Calendar Editor

#### Creating a New Calendar

New Calendars can be added by clicking the New button, which will launch the New Calendar dialog. The New Calendar Dialog contains a list of current calendars on the left, and on the right is a text box that allows you to name the new calendar. Below the text box are three options for creating the calendar:

- Derive from a calendar - creates a child calendar. The new calendar will inherit the settings from the parent calendar selected on the left. Any changes made to the parent calendar will be reflected in the child calendar. In the example below, "Americas" and "USA" are examples of child calendars.

- Copy an existing calendar - creates a copy of the calendar selected on the left. After the copy is made, changes made to the original calendar or its parents are not reflected in the copy. In the example below, "USA - Copy" is an example of a calendar created using this option.

- Create an empty calendar - creates a new calendar. No settings are inherited or copied. In the example below, "Empty" is a calendar that was created using this option.

##### New Calendar Dialog

#### Changing the Default Week

The default week can be changed by clicking the Default Week button, which will launch the week editor dialog. The week editor dialog contains a drop down list box that allows you to select the day of the week, and another to select the day type. This dialog also displays the working time scheduled for the selected day type. Be sure to click Apply before Close to save your changes.

##### Default Week Dialog

#### Working Time and Day Types

The working times for each day type can be changed by clicking the Working Time button, which will launch the working time dialog. The working time dialog shows a list of the available day types on the left, and the working hours for the currently selected type on the right. Time is entered in 24 hour format as am/pm indicators are not supported (i.e. 5:00 PM would be entered as 17:00).

##### Working Time Dialog

Day types can be added by choosing Project Edit Day Types This dialog displays a simple list of day types. Use the Add and Remove buttons to manage the list. Note that you cannot remove the default day types "Working" and "Nonworking".

##### Day Types Dialog

### Working with Tasks

#### Adding Tasks

To add a task, you can either click on the Insert button on the toolbar, or you can right click in the task area and choose Insert Task from the pop-up option box. These options work the same in either the Gantt View or the Task View.

To add several tasks quickly, choose Actions Insert Tasks , which will open the insert task dialog. This dialog allows quick entry of multiple tasks. Simply enter the name of the task and amount of work effort and press Enter . The new task will be added, and the dialog will remain open and ready for your next task entry. Details can be added later.

##### Insert Task

##### Note

The Actions menu is sensitive to the view you're currently displaying, so if you want to use the insert task dialog, you need to be in either the task or Gantt view. It's not available from the other views.

#### Task properties

Some task properties can be edited directly from the Gantt tasks view: the name of the task and the work effort. You can also launch the task properties dialog from here by right clicking on a task and choosing Edit task.

In the Task View you can edit more fields for a task than in the Gantt View, and is the preferred view when you start to add tasks to a project.

##### Task View

To edit all the task properties, right click on a task and select Edit Task from the dialog that appears. Alternatively, you can select the task and use the main menu: Actions Edit Task . There are several tabs to modify the properties.

- The General tab contains the following fields:

  - Name - the name of the task

  - Milestone - the milestone check box flags the task as a milestone, which disables the ability to modify the Work, Duration, Complete, and Priority fields, since a milestone signifies a significant event in the timeline of a project that has no duration or work activity of its own.

  - Fixed duration - the fixed duration option is used when the duration of a task will take a fixed amount of time regardless of the resources devoted to achieving it. For instance, the gestation period for a human baby is nine months. It cannot be sped up by adding more resources.

    Choosing Fixed duration for a task will unlock the Duration field and allow you to enter a value for the fixed duration.

  - Work - this is the amount of effort required to complete the task

  - Duration - the amount of calendar time required to complete the task. Duration is normally calculated based on the amount of work and the resources assigned to the task. The calculation also takes calendars into account. See the section for more information.

  - Schedule - sets a constraint on the task start date, which can either be As soon as possible , No earlier than, or On a fixed date

  - Complete - allows tracking of the amount of work done for the task, entered as a percent of total work

  - Priority - sets a priority for the task. There is no specific functionality tied to this field at the moment. It is informational only

  ##### Task properties dialog

- The Resources tab allows you to assign resources to a task. Remember that resources can include materials as well as people. Click the check box in the Assigned column to allocate the resource to the current task. Use the Units field to enter the percent of the resource that is allocated to the task.

  ##### Task resources dialog

  The Gantt view will list the resources assigned to a task to the right of the bar. If a short name was entered in the resource view, then the short name will display in the Gantt, otherwise, the full name will be displayed.

  ##### A resource has been assigned to a task

- You can see in the Predecessors tab the tasks that need to be finished before the task being edited can start. In this example, we have three tasks. In , the third task, t3, requires that t2 be complete before it can start.

  ##### Task predecessors dialog

  From this dialog, you can change the task predecessor, the predecessor type, and edit the lag between the task and the predecessor. To add or remove predecessors from this dialog by clicking the Add or Remove button.

  When you add a new predecessor you need to choose the task predecessor, which you can select from the drop down list box. The next field is the Relationship type. You can choose Finish to Start (FS), Finish to Finish (FF), Start to Start (SS), or Start to Finish (SF). Finally, you can enter a lag time for the relationship, which represents the number of days after the relationship has been satisfied. For example, if you enter a lag time of 1 in a Finish to Start relationship, it means that the current task may begin 1 day after the predecessor task has completed.

  ##### Add predecessors dialog

  Lag time can be entered in terms of hours, days, or weeks by appending an h, d, or w to the unit value you enter. For example:

  - 3h = 3 hours

  - 2d = 2 days

  - 4w = 4 weeks

  Time entered as weeks will be converted to days.

- You can add notes to the task using the editor in the Notes tab. You can also insert the current time to the note using the button that appears in the dialog.

  ##### Task notes dialog

#### Creating subtasks

Complex tasks can be broken down into subtasks to make them easier to Manage. A task that is divided in subtasks is called a summary task. The summary task's start date and the duration can't be edited because it is calculated from the subtasks.

##### A Task with subtasks

#### Task constraints

All tasks begin on the project start date by default One exception is the case where a dependency is set up. There are times, however, when a dependency doesn't exist, but the task must start on, or no earlier than a specific date. You can specify these constraints in the start date dialog.

##### Task constraints

You can delete the constraint for the current task using Actions Reset constraint , or for all the tasks by choosing Actions Reset all constraints .

#### Custom Task Properties

Custom properties can be added in the task view by choosing Actions Edit Custom Properties . Clicking the Add button will open the New Property dialog.

##### Task constraints

In the New Property dialog, you can give your new property a label, a name, description, and set the property type to either text, integer number, or floating point number. Once you have added your new property, it will show as a new column in the Task view.

### Working with Resources

#### Resource Properties

The Resource View in &app; shows the following properties:

- Name: the resource name

- Short Name: short name or initials to be displayed in Gantt chart

- Type: Available types are Work and Material. Work is for human resources working in the project, and Material is for non-human resources required to complete the project.

- Group: The group that the resource is assigned. This column offers a dropdown list of defined groups. You must use the Group Editor to define groups before assigning them in the Resource View.

- Email: The electronic mail to contact the resource.

- Cost: the cost per hour to use this resource. The cost is not currency specific, so in multinational projects, it is important to decide on a single currency to be used for tracking cost.

##### Resource View

#### Adding Resources

Resources can be added by choosing the Insert button, or by choosing Actions Insert Resource . To add multiple resources quickly, choose Actions Insert Resources , which will open the Insert Resource dialog. In a fashion similar to , you can quickly enter multiple resources and add detail at a later time.

##### Insert Resource

If Planner's EDS (Evolution Data Server) interface is enabled, you can also import resources from your Evolution contacts or an LDAP server. The EDS interface is an experimental feature and requires Evolution version 2.0 or higher.

To import contacts using the EDS interface, choose File Import EDS . You will be presented with the following dialog:

##### EDS Import

From the Select group dropdown, select On This Computer to choose from resources in your Evolution contacts list, or On LDAP Servers to choose from resources on an LDAP server. If the resulting list is long, then you can use the search function to find the ones you want, and then select them by checking the appropriate boxes in the import column. You can also use Select All or Unselect All to get everyone or start fresh with no one selected.

When finished, click OK, and your selections will be imported into your project resource list.

#### Resource Properties Dialog

To edit resource properties that are not displayed in the resource view, right click on the resource and choose Edit resource. The General tab shows the same items that are in the resource view.

##### Resource Properties Dialog - General Tab

The Calendar tab allows us to assign a calendar to a specific resource if the project default calendar is not appropriate. See for more information on setting the project default calendar. To change the calendar assigned to a resource, simply select it from the list. If you would like to create a new calendar for this resource, you can do so from this dialog by clicking the Edit calendars button. See the section for more information.

Any tasks assigned to a resource with a specific calendar will use the calendar assigned to the resource to schedule the work to be done. Therefore, if a task appears to be scheduled for a longer than expected time period, it is likely that the resource is using a calendar that is different from the project default.

##### Resource Properties Dialog - Calendar Tab

#### Resource Custom Properties

Custom Properties are available in the Resource View just as they are in the task view, and the functionality is identical. To add custom properties to the resources, choose Actions Edit Custom Properties . See the section for more information.

#### Group editor

With the group editor you can define groups to be used to classify your resources. A group has a name, a manager, telephone, email, and an option to specify the default group. If you specify a default group, every new resource that you add will placed in this group. Of course, you can still change the group to another as needed.

##### Group editor

### Scheduling

&app; now includes an experimental simple priority based scheduling feature. To use it, &app; must be built with the feature enabled. This feature will divert resources from one or more tasks to a high priority task, and reschedule the tasks accordingly.

Assuming you have an existing project plan with resourced tasks, you can divert the resources to the higher proirity task by doing the following to the higher priority task:

- Set the task priority to 9999

- Set the task to Start on a Fixed Date

- Assign a resource to the task

### Using the Gantt View

The Gantt View has a number of features that are worth exploring in more detail.

#### Gantt View

#### Creating Dependencies with the Gantt Chart

Using the Gantt view to create dependencies between tasks

To start a task, you often have to finish other tasks first. Dependencies can either be set up by using the Predecessors tab in the task edit dialog as shown above, or it can be done graphically in the Gantt chart. If you click on the bar that represents the predecessor (and hold down the mouse button), an arrow appears. Dragging that arrow onto the bar that represents the dependent task will create the dependency. The Gantt chart will immediately reflect the new relationship by shifting the dependent task to start when the predecessor is scheduled to complete. By creating a dependent relationship this way, &app; always assumes a Finish Start relationship with zero lag time. You can modify this relationship by opening the task edit dialog of the dependent task, and selecting the Predecessors tab.

##### Creating a task dependency

If you want to remove the dependency, you can select either of the two tasks and delete the link by clicking the Unlink icon on the toolbar, or by right clicking either task and selecting Unlink from the pop up.

#### Highlighting the Critical Path

To show the tasks along the critical path of the project, choose View Highlight Critical Tasks . The names of the tasks along the critical path will be shown in red, and in the Gantt view, the task bar will also be red.

#### Showing Guide Lines

The Show Guide Lines option displays horizontal guide lines in the Gantt chart to help the user visually line up the chart bars with the task list on the left hand side of the window. To enable the guide lines, choose View Show Guide Lines .

#### Displaying Nonstandard Days

In the section, we showed how to define valid working times for the resources of our project. In the Gantt view, there's an easy way to show where a resource has a working or nonworking time that differs from the default calendar. You can enable the diplay of nonstandard working days by choosing: View Nonstandard Days .

The visualization of nonstandard working/nonworking time is as follows:

- Nonworking time for some resource(s) on the task during a default working time is displayed as a grey bar below the gantt bar

- Working time for some resource(s) on the task during a default nonworking time is displayed as a white bar below the gantt bar

- Nonworking time for all resources on the task during a default working time is displayed as grey bars above and below the gantt bar

- Working time for all resources on the task during a default nonworking time is displayed as white bars above and below the gantt bar

#### Moving tasks

If you need to rearrange the order that tasks are displayed in the task view, you can do so by selecting the task you want to move, and utilizing the Move Up and Move Down icons on the toolbar.

#### Zooming in the Gantt View

The tasks in a project can have very different durations and sometimes you need to have a close view of the time line to see the details of some task dependencies, but other times you need a higher level view of the whole project. To support both needs, &app; has a powerful zoom system that lets you zoom to fit the complete project, zoom in the view or zoom out incrementally to whatever size you like (hours being the lower limit, and years is the upper limit).

Zoom to fit shows the entire project duration in the Gantt view.

You can use the Zoom in and Zoom out icons to select the length of time line in which you want to work. When the view is zoomed to a detailed level, nonworking hours are shown for each day in addition to weekends.

### Printing

You can print your project information by choosing File Print , or clicking the Print button on the task bar.

#### Note

The Print Preview button is available in the Print dialog regardless of what tab is currently visible.

- The Print Project dialog allows you to choose between printing on available printers, or to a PDF file. If you choose to print to a PDF file, your location options will change so that you can specify the path and filename of the output file.

  #### Printer Tab

- In the Select Views tab, you can choose to print the Gantt, Task, or Resource views, or all of them. The default is all.

  #### Select Views Tab

- The Paper tab allows you to specify the size, orientation, and layout of your paper prior to printing.

  #### Paper Tab

## About &app;

&app; is maintained by Imendio and GNOME community volunteers. To find more information about &app;, please visit the &app; Web site, where you can find information about subscribing to the mailing list, searching the list archive, status of current development efforts, and additional documentation.

To report a bug or make a suggestion regarding this application or this manual, you can submit them using bugzilla.

This program is distributed under the terms of the GNU General Public license as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. A copy of this license can be found here, or in the file named COPYING included with the source code of this program.

## Configuring a &app; database

### Configuring a Postgresql database for use with &app;

The database support is still considered a technology preview, and requires knowledge in Postgresql and database setup. You also need the sources to Planner to access the database scheme file.

&app; can store projects in a PostgreSQL database. In order to do this, PostgreSQL must be installed and configured to accept the project data. These instructions are intended to outline the steps you should take to accomplish that. For more information about PostgreSQL administration and use, please consult the PostgreSQL documentation available at The PostgreSQL Web Site. The PostgreSQL Documentation includes instructions on installing from source tarballs. RPMs are also available from this site if you prefer that method.

Start by logging in as root, and copying the database.sql file to the /tmp directory. You'll use this file in the last step of the process, but its better to copy it first rather than go hunting for it later. Assuming the &app; folder is in the root directory, you would do the following:

    	root# cp &cmd;/docs/sql/database-0.13.sql /tmp

If you're running Red Hat and you chose to install the PostgreSQL packages along with the rest of your system, then you already have a database cluster and default user set up. The database cluster will be /var/lib/pgsql/data, and the default user will be postgres.

If there is no default user set up, then create the user postgres with the home directory /var/lib/pgsql.

Create a database cluster by logging into the postgres account and executing the initdb command:

    	root# su - postgres
    	bash$ initdb -D data

Then start the database server:

    	bash$ pg_ctl -D data -l logfile start

Create a non-default user by logging into the postgres account and executing the createuser command (use your own user name here - kurt is mine):

    	root# su - postgres
    	bash$ createuser
    	Enter name of user to add: kurt
    	Shall the new user be allowed to create databases? (y/n) y
    	Shall the new user be allowed to create more new users? (y/n) y
    	CREATE USER

This will allow you to execute commands from your own account rather than use the default account.

#### Note

As of v0.13, &app; can now create the database for you when you save your project, so you no longer need to perform the remaining steps in this section manually.

You can now create the database and group from your own account:

    	kurt# createdb -U kurt plannerdb
    	CREATE DATABASE
    	kurt# echo 'create group &cmd; with user kurt;' | psql -e -U kurt -d plannerdb
    	create group &cmd; with user kurt;
    	CREATE GROUP

This final command will build the tables required to store the project information in the plannerdb database. The file `database.sql` can be found in the &app; distribution subfolder `docs/sql`.

    	kurt# cat /tmp/database.sql | psql -e -U kurt -d plannerdb

This line generates a lot of output. When it's complete, you should go back and review the output, checking for any error messages (look for lines that start with the word ERROR). If you don't find any, then all the tables were created successfully.

That's it. You should now be able to save and open projects using the PostgreSQL database.

If you have a problem or encounter an error, you can try again removing the group and database and recreating them:

    	kurt# dropdb plannerdb
    	kurt# echo 'DROP GROUP &cmd;;' | psql -e -U kurt -d plannerdb

### Configuring a Postgresql database for remote connection

Now that you've set up your postgresql database, you'll probably want to make it available so that &app; users can access it from their machines. This section will show you the basic steps to allow connectivity from other machines in your network in a trusted environment. In order to make your connection more secure, you should read the PostgreSQL documentation, available at The PostgreSQL website, specifically the chapter entitled "Client Authentication".

The first thing you'll want to do is find the configuration files you'll need to modify. The files are `postgresql.conf` and `pg_hba.conf`, which according to the PostgreSQL manual should be in `/usr/local/pgsql/data/`, but on Red Hat and Fedora Core distributions they can be found in `/var/lib/pgsql/data/`. If you have trouble finding them, use the `locate` command.

    	root# locate postgresql.conf
    	/var/lib/pgsql/data/postgresql.conf

Next, tell PostgreSQL that its ok to accept connections via TCP/IP. Log in as root, and modify the the `postgresql.conf` file, change the tcpip_socket value to true, and uncomment the line if necessary. Then save the file.

Then tell PostgreSQL to allow connections from the ip addresses in your local area network by adding a host line to pg_hba.conf:

    	# TYPE  DATABASE USER   IP-ADDRESS        IP-MASK       METHOD
    	 local    all 	 all    ident                           sameuser
    	host    all   all   192.168.1.0  255.255.255.0  trust

This line will allow all machines in the IP range of 192.168.1.1 to 192.168.1.254 to access any PostgreSQL database on the server. You may need to change the IP address and mask depending on your local network. Contact your network administrator for help in this area.

Finally, restart the PostgreSQL service:

    	bash$ pg_ctl -D data -l logfile restart

You should now be able to open and save &app; plans from other machines in your local area network by including a host name or IP address in the Server box in the &app; Open from or Save to Database dialog.

Once again, you are strongly advised to consult the PostgreSQL documentation, Client Authentication section to fully understand the levels of security that can be implemented to suit your needs. The level of trust that is granted in this example is not suitable for most production environments.

## Bibliography

PMBOK Project Management Institute 2000 Project Management Institute, Inc. 1-880410-23-0 Project Management Institute, Inc.

### A Guide to the Project Management Body of Knowledge (PMBOK Guide)