69 lines
1.3 KiB
Markdown
69 lines
1.3 KiB
Markdown
# 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
|