feat: generate tasks.md for website migration

This commit is contained in:
2025-09-20 15:09:27 +08:00
parent 25c01d1418
commit b297dedf2c
2 changed files with 83 additions and 0 deletions

BIN
specs/.DS_Store vendored Normal file

Binary file not shown.

View File

@@ -0,0 +1,83 @@
# Tasks for Website Migration
**Feature**: Website Migration to Astro with Payload CMS
**Branch**: `001-users-pukpuk-dev`
This document outlines the tasks required to complete the feature.
---
## Phase 1: Project Setup
- **T001**: Initialize a new Astro project in the `frontend` directory.
- **T002**: Initialize a new Payload CMS project in the `backend` directory.
- **T003**: Install all necessary dependencies for both projects, including `better-auth`, `vitest`, and `playwright`.
- **T004**: Configure linting and formatting for both projects.
## Phase 2: Backend Development (Payload CMS)
- **T005**: **[P]** Create the `Users` collection in Payload CMS, as defined in `data-model.md`.
- **T006**: **[P]** Create the `Blog Posts` collection in Payload CMS, as defined in `data-model.md`.
- **T007**: **[P]** Create the `Portfolio Items` collection in Payload CMS, as defined in `data-model.md`.
- **T008**: **[P]** Create the `Categories` collection in Payload CMS, as defined in `data-model.md`.
- **T009**: Configure role-based access control for `admin` and `editor` roles.
- **T010**: Implement the authentication logic using `better-auth`.
## Phase 3: Frontend Development (Astro)
- **T011**: **[P]** Create the main layout for the website, including the header and footer.
- **T012**: **[P]** Create the blog listing page, fetching data from the Payload CMS.
- **T013**: **[P]** Create the individual blog post page.
- **T014**: **[P]** Create the portfolio listing page.
- **T015**: **[P]** Create the individual portfolio item page.
- **T016**: **[P]** Create the contact page with a functional contact form.
- **T017**: Implement the login page.
- **T018**: Implement protected routes for the `/admin` section.
## Phase 4: Testing
- **T019**: **[P]** Write contract tests for the `/admin/login` endpoint.
- **T020**: **[P]** Write contract tests for the `/contact` endpoint.
- **T021**: **[P]** Write integration tests for the user login flow.
- **T022**: **[P]** Write integration tests for the contact form submission.
- **T023**: **[P]** Write unit tests for the main Astro components.
## Phase 5: Content Migration and Deployment
- **T024**: Write scripts to migrate content from the old site to the new Payload CMS.
- **T025**: Implement 301 redirects for all old URLs.
- **T026**: Configure the deployment pipeline to Cloudflare Pages.
- **T027**: Perform a final performance and accessibility audit using Google Lighthouse.
---
## Parallel Execution Examples
The following tasks can be run in parallel:
```bash
# Backend collections
gemini execute --task T005 &
gemini execute --task T006 &
gemini execute --task T007 &
gemini execute --task T008 &
```
```bash
# Frontend pages
gemini execute --task T011 &
gemini execute --task T012 &
gemini execute --task T013 &
gemini execute --task T014 &
gemini execute --task T015 &
gemini execute --task T016 &
```
```bash
# Tests
gemini execute --task T019 &
gemini execute --task T020 &
gemini execute --task T021 &
gemini execute --task T022 &
gemini execute --task T023 &
```