Course Structure
Content Types
Course Settings
- Access: Free, paid, member-only
- Duration: Estimated completion time
- CPD Points: Points awarded on completion
- Pass Score: Minimum quiz score (default: 70%)
- Certificate: Enable/disable certification
UI Spec (from supplied spreadsheet)
The following field inventory is sourced fromworkspace/sources/entity-registry.csv (“Courses”).
This is a UI/requirements inventory (not the ERD). Some rows describe UI behavior (e.g. limits) rather than canonical storage.
Course fields
Acceptance Criteria
Frontend
- Course fields workflow is implemented in the UI as described.
Backend / API
- Backend behavior supports Course fields 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.
Subject / quiz fields
Data Model Cross‑Reference (Entities)
- Course definition + embedded subject structure:
Course - Member enrollment + progress:
Course Enrollment - Paid course purchases / invoices / receipts:
Payment Transaction - Sponsors:
Sponsorship - CPD:
CPD RecordandCPD Category
Acceptance Criteria
Frontend
- Subject / quiz fields workflow is implemented in the UI as described.
Backend / API
- Backend behavior supports Subject / quiz fields 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.
Features
Course Creation
Acceptance Criteria
Frontend
- UI supports the workflows described in this feature.
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.