# Gantt Charts and Scrum Architecture

Our platform uses **Scrum** as the core delivery framework.

## Planning vs execution

| Layer | Purpose | UI |
|-------|---------|-----|
| **Product Backlog** | All candidate work | Project → Product Backlog |
| **Sprint Backlog** | Work selected for the current sprint | Sprint Board columns |
| **Scrum Sprint Board** | Daily execution of sprint items | Project → Scrum Sprint Board |
| **Project Gantt Chart** | One project’s timeline: epics, releases, sprints, milestones, scheduled work, dependencies, risks | Project → Project Gantt Chart |
| **Portfolio Timeline** | Executive Gantt, PMO timeline table, and detailed portfolio Gantt (three views on one page) | Projects → Portfolio Timeline |

The **Sprint Board is not a Gantt chart** and is not Kanban. The **Gantt chart is not a replacement for Scrum** — it is a planning and visibility layer only.

## API routes (v1)

| Endpoint | Description |
|----------|-------------|
| `GET /api/v1/projects/{project}/gantt` | Project Gantt Chart (unified `timeline` + `summary`) |
| `GET /api/v1/projects/gantt` | Portfolio timeline (legacy path; same shape as portfolio gantt) |
| `GET /api/v1/portfolio/gantt` | Portfolio Timeline (executive rows) |
| `GET /api/v1/portfolio/dependencies` | Cross-project dependencies |
| `POST /api/v1/portfolio/dependencies` | Create cross-project dependency |
| `GET /api/v1/projects/{project}/dependencies` | Project ticket dependencies |

## Frontend routes

| Path | Page |
|------|------|
| `/projects` | Projects Dashboard |
| `/projects/portfolio` | Portfolio Overview |
| `/projects/timeline` | Portfolio Timeline — Executive Gantt (default) |
| `/projects/timeline?view=timeline` | Portfolio Timeline — PMO table overview |
| `/projects/timeline?view=gantt` | Portfolio Timeline — Detailed Gantt mode |
| `/projects/cross-dependencies` | Cross-Project Dependencies |
| `/projects/gantt` | Permanent redirect to `/projects/timeline?view=gantt` |
| `/projects/{id}/gantt` | Project Gantt Chart |
| `/projects/{id}/board` | Scrum Sprint Board |
| `/projects/{id}/dependencies` | Project Dependencies |

## Data rules

- **Product Backlog** items do not appear on the Project Gantt unless planned into a release, sprint, milestone, or dated roadmap item.
- **Sprint Backlog** items may appear under their sprint when they have dates or are linked to the sprint.
- **Ticket dependencies** use `ticket_dependencies`; **cross-project** links use `portfolio_dependency_links`.
- Circular dependencies are rejected for both ticket and portfolio links.

## Backward compatibility

- `GET /api/v1/projects/gantt` still works; response shape changed from `{ projects: [...] }` to `{ summary, timeline, cross_project_dependencies }`.
- Frontend `fetchGlobalGantt` delegates to the portfolio endpoint shape.
- Deprecated route `/projects/gantt` redirects to `/projects/timeline?view=gantt`.
- See [PORTFOLIO_EXECUTIVE_GANTT.md](./PORTFOLIO_EXECUTIVE_GANTT.md) for view purposes, data sources, and performance notes.
