upskill-event-manager/docs/implementation_plan.md

104 lines
No EOL
6.7 KiB
Markdown

# 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