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.
- 1.1. Create a custom registration form with the required fields as specified in
-
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-devdirectory. - 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