### The TaskJuggler User Manual

Project Management beyond Gantt Chart Drawing

<< How_To_Contribute << | Table Of Contents | >> Tutorial >>

# 3 Getting Started

## 3.1 Basics

TaskJuggler uses one or more text files to describe a project. The main project should be placed in a file with the .tjp extension. This main project may include other files. Such included files must have file names with a `.tji` extension.

The graphical user interface from the 2.x version has not been ported to TaskJuggler 3.x yet. So all work with TaskJuggler needs to be done in your favorite text editor and in a command shell.

The commandline version of TaskJuggler works like a compiler. You provide the source files, it computes the contents and creates the output files. Let's say you have a project file called `AcSo.tjp`. It contains the tasks of your project and their dependencies. To schedule the project and create report files you have to ask TaskJuggler to process it.

    tj3 AcSo.tjp

TaskJuggler will try to schedule all tasks with the specified conditions and generate the reports that were requested with the taskreport, resourcereport or other report properties in the input file. The report files will be generated in the current directory or relative to it.

If you specify file names in a project file, you need to use the `/` as directory separator. This way, projects are portable across all operating systems. Do not use the `\` or `:` that are used on some operating systems.

## 3.2 Structure of a TJP File

Each TaskJuggler project consists of one or more text files. There is always a main project file that may include other files. The main file name should have a `.tjp` suffix, the included files must have a `.tji` suffix.

Every project must start with a project header. The project header must be in the main project file. All other elements may be put into include files. The project header must then be followed by any number of project properties such as accounts, resources, tasks and reports. Each project must have at least one task defined and should have at least one report. Properties don't have to be listed in a particular order, but may have interdependencies that require such an order. If you want to assign a resource to work on a task, this resource needs to be defined first. It is therefor recommended to define them in the following sequence.

- macros
- flags
- accounts
- shifts
- vacations
- resources
- tasks
- accountreports
- resourcereports
- taskreports
- textreports
- exports

<< How_To_Contribute << | Table Of Contents | >> Tutorial >>

Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012 by Chris Schlaeger <chris@linux.com>.TaskJuggler is a trademark of Chris Schlaeger.