# TASKS.md - CCAT Project Task Management ## Task Status Instructions Use GitHub-style checkboxes to mark task completion: - `- [ ]` for uncompleted tasks - `- [x]` for completed tasks - Add notes or comments after tasks using `` --- ## Milestone 1: Foundation & Setup ### WordPress Theme Structure - [x] Create basic WordPress theme structure with `functions.php` and `style.css` - [x] Set up `composer.json` with WPackagist dependencies - [x] Create directory structure (`acf-json/`, `includes/`, `app/`, `server/`, `shared/`) - [x] Configure Nuxt 4 within WordPress theme context - [x] Set up basic theme activation and WordPress integration ### Development Environment - [x] Configure Gitea Actions for CI/CD pipeline - [x] Set up local development environment - [x] Configure environment variables for development/production - [x] Set up hot reloading for Nuxt within WordPress theme - [x] Create basic build scripts and deployment configuration ### Core Plugins & Dependencies - [x] Install and configure WPGraphQL plugin - [x] Install and configure WPGraphQL JWT Authentication - [x] Install and configure Advanced Custom Fields (ACF) Pro - [x] Install and configure ACF Extended Pro - [x] Configure GraphQL schema and test basic queries --- ## Milestone 2: Content Structure & Data Models ### Custom Post Types (CPT) - [x] Create Contributor CPT (artist/organization profiles) - [x] Create Event CPT (base event descriptions) - [x] Create Listing CPT (job offers/proposals with deadlines) - [x] Create Location CPT (venue information, hierarchical) - [x] Create Profile CPT (user cultural profiles) - [x] Create Project CPT (CCAT projects) - [x] Create Representation CPT (event instances) - [x] Create Resource CPT (document/link repository) - [x] Create Template CPT (reusable content blocks) ### Custom Taxonomies - [x] Create Discipline taxonomy (artistic/cultural categories) - [x] Create Listing Category taxonomy - [x] Create Project Category taxonomy - [x] Create Resource Category taxonomy - [x] Configure taxonomy relationships with CPTs ### ACF Field Groups - [x] Design and create ACF fields for Contributor CPT - [x] Design and create ACF fields for Event CPT - [x] Design and create ACF fields for Listing CPT - [x] Design and create ACF fields for Location CPT (venue/room hierarchy) - [ ] Design and create ACF fields for Profile CPT - [x] Design and create ACF fields for Project CPT - [x] Design and create ACF fields for Representation CPT - [x] Design and create ACF fields for Resource CPT - [x] Create flexible content field groups for dynamic layouts - [x] Set up ACF options page for site-wide settings ### WPGraphQL Integration - [x] Configure GraphQL schema for all CPTs - [x] Configure GraphQL schema for all taxonomies - [x] Configure GraphQL schema for ACF fields - [x] Test GraphQL queries for all content types - [x] Set up GraphQL authentication and permissions - [ ] Customize MediaItem GraphQL type to include center (x/y) fields --- ## Milestone 3: Authentication & User Management ### JWT Authentication System - [x] Configure JWT authentication for WPGraphQL - [x] Create `useAuth` composable for token management - [ ] Implement user registration flow - [x] Implement user login flow - [x] Implement JWT token refresh mechanism - [x] Handle authentication errors and edge cases ### User Roles & Permissions - [x] Define custom user roles (member, premium, admin) - [x] Configure user capabilities and permissions - [ ] Implement user registration with email verification - [ ] Create user profile management system - [ ] Link user accounts to Profile CPT ### Member Signup & Management - [ ] Create `useMemberSignup` composable - [ ] Create `useMemberArea` composable - [ ] Build member registration forms - [ ] Build member profile editing interface - [ ] Implement membership tier upgrades - [x] Create admin user impersonation functionality --- ## Milestone 4: Core Nuxt Components ### Base Component Architecture - [ ] Set up Nuxt UI integration - [ ] Create base layout structure - [ ] Design component organization system ### Node Components (Main Page Components) - [x] Create node component for Event pages - [x] Create node component for Listing pages - [x] Create node component for Location pages - [x] Create node component for Profile pages - [x] Create node component for Project pages - [x] Create node component for Resource pages - [x] Create `useNodeByUri` composable for content fetching ### Site Components (Global) - [x] Create header component with navigation - [ ] Create footer component - [x] Create main navigation system - [x] Create breadcrumb navigation (excluding virtual pages) - [ ] Create search functionality - [x] Implement responsive navigation for mobile ### Authentication Components - [x] Create login form component - [ ] Create registration form component - [ ] Create password reset component - [x] Create protected route middleware - [ ] Create user profile components - [ ] Create member zone dashboard --- ## Milestone 5: Content Management & Flexible Layouts ### Flexible Content Sections - [x] Create section components for ACF flexible fields - [x] Design reusable content block system - [x] Implement Template CPT integration - [x] Create dynamic section rendering system - [x] Implement section preview in admin - [ ] Create additional section components (Hero, Gallery, CTA, etc.) - [ ] Add shared section settings (container width, color theme, etc.) ### ACF Extended Pro Preview System - [x] Configure ACF Extended Pro preview templates - [x] Set up iframe preview system - [x] Implement SSR rendering for preview content - [x] Create preview layouts in `/layouts` directory - [x] Implement reusable template replacement logic - [x] Test real-time preview functionality ### Content Features - [x] Implement image uploads with point-of-interest cropping - [ ] Implement virtual pages (redirect to first child) - [ ] Create automated URL redirect system - [ ] Build content search and filtering - [ ] Create content categorization system - [ ] Handle richtext content display on frontend ### Missing Core Components - [x] Create TheContributor node component - [x] Create TheRepresentation node component - [x] Implement menu system integration - [ ] Create user management components for profiles - [ ] Build admin dashboard components - [ ] Complete footer top section implementation --- ## Milestone 6: Event System & Calendar ### Event Management - [x] Design event-representation relationship system - [ ] Create event creation and editing interface - [ ] Build event listing and detail pages - [ ] Implement event approval workflow for admins - [ ] Create event search and filtering system ### Interactive Calendar - [ ] Integrate Leaflet maps for location display - [ ] Build calendar component with multiple views (month/week/day/list) - [ ] Implement event filtering and search - [ ] Create event detail modal/popup - [ ] Add calendar navigation and date selection - [ ] Connect events to representations for calendar display - [ ] Add location markers on map integration ### Event Subscriptions - [ ] Design event subscription system - [ ] Create subscription forms (free events) - [ ] Implement waitlist management - [ ] Build bulk attendee registration for admins - [ ] Create subscription confirmation system - [ ] Add subscription cancellation functionality --- ## Milestone 7: Utilities & Composables ### Core Composables - [x] Create `useResponsive` composable for responsive utilities - [x] Create `useSiteOptions` composable for ACF options page - [ ] Build error handling utilities - [ ] Create loading state management - [ ] Implement cache management utilities ### GraphQL Operations - [x] Create GraphQL operation files (`.gql`) in `/app/graphql/` - [ ] Set up GraphQL codegen for TypeScript types - [x] Create reusable GraphQL fragments - [ ] Implement GraphQL error handling - [ ] Add GraphQL query optimization - [ ] Create GraphQL operations for all CPTs - [ ] Implement pagination for large datasets - [ ] Add GraphQL subscriptions for real-time updates --- ## Milestone 8: Third-Party Integrations (PHP) ### Mailchimp Integration - [ ] Set up Mailchimp PHP SDK - [ ] Create user synchronization system - [ ] Implement newsletter subscription management - [ ] Build transactional email system - [ ] Create email template system - [ ] Add merge field synchronization ### Stripe Integration - [ ] Set up Stripe PHP SDK - [ ] Implement payment processing for premium memberships - [ ] Create subscription billing system - [ ] Build payment webhook handling - [ ] Implement refund processing - [ ] Add payment analytics and reporting ### AirTable Import System - [ ] Design non-destructive import system - [ ] Create AirTable API integration - [ ] Build field mapping interface - [ ] Implement incremental updates - [ ] Add import validation and error handling - [ ] Create import history and rollback functionality --- ## Milestone 9: Advanced Features ### Admin Tools - [ ] Create admin dashboard - [ ] Build user management interface - [ ] Implement content moderation tools - [ ] Create event subscription management - [ ] Add analytics and reporting features - [ ] Build system configuration interface ### Event Webscraping Tool - [ ] Design webscraping architecture - [ ] Create external event source configuration - [ ] Build automated event discovery system - [ ] Implement data validation and normalization - [ ] Add duplicate detection and management - [ ] Create admin review and approval workflow ### Premium Membership Features - [ ] Design premium feature system - [ ] Enhanced profile visibility - [ ] Priority event listings - [ ] Advanced analytics for members - [ ] Additional content creation tools - [ ] Premium support features --- ## Milestone 10: Additional Implementations ### Missing UI Components - [ ] Create custom form components for user-generated content - [ ] Build notification/toast system - [ ] Create loading states and skeleton screens - [ ] Implement modal/dialog system - [ ] Build file upload components with progress - [ ] Create responsive tables for admin data ### Enhanced Features - [ ] Add real-time validation for forms - [ ] Implement advanced search with filters - [ ] Create bookmark/favorite system for events - [ ] Add social sharing components - [ ] Implement print-friendly views --- ## Milestone 11: UI/UX & Polish ### Custom UI Components - [ ] Design and build custom UI component library - [ ] Create consistent styling system - [ ] Implement responsive design patterns - [ ] Add animations and transitions - [ ] Build accessibility features - [ ] Create component documentation ### Mobile Optimization - [ ] Optimize all components for mobile - [ ] Implement touch-friendly interactions - [ ] Create mobile-specific navigation - [ ] Optimize performance for mobile devices - [ ] Test across different screen sizes --- ## Milestone 11: Testing & Quality Assurance ### Unit Testing - [ ] Set up testing framework - [ ] Write tests for composables - [ ] Test utility functions - [ ] Create mock data for testing - [ ] Add continuous integration testing ### Integration Testing - [ ] Test GraphQL operations - [ ] Test WordPress/PHP integration - [ ] Validate third-party integrations - [ ] Test user authentication flows - [ ] Verify payment processing ### End-to-End Testing - [ ] Test complete user registration flow - [ ] Test event creation and subscription - [ ] Test member area functionality - [ ] Test admin workflows - [ ] Test content preview system --- ## Milestone 12: Performance & Optimization ### Performance Optimization - [ ] Optimize GraphQL queries (prevent N+1) - [ ] Implement caching strategies - [ ] Optimize images with @nuxt/image - [ ] Minimize bundle sizes - [ ] Implement lazy loading - [ ] Monitor Core Web Vitals ### Security Audit - [ ] Review authentication security - [ ] Validate input sanitization - [ ] Test API security - [ ] Review payment security - [ ] Implement security headers - [ ] Run security vulnerability scans --- ## Milestone 13: Launch Preparation ### Content Migration - [ ] Migrate existing content from current systems - [ ] Set up initial user accounts - [ ] Import event data - [ ] Configure site-wide settings - [ ] Test content import process ### Documentation & Training - [ ] Create user documentation - [ ] Write admin training materials - [ ] Document API endpoints - [ ] Create troubleshooting guides - [ ] Record training videos ### Final Testing & Deployment - [ ] Complete end-to-end testing - [ ] Performance testing under load - [ ] Cross-browser compatibility testing - [ ] Mobile device testing - [ ] Production deployment - [ ] Post-launch monitoring setup --- ### Current Technical Debt - [ ] Implement complete member signup flow - [ ] Complete member area functionality - [ ] Add comprehensive error boundaries - [ ] Implement proper loading states across app - [ ] Add input validation and sanitization - [ ] Create comprehensive TypeScript types --- ## Post-Launch Tasks ### Ongoing Maintenance - [ ] Set up monitoring and alerting - [ ] Create backup procedures - [ ] Plan regular security updates - [ ] Monitor performance metrics - [ ] Gather user feedback - [ ] Plan feature iterations --- --- ## Current Status Summary (Updated) ### ✅ Completed Phases: - **Foundation & Setup**: ~95% complete (Milestone 1) - **Content Structure**: ~90% complete (Milestone 2) - **Authentication Core**: ~80% complete (Milestone 3) - **Basic Components**: ~70% complete (Milestone 4) ### 🚧 In Progress: - **Content Management**: ~60% complete (Milestone 5) - **Core Composables**: ~70% complete (Milestone 7) ### ⏳ Next Priority Areas: 1. **Member Area Completion** - Critical (useMemberSignup & useMemberArea composables) 2. **Event System Implementation** - High Priority (including backend Representation data) 3. **Event Calendar Integration** - High Priority (Leaflet maps) 4. **Footer Completion** - Medium Priority (TheSiteFooter top section) 5. **Third-party Integrations** - Medium Priority ### 📊 Overall Project Status: ~65% Complete **Notes:** - Mark completed tasks with `[x]` - Add comments or blockers using `` after tasks - Update this file regularly during development - Use this file to track progress and plan work sessions - Priority levels: Critical > High > Medium > Low