# Projects Feature Spec

## Scope

This spec documents the currently implemented

`portfolio projects`

domain.

## Current Implementation

### User-facing

- Users can browse published projects on

`/portfolio`

- Users can filter by category
- Users can open a project detail page by slug
- Project detail can render rich sections, galleries, stats, deliverables, and links
- Document assets can be opened from project detail pages

### Admin-facing

- Admin can create, edit, publish, unpublish, and delete projects
- Admin can assign one category per project
- Admin can manage:
  - localized titles and summaries
  - client name
  - project year
  - service label
  - preview URL
  - cover image
  - sections
  - assets
  - featured flag
  - published flag
  - sort order
  - view mode

### Data model

- `PortfolioProject`
- `PortfolioSection`
- `PortfolioAsset`
- `Category`

## Constraints

- Only published projects appear publicly
- Category delete is blocked if projects exist
- Each project must have exactly one category
- View mode is limited to existing enum values

## Recommended Improvements

- Rename this feature from

`portfolio`

to

`projects`

only if the business wants portfolio and project management to be the same domain
- Add preview workflow instead of relying only on publish state
- Add revision history for content changes
