feat(web): add projects page with CRUD operations #477

Merged
jason.woltje merged 1 commits from feat/projects-page into main 2026-02-23 04:13:27 +00:00
Owner

Summary

  • Adds projects API client with typed DTOs matching backend schema
  • Creates projects list page at /projects with card-based layout, create/delete dialogs, and all required states
  • Wired to the existing /api/projects backend endpoints via workspace-aware API helpers

Changes

  • New: apps/web/src/lib/api/projects.ts - CRUD API client
  • New: apps/web/src/app/(authenticated)/projects/page.tsx - Full projects page
  • Modified: apps/web/src/lib/api/index.ts - Added projects export

Test plan

  • pnpm lint passes (0 errors)
  • pnpm build passes (Next.js compiles successfully)

Refs #468

## Summary - Adds projects API client with typed DTOs matching backend schema - Creates projects list page at /projects with card-based layout, create/delete dialogs, and all required states - Wired to the existing /api/projects backend endpoints via workspace-aware API helpers ## Changes - New: `apps/web/src/lib/api/projects.ts` - CRUD API client - New: `apps/web/src/app/(authenticated)/projects/page.tsx` - Full projects page - Modified: `apps/web/src/lib/api/index.ts` - Added projects export ## Test plan - pnpm lint passes (0 errors) - pnpm build passes (Next.js compiles successfully) Refs #468
jason.woltje added 1 commit 2026-02-23 04:13:13 +00:00
feat(web): add projects page with CRUD operations
Some checks failed
ci/woodpecker/push/web Pipeline failed
8542242845
Wire up /projects route with a card-based project list, create dialog,
and delete confirmation. Adds projects API client with full CRUD using
the existing apiGet/apiPost/apiPatch/apiDelete helpers.

- Projects API client with typed DTOs matching backend schema
- Card grid layout (2-col md+, 1-col mobile) with hover states
- Create project dialog with name/description fields
- Delete confirmation dialog with danger styling
- Loading (MosaicSpinner), empty, and error states
- Status badges for PLANNING/ACTIVE/PAUSED/COMPLETED/ARCHIVED
- All design tokens from globals.css, no hardcoded colors

Refs #468
jason.woltje merged commit ee2ddfc8b8 into main 2026-02-23 04:13:27 +00:00
Sign in to join this conversation.