work-hub-server/openspec/changes/project-crud-sync/tasks.md
Nicolas HOARAU aec3f2ff98
Some checks failed
ci / ci (22) (pull_request) Failing after 5m17s
feat(project-crud-sync): add planning artifacts for CRUD project lifecycle
- proposal.md: defines scope and motivation for unified CRUD operations
- design.md: documents architecture decisions (Postgres, Docker Compose,
  Nest CLI scaffolding, Schema-Driven Pipes from @workspace/schema)
- specs: contract for project lifecycle management, migrations and seeding
- tasks: implementation checklist covering infra, API, Web and testing
2026-06-12 23:15:55 +04:00

1.6 KiB

1. Database & Infrastructure Setup (Mandatory First Step)

  • 1.1 Dockerization: Create a root docker-compose.yml (work-hub-server/docker-compose.yml) that declares a PostgreSQL service and named volumes for persistence. Do NOT include API or Web app containers — they run natively during development.
  • 1.2 Persistence: Define and map persistent volumes in the root docker-compose.yml to ensure project data survives container restarts.
  • 1.3 CLI Utility: Implement a dedicated command/utility (e.g., db:setup) that orchestrates the execution of migrations and seeding, ensuring idempotency.

2. API Layer Implementation (API)

  • 2.1 Scaffolding: Use the Nest CLI (nest generate resource) to create the basic resource structure for Project (Controller, Service, Module). This ensures adherence to module structure, dependency injection patterns, and common boilerplate across all APIs in the monorepo.
  • 2.2 Implement necessary request validation using Schema-Driven Pipes that import their structure from @workspace/schema, ensuring consistency between API and Web layers.

3. Web Layer Implementation (Web)

  • 3.1 Update apps/web store/composables to call the new API endpoints and manage state correctly following successful write or delete operations.

4. Testing & Tooling

  • 4.1 Write comprehensive unit tests covering the Controller, the Service, and the Repository layers.
  • 4.2 Update E2E test suites to verify complete CRUD workflows via HTTP calls and UI interactions, ensuring the service layer is correctly tested against a containerized DB.