upskill-event-manager/docs/implementation_plan.md

6.7 KiB

Implementation Plan: Phase 1 & 2 Features

This document outlines the implementation plan for Phase 1 & 2 features of the HVAC Community Events Management System.

Goal

Implement Phase 1 features: Community Login Page, Registration Page, Basic Dashboard, Create/Modify Event Pages, Event Summary Page. Implement Phase 2 features: Zoho CRM API Integration, Email Attendees functionality, Enhanced event management, and Comprehensive transaction reporting.

Tasks

  • Phase 1: Core Functionality

    • 1. Implement Community Registration Page

      • 1.1. Create a custom registration form with the required fields as specified in docs/REQUIREMENTS.md.
      • 1.2. Implement input validation and sanitization as specified in docs/REQUIREMENTS.md.
      • 1.3. Implement logic to create a new user with the "hvac_trainer" role.
      • 1.4. Implement logic to create a Training Venue Profile if the user selects "Yes".
      • 1.5. Implement logic to add custom fields to the user's profile, including mapping to The Events Calendar organizer fields.
      • 1.6. Implement email notification to admin upon new registration.
      • 1.7. Add unit tests for registration form validation.
      • 1.8. Add integration tests to verify user creation, profile updates, and organizer mapping.
    • 2. Implement Community Login Page

      • 2.1. Create a custom login form.
      • 2.2. Implement authentication logic.
      • 2.3. Implement "Remember me" option.
      • 2.4. Implement password reset functionality.
      • 2.5. Redirect to Trainer Dashboard after successful login.
      • 2.6. Add unit tests for authentication logic.
      • 2.7. Add integration tests to verify login and redirection.
    • 3. Implement Trainer Dashboard

      • 3.1. Create a custom dashboard page.
      • 3.2. Add navigation buttons for Create Event, View Trainer Profile, and Logout.
      • 3.3. Implement Overall Statistics Summary (Total events, Upcoming events, Past events, Tickets sold, Revenue generated) as specified in docs/REQUIREMENTS.md.
      • 3.4. Implement Events Table with Event Status, Event name, Event date, Event organizer, Total capacity, Tickets sold, and Total revenue as specified in docs/REQUIREMENTS.md.
      • 3.5. Add sorting/filtering capabilities to the Events Table.
      • 3.6. Add unit tests for dashboard statistics calculations.
      • 3.7. Add integration tests to verify dashboard data is displayed correctly.
    • 4. Implement Create/Modify Event Pages

      • 4.1. Create custom event creation and modification pages.
      • 4.2. Leverage functionality from The Events Calendar Community Events plugin.
      • 4.3. Add instructions section to the pages.
      • 4.4. Add Return to Dashboard button.
      • 4.5. Add unit tests for event creation and modification logic.
      • 4.6. Add integration tests to verify events are created and modified correctly in The Events Calendar.
    • 5. Implement Event Summary Page

      • 5.1. Create a custom event summary page.
      • 5.2. Display Event Details (Time & Date, Location, Organizers, Tickets information, Event description).
      • 5.3. Implement Transactions Table with Purchaser Name, Purchaser Organization, Purchase Date/Time, Number of Tickets, and Total Revenue.
      • 5.4. Add unit tests for event summary data retrieval.
      • 5.5. Add integration tests to verify event summary data is displayed correctly.
  • Phase 2: Enhanced Features

    • 1. Implement Zoho CRM API Integration

      • 1.1. Research Zoho CRM API and identify relevant endpoints.
      • 1.2. Create a Zoho CRM API client class in PHP.
      • 1.3. Implement authentication with Zoho CRM API.
      • 1.4. Implement function to create records for each training event in the "Campaigns" table.
      • 1.5. Implement function to update each Campaign record with ticket sales, attendance & certificate activities.
      • 1.6. Create settings page to configure Zoho CRM API credentials.
      • 1.7. Add unit tests for Zoho CRM API client class.
      • 1.8. Add integration tests to verify data is synced to Zoho CRM.
    • 2. Implement Email Attendees Functionality

      • 2.1. Create an "Email Attendees" page in the trainer dashboard.
      • 2.2. Add filtering options for event selector, ticket type, and attendee filter.
      • 2.3. Implement a rich-text editor for email body.
      • 2.4. Add CC field and subject line.
      • 2.5. Implement function to send emails to selected attendees.
      • 2.6. Add unit tests for email sending functionality.
      • 2.7. Add integration tests to verify emails are sent correctly.
    • 3. Implement Enhanced Event Management

      • 3.1. Review existing event management features and identify areas for enhancement.
      • 3.2. Implement new features based on trainer feedback and requirements. (Details TBD)
      • 3.3. Add unit tests for new event management features.
      • 3.4. Add integration tests to verify new features work correctly with The Events Calendar.
    • 4. Implement Comprehensive Transaction Reporting

      • 4.1. Create an "Order Summary" page with basic details.
      • 4.2. Display order number, purchaser name and email, date of purchase, number of tickets, and total price.
      • 4.3. Display attendee information for each ticket purchased.
      • 4.4. Add filtering and sorting capabilities to the transaction table.
      • 4.5. Add unit tests for transaction reporting functionality.
      • 4.6. Add integration tests to verify transaction data is displayed correctly.

Testing and Deployment

  • Development Environment: All development and testing should be performed within the Docker-based development environment as described in the wordpress-dev directory.
  • Production Data: The production website should only be accessed to download all of the production server data as a reference and to import into the dev server so that the dev server environment mirrors the production server.
  • Testing:
    • Unit Tests: Use PHPUnit to test individual classes and functions.
    • Integration Tests: Use WordPress testing framework to test integration with WordPress and The Events Calendar.
    • E2E Tests: Use Playwright to test user journeys and UI interactions.
  • Deployment: Follow the configuration-based deployment process outlined in docs/deployment.md.

Status

  • Not Started
  • In Progress
  • Complete