Files
cultureat-bak/.claude/PLANNING.md
Pascal Martineau 8fbac701f6
All checks were successful
Deploy WordPress and Nuxt / deploy (push) Successful in 1m2s
chore: updated planning / tasks
2025-09-25 10:04:50 -04:00

17 KiB

PLANNING.md - CCAT Project Planning Document

🎯 Project Vision

Mission Statement

Create a comprehensive digital platform that serves as the central hub for the cultural community of Abitibi-Témiscamingue, connecting artists, organizations, and cultural enthusiasts while promoting regional cultural activities and fostering community engagement.

Core Values

  • Community First: Every feature should strengthen connections within the cultural community
  • Accessibility: Platform must be accessible to all users regardless of technical expertise
  • Cultural Promotion: Showcase and celebrate the rich cultural diversity of the region
  • User Empowerment: Enable artists and organizations to manage their own content
  • Transparency: Open and clear communication about events, opportunities, and resources

Success Metrics

  • Community Growth: Increase in registered cultural profiles and active members
  • Event Engagement: Higher attendance and participation in cultural events
  • Content Creation: Volume and quality of user-generated cultural content
  • Regional Impact: Measurable increase in cultural activity awareness and participation
  • User Satisfaction: Positive feedback and continued platform usage

🏗️ Architecture Overview

System Architecture Philosophy

Hybrid WordPress-Nuxt Integration: A WordPress theme that embeds Nuxt 4, combining the content management power of WordPress with the modern frontend capabilities of Nuxt.

Architecture Principles

  • Content-First Design: WordPress CMS handles all content management
  • Modern Frontend Experience: Nuxt 4 provides fast, interactive user interface
  • API-Driven: GraphQL API layer separates content from presentation
  • Progressive Enhancement: Core functionality works without JavaScript
  • Mobile-First: Responsive design prioritizing mobile experience
  • Performance Optimized: Fast loading times and efficient resource usage

Data Flow Architecture

User Request → WordPress (PHP) → WPGraphQL → Nuxt Frontend → User Interface
     ↓                                           ↑
WordPress Admin ← ACF Fields ← Content Management ← User Actions
     ↓
Third-party Integrations (Mailchimp, Stripe, AirTable)

Content Architecture

  • Hierarchical Structure: Organized content types with clear relationships
  • Flexible Content: ACF flexible fields for dynamic page layouts
  • Reusable Components: Template CPT for consistent content blocks
  • User-Generated Content: Community members can create and manage profiles
  • Administrative Control: Staff can moderate and approve content

💻 Technology Stack (Current Implementation)

Core Platform - IMPLEMENTED

Component Technology Version Purpose Status
CMS WordPress Latest Content management system Configured
Frontend Nuxt 4.1.2 Modern Vue.js framework Integrated
UI Framework Nuxt UI 4.0.0 Component library Configured
Database MySQL 8.0+ Data storage Operational
Language PHP 8.1+ WordPress backend Compatible
Language TypeScript 5.9.2 Frontend development Configured

WordPress Plugins & Extensions

Plugin Purpose License
WPGraphQL GraphQL API layer Free
WPGraphQL JWT Authentication API authentication Free
Advanced Custom Fields Pro Custom field management Commercial
ACF Extended Pro Enhanced ACF features + preview Commercial

Frontend Technologies

Technology Purpose Integration
Vue 3 Component framework Via Nuxt 4
Nuxt UI UI component library Primary UI framework
@nuxt/image Image optimization Asset handling
Nuxt GraphQL Middleware GraphQL client API communication
Leaflet Interactive maps Event locations

Third-Party Integrations

Service Purpose Implementation
Mailchimp Email marketing & transactional emails PHP SDK
Stripe Payment processing PHP SDK
AirTable Data import system API integration

Development Tools

