# cplace Apps Investigation

## Context

This directory contains investigations of cplace Apps. The goal is to document what each app provides (types, attributes, widgets) so that the `/building-blocks` skill can intelligently select appropriate apps based on requirements.

## Goal

**Primary Objective:** Create a catalog of apps that documents:
- What types each app provides
- What attributes are on those types
- What widgets the app makes available
- What dependencies the app has (and what gets auto-installed)

**Usage:** The `/building-blocks` skill uses this catalog to:
1. Match requirements to app capabilities
2. Select appropriate apps for a workspace
3. Understand what functionality comes "for free" with each app

## Investigation Approach

Unlike PPM modules (which come with pre-configured workspaces), Apps are installed INTO workspaces. The investigation process is:

1. **Create a fresh workspace** - minimal setup, no apps
2. **Install the target app** - dependencies auto-install
3. **Document what the app provides**:
   - Types and their attributes
   - Widgets (filtered by `requiredApp`)
   - Dependencies that got pulled in
4. **Clean up** - optionally delete the investigation workspace

See [INVESTIGATION-PROMPT.md](./INVESTIGATION-PROMPT.md) for the detailed process.

## Apps to Investigate

### Priority: High (Core Building Blocks)

| App | Qualified Name | Status | Notes |
|-----|----------------|--------|-------|
| cplace Basis | `cf.cplace.platform` | **Complete** | Base platform, always installed |
| Board | `cf.cplace.cboard.main` | **Complete** | Kanban-style boards |
| Meetings | `cf.cplace.meeting` | Complete | Appointments and minutes |
| Forms Wizard | `cf.cplace.formsWizard` | **Complete** | Multi-step input wizards |
| Forms Wizard Launcher | `cf.cplace.formsWizard.formsWizardExecution` | **Complete** | Start Wizard widget (companion to Forms Wizard) |
| Item List | `cf.cplace.itemList` | **Complete** | Task/decision tracking |

### Priority: High (Project Planning)

| App | Qualified Name | Status | Notes |
|-----|----------------|--------|-------|
| Project Planning (Basic) | `cf.cplace.projektplanung.projektplanungBasic` | **Complete** | Basic Gantt |
| Project Planning (Extended) | `cf.cplace.projektplanung.projektplanungExtended` | **Complete** | Advanced scheduling |
| Schedule Mgmt. (Basic) | `cf.cplace.projectPlanning.app.basic.basicScheduleManagement` | **Complete** | Schedule, Task, Milestone types |
| Schedule Mgmt. (Advanced) | `cf.cplace.projectPlanning.app.advanced.advancedScheduleManagement` | **Complete** | Collaboration features |
| New Gantt | `cf.cplace.projectPlanning.app.gantt2.gantt2` | **Complete** | New Gantt widget (no types, widget only) |
| Project Structure | `cf.cplace.projectTree` | Pending | Project hierarchy |
| Task Classes | `cf.cplace.projektplanungMasterData` | **Complete** | Visual categorization |
| Building Blocks | `cf.cplace.buildingBlockSchedule` | **Complete** | Reusable schedule templates |

### Priority: Medium (Resource & Time)

| App | Qualified Name | Status | Notes |
|-----|----------------|--------|-------|
| Resource Management | `cf.cplace.resourceManagement` | **Complete** | Resource planning |
| Resource Management: Charts | `cf.cplace.resourceManagement.resourceManagementChart` | **Complete** | Visualization |
| Timebooking | `cf.cplace.ctts.main` | **Complete** | Time tracking (5 widgets, no types) |
| Project Planning Calendar | `cf.cplace.projektplanungCalendar` | **Complete** | Non-working days (singleton app, 2 types) |
| Timeline Process | `cf.cplace.timelineProcess` | **Complete** | Process aligned to dates (3 types, no widgets) |

### Priority: Medium (UI & Navigation)

| App | Qualified Name | Status | Notes |
|-----|----------------|--------|-------|
| Tile Navigation | `cf.cplace.navigationTileWidget` | **Complete** | Page-to-page navigation (widget only, no types) |
| Breadcrumbs | `cf.cplace.breadcrumbs` | **Complete** | Hierarchical path display (widget only, no types) |
| Drag and Drop List | `cf.cplace.draggablePageList` | **Complete** | Sortable lists (widget only, no types) |
| Tree-structure Table | `cf.cplace.treeTableWidget` | **Complete** | Hierarchical tables (widget only, no types) |
| Landing Page | `cf.cplace.landingPage` | **Complete** | Custom start pages (4 types, no widgets) |
| QR Code | `cf.cplace.qrCodeWidget` | **Complete** | QR code widget (widget only, no types) |

