Commit Graph

25 Commits

Author SHA1 Message Date
84b5a498e6 feat: Redesign the contact page by adding a contact image and updating the form layout and styling. 2026-03-01 12:51:36 +08:00
173905ecd3 Extract generic UI components
Reduces duplication across marketing pages by converting sections into
reusable components like CtaSection and HeaderBg. Consolidates styling
patterns to improve maintainability and consistency of the user interface.
2026-02-28 04:55:25 +08:00
b199f89998 Integrate CMS with Marketing Solutions page
Links the marketing solutions frontend page to the Payload CMS Pages
collection via the new API library. Removes legacy static portfolio
routes and components to consolidate marketing content. Enhances the
Header and Footer Astro components with improved responsive styling.
2026-02-27 20:05:43 +08:00
9c2181f743 feat(frontend): update pages, components and branding
Refresh Astro frontend implementation including new pages (Portfolio, Teams, Services), components, and styling updates.
2026-02-11 11:50:42 +08:00
be7fc902fb feat(backend): update collections, config and migration tools
Update Payload CMS configuration, collections (Audit, Posts), and add migration scripts/reports.
2026-02-11 11:50:23 +08:00
7fd73e0e3d Implement Sprint 1 stories: collections, RBAC, audit logging, load testing
Complete 6 Sprint 1 stories for Epic 1 web migration infrastructure.

Portfolio Collection:
- Add 7 fields: title, slug, url, image, description, websiteType, tags
- Configure R2 storage and authenticated access control

Categories Collection:
- Add nameEn, order, textColor, backgroundColor fields
- Add color picker UI configuration

Posts Collection:
- Add excerpt with 200 char limit and ogImage for social sharing
- Add showInFooter checkbox and status select (draft/review/published)

Role-Based Access Control:
- Add role field to Users collection (admin/editor)
- Create adminOnly and authenticated access functions
- Apply access rules to Portfolio, Categories, Posts, Users collections

Audit Logging System (NFR9):
- Create Audit collection with timestamps for 90-day retention
- Add auditLogger utility for login/logout/content change tracking
- Add auditChange and auditGlobalChange hooks to all collections and globals
- Add cleanupAuditLogs job with 90-day retention policy

Load Testing Framework (NFR4):
- Add k6 load testing with 3 scripts: public-browsing, admin-operations, api-performance
- Configure targets: p95 < 500ms, error rate < 1%, 100 concurrent users
- Add verification script and comprehensive documentation

Other Changes:
- Remove unused Form blocks
- Add Header/Footer audit hooks
- Regenerate Payload TypeScript types
2026-01-31 17:20:35 +08:00
0846318d6e Complete Story 1-1 and fix TypeScript issues
Add TypeScript strict mode and typecheck tasks to monorepo infrastructure.
Fix E2E test @payload-config alias and frontend TypeScript errors.

- Add tsconfig.json to backend with strict mode and path aliases
- Add typecheck task to Turborepo and all packages
- Fix @payload-config alias for E2E tests and dev server
- Add setToken method to AuthService for middleware use
- Fix implicit any types in Footer.astro and Header.astro
- Remove invalid typescript config from astro.config.mjs
2026-01-31 17:12:47 +08:00
d0e8c3bcff Add role-based access control with admin/editor roles
Create adminOnly and adminOrEditor access functions. Add role field
to Users collection (admin/editor, default: editor). Update access control
across all collections and globals to enforce role-based permissions.
2026-01-31 13:03:16 +08:00
2d3d144a66 Add Portfolio collection with 7 fields
Create Portfolio collection for managing website portfolio items.
Includes title, slug, url, image, description, websiteType, and
tags fields. Configured access control for authenticated create/
update/delete operations with public read access.
2026-01-31 12:54:36 +08:00
e632a9d010 Add type casting for RichText data props with DefaultTypedEditorState 2025-10-14 00:38:32 +08:00
296c1ae0e4 Add type definition for introContent in ArchiveBlock component 2025-10-14 00:25:16 +08:00
b2df353533 Add type casting for post content in RichText component 2025-10-14 00:13:53 +08:00
8f64e99a49 Remove shared Tailwind config from backend
Remove the shared Tailwind configuration import and content array
integration from the backend's Tailwind config.
2025-10-13 23:54:06 +08:00
fdde6d8020 update pnpm-lock 2025-10-13 17:20:37 +08:00
093da91b58 update pnpm-lock 2025-10-13 16:35:42 +08:00
2d2c32657f fix tailwind shared config 2025-10-13 16:22:11 +08:00
6702d524f0 update payload latest version 2025-10-13 16:11:04 +08:00
d0d94799a4 update component.tsx 2025-10-13 15:26:16 +08:00
4678e47a8b update r2 config for enchunCMS email adapter 2025-10-13 15:10:02 +08:00
65c27e3386 add cloudflare R2 config 2025-10-13 11:37:20 +08:00
pukpuk
8e8ff0bfc7 chore: fix gitignore pattern to exclude build artifacts
Update .gitignore to properly ignore dist directories at any level by
changing /dist to **/dist pattern. Also remove previously tracked
.astro/types.d.ts file which should not be in version control.

- Fix: Change /dist to **/dist to match nested dist directories
- Remove: apps/frontend/.astro/types.d.ts from tracking
- Ensures build artifacts are properly excluded across the project

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-07 16:18:37 +08:00
c2d4c8d0a0 chore(workflow): add AI-assisted workflow commands and configurations
Add comprehensive workflow commands for AI-assisted development:
- Claude commands: analyze, clarify, plan
- Kilocode workflows: full feature development lifecycle
- Opencode commands: specification and implementation workflows
- Roo MCP configuration for tool integration

Update .gitignore to exclude .astro build cache directories.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-07 01:06:10 +08:00
pukpuk
cf0f779ad4 feat: introduce spec-workflow and upgrade frontend dependencies
This commit introduces the spec-workflow, a set of templates for creating design, product, requirements, and other specification documents. These templates are added to both the root directory and the `apps/frontend` workspace.

Additionally, this commit upgrades the frontend development dependencies for the Astro application. The key changes include:
- Migration from `@astrojs/tailwind` to `@tailwindcss/vite` for Tailwind CSS integration.
- Deletion of the `postcss.config.cjs` file, as it is no longer needed with the new setup.
- Updates to `astro.config.mjs` to use the new Vite plugin for Tailwind CSS.
- General upgrade of Astro and other related dependencies in `apps/frontend/package.json` and the corresponding `pnpm-lock.yaml` file.
2025-10-06 12:35:06 +08:00
7f61b58880 feat: support nested footer links 2025-09-29 21:19:48 +08:00
74677acf77 refactor: migrate to pnpm monorepo with Payload CMS backend and Astro frontend to support scalable website development and AI-assisted workflows 2025-09-25 03:36:26 +08:00