Tool Purpose Usage
Composer PHP dependency management Plugin management via WPackagist
npm/pnpm Node.js package management Frontend dependencies
Gitea Actions CI/CD pipeline Automated deployment
TypeScript Type safety Frontend development

🛠️ Required Tools & Environment

Development Environment Requirements

Local Development Setup

  • PHP: Version 8.1 or higher
  • Node.js: Version 18 or higher
  • MySQL: Version 8.0 or higher
  • Composer: Latest version for PHP dependencies
  • npm/pnpm: For JavaScript package management

WordPress Development Tools

  • WordPress: Latest version
  • WP-CLI: WordPress command line interface
  • Local development environment: (LocalWP, XAMPP, Docker, or similar)

Frontend Development Tools

  • Code Editor: VS Code recommended with extensions:
    • Vue Language Features (Volar)
    • TypeScript Vue Plugin (Volar)
    • GraphQL extension
    • PHP extension
  • Browser Developer Tools: Chrome/Firefox DevTools
  • GraphQL Playground: For API testing

Production Environment Requirements

Hosting Requirements

  • PHP: 8.1+ with required extensions
  • MySQL/MariaDB: 8.0+ or 10.6+
  • Web Server: Apache 2.4+ or Nginx 1.20+
  • SSL Certificate: Required for secure authentication
  • Memory: Minimum 512MB PHP memory limit
  • Storage: SSD recommended for performance

Performance Requirements

  • CDN: Not required initially (@nuxt/image handles optimization)
  • Caching: WordPress object caching recommended
  • Backup System: Automated daily backups
  • Monitoring: Server and application monitoring

Development Workflow Tools - 🚧 PARTIALLY CONFIGURED

Version Control - OPERATIONAL

  • Git: Version control system (configured)
  • Gitea: Self-hosted Git service with Actions (.gitea/workflows configured)
  • Git Flow: Branching strategy for organized development (main branch active)

Project Management - CONFIGURED

  • TASKS.md: Task tracking using markdown checkboxes (comprehensive)
  • PLANNING.md: This document for project planning (updated)
  • CLAUDE.md: Development guide for AI assistance (detailed)

Testing Tools - NOT IMPLEMENTED

  • Vitest: Unit testing for frontend (not configured)
  • PHPUnit: Unit testing for WordPress/PHP (not configured)
  • Playwright: End-to-end testing (not configured)
  • GraphQL testing tools: For API validation (not configured)

⚙️ Configuration & Deployment

Environment Variables

# WordPress/Nuxt Integration - ✅ CONFIGURED
NUXT_GRAPHQL_ENDPOINT="https://wp.cultureat.ca/graphql"  # WordPress GraphQL endpoint
NUXT_SESSION_PASSWORD=     # JWT authentication secret (configured)
NUXT_HUB_PROJECT_KEY=      # NuxtHub project reference (configured)

# Third-party Services - ⏳ PENDING IMPLEMENTATION
MAILCHIMP_API_KEY=       # Mailchimp integration (not implemented)
STRIPE_SECRET_KEY=       # Stripe payments (not implemented)
STRIPE_PUBLISHABLE_KEY=  # Stripe public key (not implemented)
AIRTABLE_API_KEY=        # AirTable import key (not implemented)

Useful Commands (Current Implementation)

# Development - ✅ WORKING
pnpm dev:nuxt            # Start Nuxt dev server --host (configured)
pnpm build:typecheck     # Check for TypeScript errors (working)
pnpm build:nuxt          # Build Nuxt for production (working)
pnpm lint                # ESLint with --fix (working)
composer install         # Install WordPress plugins (working)
git push origin main     # Deploy via Gitea Actions (configured)

# WordPress - ✅ WORKING
composer update          # Update plugin dependencies (working)
wp-cli commands          # WordPress CLI available

# Additional Available Commands
pnpm deploy              # NuxtHub deployment
pnpm preview             # NuxtHub preview
pnpm postinstall:nuxt    # Nuxt preparation

