Spreadsheet intent cross-check
The supplied spreadsheet indicates that:- Courses and Events both support selecting CPD Category (
cpdCategories). - Membership plans may specify required CPD points (spreadsheet:
MembershipPlan.requiredCpdPoints).
Data Model Cross‑Reference (Entities)
- CPD categories:
CPD Category - Member CPD records / awarded points:
CPD Record - Plan-level CPD requirement:
Membership Plan
Capabilities
Features
CPD Categories
Define categories for different types of professional development:1
Create Category
Add a new CPD category with name and description.Examples:
- Technical Skills
- Professional Ethics
- Leadership Development
- Industry Knowledge
2
Set Requirements
Configure required points per calendar year for each category.
- Points must be greater than 0
- Points must be divisible by 0.5
- Set if category is required for certification
3
Configure Display
Set display order and whether category is active.
Acceptance Criteria
Frontend
- CPD categories list with CRUD operations
- Member CPD summary view
- Drag-and-drop category reordering
- Requirements configuration per category
- Bulk approve/reject functionality
Backend / API
- Backend behavior supports this feature as documented.
Permissions
- Access is restricted per the Capabilities matrix on this page (or equivalent role rules).
Business Rules
- Category names must be unique per organization
- At least one category must be marked as required for certification
- Cannot delete category with existing member records
- Rejected submissions can be resubmitted by member
Error Handling
- Error states return clear messages and appropriate HTTP status codes.
Point Assignment Rules
Configure how points are automatically assigned:- Events
- Courses
- Manual Entry
- Set default CPD points per event
- Override points for specific events
- Points awarded on attendance confirmation
Acceptance Criteria
Frontend
- Points allocation rules interface
- Validation for point values (0.5 increments)
Backend / API
- Backend behavior supports this feature as documented.
Permissions
- Access is restricted per the Capabilities matrix on this page (or equivalent role rules).
Business Rules
- Required points must be > 0 and divisible by 0.5
- Points are assigned to the calendar year of the activity date
Error Handling
- Error states return clear messages and appropriate HTTP status codes.
Approval Workflow
For manually submitted CPD:- Member submits CPD claim with evidence
- Claim appears in approval queue
- Admin reviews submission
- Approve or reject with reason
- Member notified of decision
- Points added to member’s record (if approved)
Acceptance Criteria
Frontend
- Approval queue with filtering
Backend / API
- Backend behavior supports this feature as documented.
Permissions
- Access is restricted per the Capabilities matrix on this page (or equivalent role rules).
Business Rules
- All business rules for this feature are enforced.
Error Handling
- Error states return clear messages and appropriate HTTP status codes.
Export CPD Records
Client admins often need to export CPD data for annual audits/compliance reporting. Export capabilities:- Export member CPD summary (per member totals by year and category)
- Export raw CPD records (event/course/manual) with approvals and evidence links
- Filter by date range, category, member, and status
Acceptance Criteria
Frontend
- CPD export action exists from the CPD admin area.
- Export can be filtered (year/date range, category, member, status) before generating.
- Export formats include CSV (minimum) and optionally Excel.
Backend / API
- Exports are generated server-side and returned as a downloadable file.
Permissions
- Only
ROLE_CLIENT_ADMIN(and permittedROLE_CLIENT_USERroles if enabled) can export CPD data.
Business Rules
- Export respects tenant isolation and only includes the client’s members.
Error Handling
- Large exports either stream or generate asynchronously with progress/error feedback.