# Project Structure (cf.cplace.projectTree)

## Overview

The **Project Structure** app adds the app-specific type "Project" and allows schedules to be organized in a project structure. Additionally, the app enables new projects and schedules to be created within this project structure - based on a template, if required.

This app is useful for organizing work into a hierarchical project portfolio structure, allowing users to group related schedules under projects and sub-projects.

## Dependencies

- **cf.cplace.platform** (cplace Basis) - Always installed as the base platform

No additional dependencies are required. This app is self-contained and does not pull in any other apps.

## Types Provided

### cf.projectNavigator.project (Project)

A container type for organizing schedules and sub-projects in a hierarchical structure.

| Attribute | Internal Name | Type | Multiplicity | Description |
|-----------|---------------|------|--------------|-------------|
| Parent Project | `parent` | Reference (self-referencing) | Single | The parent project in the hierarchy. Access rights propagate from parent to child. |
| Links to Other Projects | `additionalProjectLinks` | Reference (self-referencing) | Multiple | References to related projects for highlighting thematic relationships. These are informational only and do not affect access rights propagation. Optionally shown in the project tree under referenced projects. |

**Type Properties:**
- **Icon:** `fas fa-folder`
- **Show in Explorer:** No
- **Show in Global Search:** Yes
- **Names are Unique:** No

## Widgets Provided

| Widget | Internal Name | Description | Use Case |
|--------|---------------|-------------|----------|
| Edit Project Structure | `cf.cplace.projectTree.editProjects` | Interactive tree view for creating and managing schedules and projects | Main widget for visualizing and editing the project hierarchy with drag-and-drop reorganization and context menu actions |

### Edit Project Structure Widget Details

**Widget:** `cf.cplace.projectTree.editProjects`

- **Name:** Edit Project Structure / Projektstruktur bearbeiten
- **Icon:** `cf-widget`
- **Capabilities:**
  - Displays hierarchical project structure as a tree
  - Drag-and-drop reorganization of projects and schedules
  - Context menu actions for creating subprojects and schedules
  - Template-based creation support

## Usage Notes

### When to Use This App

- **Portfolio Management:** When you need to organize multiple schedules under a hierarchical project structure
- **Program/Project Hierarchy:** For creating multi-level project portfolios (Portfolio > Program > Project > Schedule)
- **Access Rights Propagation:** When you want access rights to automatically flow from parent projects to children
- **Cross-Project Linking:** When projects have thematic relationships that should be visible but don't affect permissions

### Common Patterns

1. **Simple Hierarchy:**
   ```
   Portfolio (Project)
   ├── Program A (Project)
   │   ├── Project A.1 (Project)
   │   │   └── Schedule A.1.1
   │   └── Project A.2 (Project)
   │       └── Schedule A.2.1
   └── Program B (Project)
       └── Project B.1 (Project)
           └── Schedule B.1.1
   ```

2. **With Cross-Project Links:**
   - A project can reference other projects via `additionalProjectLinks` to show thematic relationships
   - These links are informational and can optionally appear in the tree view
   - Access rights are NOT propagated through these links

### Integration with Other Apps

This app is commonly used together with:
- **Project Planning (Basic)** (`cf.cplace.projektplanung.projektplanungBasic`) - Provides Schedule, Task, and Milestone types
- **Project Planning (Extended)** (`cf.cplace.projektplanung.projektplanungExtended`) - Advanced scheduling features
- **New Gantt** (`cf.cplace.projectPlanning.app.gantt2.gantt2`) - Gantt visualization

### Limitations

- The app only provides the Project type and tree editing widget
- Schedules must come from a Project Planning app (not included)
- Without a Project Planning app installed, the tree widget can only manage Projects, not schedules

## Investigation Details

- **Investigated:** 2026-02-02
- **Investigation Workspace:** `[App Investigation] cf.cplace.projectTree` (ID: `fv6dpuskn9paff2y3lvkwpwo0`)
- **Platform Version:** cplace (current)
