3.6 KiB
3.6 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/, andpackages/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 thefrontendapp. - T006: Install all necessary dependencies across the workspace.
Phase 2: Backend Development (Payload CMS)
- T007: [P] Create the
Userscollection in Payload CMS withadminandeditorroles. - T008: [P] Create the
BlogPostscollection in Payload CMS. - T009: [P] Create the
PortfolioItemscollection in Payload CMS. - T010: [P] Create the
Categoriescollection 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 infrontend/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.