### Priority: Medium (Export & Reports)

| App | Qualified Name | Status | Notes |
|-----|----------------|--------|-------|
| Presentation Graphic | `cf.cplace.pptexport` | **Complete** | Schedule export (1 type, 1 widget) |
| Printing Schedules | `cf.cplace.pptexport.print` | **Complete** | Print profile storage for schedule exports |
| cplace Office Reports | `cf.cplace.officeReports` | **Complete** | Office document generation (1 type, 3 widgets) |
| cplace Report Generation | `cf.cplace.officeReports.cplaceReportGeneration` | **Complete** | Report download widget (1 widget, no types) |

### Priority: Low (Specialized)

| App | Qualified Name | Status | Notes |
|-----|----------------|--------|-------|
| Organizational Structure | `cf.cplace.orgaTree` | Pending | Org tree management |
| Visual Domain Model | `cf.cplace.visualDomainModel` | Pending | Data model visualization |
| Attribute Dependencies | `cf.cplace.attributeDependencies` | Pending | Conditional attributes |
| cplace Calendar | `cf.cplace.simpleCalendar` | Pending | Calendar display |
| Jira Connector | `cf.cplace.jira.connector.jiraConnector` | Pending | Jira integration |
| REST-API Configuration | `cf.cplace.rest.config` | **Complete** | No-code REST APIs (config types only, no widgets) |
| Low-Code REST-API | `cf.cplace.rest.lowcode` | Pending | Low-code REST endpoints |
| Low-Code Job Scheduler | `cf.cplace.lowcodeJobScheduler` | Pending | Scheduled jobs |
| Citizen AI | `cf.cplace.lowcode.ai` | **Complete** | AI chat & page-assistant widgets (widget-only, types not observed) |
| Generic Interface | `cf.cplace.genericInterface.api.genericInterface` | Pending | Data import/export |

### Not for Investigation (Internal/Test)

| App | Qualified Name | Notes |
|-----|----------------|-------|
| Solution Management Test App | `cf.cplace.platform.solutionmanagement.*` | Internal testing only |
| Various dependency apps | `*becomeWriter*`, `*restrictedDeputyAccess*` | Helper apps, auto-installed |

*Full list obtained via `cplace_list_workspace_apps` with `category='all'` on 2026-02-02.*

## Directory Structure

Each investigated app gets its own folder named by qualified name:

```
apps/
├── README.md                    # This file
├── INVESTIGATION-PROMPT.md      # How to investigate new apps
├── cf.cplace.platform/          # Platform base app
│   └── README.md                # Types, attributes, widgets
├── cf.cplace.meeting/           # Meeting app
│   └── README.md
├── cf.cplace.itemList/          # Item List app
│   └── README.md
├── cf.cplace.formsWizard/       # Forms Wizard app
│   └── README.md
└── ...
```

## Document Template

Each app's README.md follows this structure:

```markdown
# App Name (qualified.name)

## Overview
Brief description of what the app provides.

## Dependencies
- List of apps that auto-install with this one

## Types Provided

### type.name.one
| Attribute | Type | Description |
|-----------|------|-------------|
| attr1 | String | ... |
| attr2 | Reference | ... |

### type.name.two
...

## Widgets Provided
| Widget | Description | Use Case |
|--------|-------------|----------|
| widget.name | ... | ... |

## Usage Notes
When to use this app, common patterns, etc.
```

## Relationship to PPM Modules

| Aspect | Apps | PPM Modules |
|--------|------|-------------|
| **Granularity** | Building blocks (types, widgets) | Complete solutions (workspaces, pages, layouts) |
| **Installation** | Into existing workspace | Creates entire workspace structure |
| **Documentation** | One file per app | One file per workspace |
| **Selection** | Based on needed types/widgets | Based on business domain |

Both are "building blocks" for the `/building-blocks` skill, but at different levels of abstraction.