Deployment Configuration - CONFIGURED

  • CI/CD: Gitea Actions configured for push-to-deploy
  • Hosting: NuxtHub integration with Cloudflare Workers
  • Domain: cultureat.ca configured in nuxt.config.ts
  • SSL: Required and configured for secure authentication
  • Build System: Optimized for production with Nitro preset

Implementation Specifics

File Structure Analysis - IMPLEMENTED

wp-content/themes/ccat/
├── acf-json/              # 25+ ACF field groups (212KB total)
├── app/                   # Nuxt 4 application
│   ├── components/        # 7 directories, organized by function
│   ├── composables/       # 7 composables (3 stubs need completion)
│   ├── graphql/           # 5 GraphQL operations
│   └── pages/             # 4 pages (member-focused + dynamic routing)
├── includes/              # WordPress PHP logic
│   ├── cpt/               # 9 Custom Post Types (all implemented)
│   ├── taxonomies/        # 4 Custom Taxonomies (all implemented)
│   └── graphql/           # Custom GraphQL extensions
├── server/                # Nuxt server directory
│   └── schema.graphql     # 866KB generated schema
└── package.json           # 18 dependencies, 4 dev dependencies

Critical Technical Debt Identified

  1. Member Composables: useMemberSignup.ts and useMemberArea.ts are 49-byte stubs
  2. Footer Implementation: TheSiteFooter.vue shows "TODO" - needs top section content
  3. Site Navigation: Header/navigation fully implemented with responsive design
  4. Integration Gaps: No third-party service integrations (Mailchimp, Stripe, AirTable)
  5. Testing Coverage: Zero test files found in entire project

📋 Development Phases & Milestones

Phase 1: Foundation (Months 1-3)

Goal: Establish core architecture and basic functionality

  • WordPress theme with Nuxt 4 integration
  • Authentication system with JWT
  • Content structure (CPTs, taxonomies, ACF fields)
  • Basic GraphQL API functionality

Phase 2: Core Features (Months 4-6)

Goal: Implement primary user-facing features

  • Member registration and profile management
  • Event system with calendar integration
  • Content management with flexible layouts
  • Site navigation and global components

Phase 3: Advanced Features (Months 7-9)

Goal: Add premium features and integrations

  • Payment processing (Stripe integration)
  • Email marketing (Mailchimp integration)
  • Event subscription system
  • Admin tools and user impersonation

Phase 4: Enhancement & Launch (Months 10-12)

Goal: Polish, optimize, and prepare for production

  • Performance optimization
  • Security audit and testing
  • Content import from existing systems
  • User training and documentation

🎨 User Experience Strategy

Target User Groups

  1. Cultural Artists: Individual artists showcasing work and finding opportunities
  2. Cultural Organizations: Groups promoting events and managing memberships
  3. Community Members: Residents interested in cultural activities
  4. CCAT Staff: Administrators managing the platform and content
  5. Event Organizers: People creating and promoting cultural events

User Journey Design

  • Discovery: Easy browsing of events and cultural profiles
  • Engagement: Simple registration and profile creation
  • Participation: Event subscription and community interaction
  • Contribution: Content creation and profile management
  • Administration: Streamlined content moderation and user management

Accessibility Commitments

  • WCAG 2.1 AA Compliance: Meet accessibility standards
  • Mobile-First Design: Optimal experience on all devices
  • Performance: Fast loading times even on slow connections
  • Multilingual Support: Prepared for French/English localization
  • Inclusive Design: Consider diverse user needs and abilities

🔐 Security & Privacy Considerations

Data Protection

  • GDPR Compliance: Handle personal data responsibly
  • User Consent: Clear opt-ins for email and data collection
  • Data Minimization: Collect only necessary information
  • Right to Deletion: Allow users to delete their accounts

Security Measures

  • Authentication: JWT tokens with proper expiration
  • Authorization: Role-based access control
  • Input Validation: Sanitize all user inputs
  • API Security: Rate limiting and proper error handling
  • Regular Updates: Keep all plugins and core systems updated

