Files
website-enchun-mgr/specs/001-users-pukpuk-dev/tasks.md

3.5 KiB

Tasks for Website Migration (v2 - Corrected)

Feature: Website Migration to Astro with Payload CMS Branch: 001-users-pukpuk-dev

This task list is aligned with the official PRD.md and excludes all e-commerce functionality.


Phase 1: Workspace & Project Setup

  • T001: Initialize a pnpm monorepo with pnpm-workspace.yaml.
  • T002: Create frontend/, backend/, and packages/shared/ directories.
  • T003: Initialize the Astro project in frontend/ configured for SSR (Server-Side Rendering).
  • T004: Initialize the Payload CMS project in backend/ configured for Cloudflare Workers.
  • T005: Configure Tailwind CSS in the packages/shared/ directory to be used by the frontend app.
  • T006: Install all necessary dependencies across the workspace.

Phase 2: Backend Development (Payload CMS)

  • T007: [P] Create the Users collection in Payload CMS with admin and editor roles.
  • T008: [P] Create the BlogPosts collection in Payload CMS.
  • T009: [P] Create the PortfolioItems collection in Payload CMS.
  • T010: [P] Create the Categories collection in Payload CMS.
  • T011: Configure Payload to use Auth.js for authentication.

Phase 3: Frontend Development (Astro)

  • T012: Integrate Auth.js (astro-auth) with the Astro project.
  • T013: Implement the authentication check for all /admin/* routes in frontend/src/middleware.ts.
  • T014: [P] Create the main site layout (Layout.astro) with shared Header and Footer components.
  • T015: [P] Create the secure admin layout (AdminLayout.astro).
  • T016: [P] Create the static page frontend/src/pages/about.astro.
  • T017: [P] Create the static page frontend/src/pages/solutions.astro.
  • T018: [P] Create the static page frontend/src/pages/teams.astro.
  • T019: [P] Create the static page frontend/src/pages/marketing-class.astro.
  • T020: [P] Create the contact page at frontend/src/pages/contact.astro.
  • T021: Create the blog listing page at frontend/src/pages/blog/index.astro.
  • T022: Create the dynamic blog post page at frontend/src/pages/blog/[slug].astro.
  • T023: Create the blog category page at frontend/src/pages/blog/category/[category-slug].astro.
  • T024: Create the portfolio listing page at frontend/src/pages/portfolio/index.astro.
  • T025: Create the dynamic portfolio item page at frontend/src/pages/portfolio/[slug].astro.
  • T026: Implement the login page at frontend/src/pages/admin/login.astro.
  • T027: Implement the protected dashboard at frontend/src/pages/admin/dashboard.astro.
  • T028: Implement the embedded Payload CMS view at frontend/src/pages/admin/cms.astro.

Phase 4: Functionality & Migration

  • T029: Implement the contact form submission logic using a Cloudflare Worker.
  • T030: Create and implement the 301 redirect map for all URLs from enchun-sitemap.txt.
  • T031: Write a script to migrate existing content from CSVs into the new Payload CMS.

Phase 5: Testing & Deployment

  • T032: [P] Write integration tests for the Auth.js login and protected route flow.
  • T033: [P] Write integration tests for the contact form submission.
  • T034: [P] Write unit tests for critical shared utilities or components.
  • T035: Configure and test the deployment pipeline for the Astro frontend to Cloudflare Pages.
  • T036: Configure and test the deployment pipeline for the Payload CMS backend to Cloudflare Workers.
  • T037: Perform a final SEO and accessibility audit.