Privacy Features

  • Profile Visibility: User control over profile information
  • Email Preferences: Granular email subscription controls
  • Content Ownership: Clear guidelines for user-generated content
  • Admin Transparency: Clear communication about moderation policies

📊 Analytics & Success Measurement

Key Performance Indicators (KPIs)

  • User Engagement: Active users, session duration, page views
  • Content Creation: Number of profiles, events, and user posts
  • Event Participation: Event views, subscriptions, and attendance
  • Community Growth: New registrations and profile completions
  • Technical Performance: Page load times, uptime, error rates

Analytics Implementation

  • Privacy-Focused: Use privacy-respecting analytics tools
  • User Behavior: Track user flows and feature usage
  • Performance Monitoring: Real-time application performance
  • Content Analytics: Most popular content and search terms

🚀 Launch Strategy

Pre-Launch Preparation

  • Content Migration: Import existing cultural data
  • User Training: Staff and power user training sessions
  • Beta Testing: Limited release to core community members
  • Documentation: Complete user and admin guides
  • Marketing Materials: Prepare launch communications

Launch Phases

  1. Soft Launch: Limited user base, gather feedback
  2. Community Launch: Open to cultural organizations
  3. Public Launch: Full public availability
  4. Post-Launch: Monitor, support, and iterate

Success Criteria for Launch

  • Technical Stability: No critical bugs or performance issues
  • User Adoption: Target number of registered profiles
  • Content Quality: Sufficient content for engaging experience
  • User Satisfaction: Positive feedback from beta users
  • Admin Readiness: Staff comfortable with platform management

📊 Current Implementation Status

Overall Project Progress: ~65% Complete

Completed Infrastructure

  • WordPress Theme Structure: Complete Nuxt 4 integration within WordPress theme
  • Content Management: 9 Custom Post Types, 4 Taxonomies, 25+ ACF field groups
  • GraphQL API: Comprehensive 866KB schema with all content types exposed
  • Authentication: JWT-based system with role management and impersonation
  • Core Components: Node components for major content types, basic sections system
  • Development Environment: Full toolchain with TypeScript, ESLint, build scripts

🚧 In Progress Components

  • Member Management: Pages exist, but composables are stubs requiring completion
  • Site Structure: Header/navigation complete, footer needs top section implementation
  • Event System: CPTs ready, but calendar and mapping integration needed
  • Content Sections: Basic system works, needs expansion of section types

Pending Integrations

  • Third-party Services: Mailchimp, Stripe, AirTable integrations not implemented
  • Advanced Features: Event subscriptions, premium memberships, admin tools
  • Performance: Optimization, caching, and production readiness
  • Testing: Comprehensive testing suite and quality assurance

🔥 Critical Next Steps

  1. Complete Member Area - Finish useMemberSignup and useMemberArea composables (currently 49-byte stubs)
  2. Event Calendar Integration - Implement Leaflet maps and calendar components
  3. Event-Representation Integration - Display event instances via Event pages (backend relation)
  4. Footer Top Section - Complete TheSiteFooter.vue implementation (currently shows "TODO")

📈 Future Roadmap

Post-Launch Enhancements (Year 1)

  • Advanced Search: Enhanced filtering and search capabilities
  • API Expansion: Public API for third-party integrations
  • Analytics Dashboard: Advanced reporting for admins

Long-Term Vision (Years 2-3)

  • AI Features: Content recommendations and smart matching

Document Status: Living document, updated regularly Last Updated: September 25, 2025 - Comprehensive status analysis completed Current Phase: Phase 2 (Core Features) - 70% complete Next Review: Completion of site components and member management systems Critical Blocker: Site components (header/footer/nav) must be completed before user testing


This planning document serves as the north star for the CCAT project. All development decisions should align with the vision and principles outlined here.