> ## Documentation Index
> Fetch the complete documentation index at: https://memberpulseptyltd.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# UJ-M-015: Track CPD Progress

> Member monitors their CPD points and compliance status

## Journey Overview

| Attribute      | Value                                                |
| -------------- | ---------------------------------------------------- |
| **Journey ID** | UJ-M-015                                             |
| **Actor**      | Member                                               |
| **Goal**       | Monitor CPD progress toward requirements             |
| **Trigger**    | Member wants to check CPD status                     |
| **Outcome**    | Member understands their CPD position and compliance |

## Preconditions

* Member has active membership
* CPD tracking enabled for organization
* CPD requirements configured

## Journey Flow

```mermaid theme={null}
flowchart TD
    A[Navigate to CPD] --> B[View CPD Dashboard]
    B --> C[Check overall progress]
    C --> D{View details?}
    D -->|Summary| E[Review totals by category]
    D -->|History| F[Browse CPD records]
    D -->|Requirements| G[View requirements breakdown]
    E --> H{Need more points?}
    F --> H
    G --> H
    H -->|Yes| I[Find CPD opportunities]
    H -->|No| J[Compliance confirmed]
    I --> K[Register for events/courses]
```

## Detailed Steps

<Steps>
  <Step title="Access CPD Dashboard">
    Member navigates to CPD section:

    * Member Portal → CPD menu
    * Dashboard → CPD widget click-through
    * Profile → CPD tab
  </Step>

  <Step title="View Summary Dashboard">
    CPD dashboard overview:

    ```
    ┌─────────────────────────────────────────────────────────────┐
    │ CPD Dashboard - 2025                                        │
    ├─────────────────────────────────────────────────────────────┤
    │                                                             │
    │   TOTAL PROGRESS                     STATUS                 │
    │   ┌──────────────────┐               ┌────────────────┐     │
    │   │ [██████████░░░░] │               │ ✅ ON TRACK    │     │
    │   │   32 / 40 points │               │                │     │
    │   │      80%         │               │ 8 points       │     │
    │   └──────────────────┘               │ remaining      │     │
    │                                      └────────────────┘     │
    │                                                             │
    │   BY CATEGORY                                               │
    │   ┌─────────────────────────────────────────────────────┐   │
    │   │ Technical Skills      ████████░░  16/20 pts         │   │
    │   │ Professional Dev      ██████████  10/10 pts  ✅     │   │
    │   │ Ethics & Compliance   ██████░░░░   6/10 pts         │   │
    │   └─────────────────────────────────────────────────────┘   │
    │                                                             │
    │   DEADLINE: December 31, 2025 (285 days remaining)          │
    │                                                             │
    └─────────────────────────────────────────────────────────────┘
    ```
  </Step>

  <Step title="Review Requirements">
    Requirements breakdown:

    | Category                 | Required | Earned | Status       |
    | ------------------------ | -------- | ------ | ------------ |
    | Technical Skills         | 20       | 16     | 4 needed     |
    | Professional Development | 10       | 10     | ✅ Complete   |
    | Ethics & Compliance      | 10       | 6      | 4 needed     |
    | **Total**                | **40**   | **32** | **8 needed** |

    **Notes:**

    * Some categories have minimum requirements
    * Excess points may or may not carry over
    * Deadline clearly displayed
  </Step>

  <Step title="Browse CPD History">
    View all CPD records:

    ```
    ┌─────────────────────────────────────────────────────────────┐
    │ CPD History                                                 │
    ├─────────────────────────────────────────────────────────────┤
    │ Filter: [All Categories ▼] [2025 ▼] [All Sources ▼]        │
    ├─────────────────────────────────────────────────────────────┤
    │                                                             │
    │ Mar 15, 2025                                                │
    │ ┌─────────────────────────────────────────────────────────┐ │
    │ │ 📚 Advanced Leadership Course                           │ │
    │ │ Source: Course | Category: Professional Dev             │ │
    │ │ Points: 8 | Status: ✅ Approved                         │ │
    │ │ [View Certificate]                                      │ │
    │ └─────────────────────────────────────────────────────────┘ │
    │                                                             │
    │ Mar 10, 2025                                                │
    │ ┌─────────────────────────────────────────────────────────┐ │
    │ │ 🎫 Annual Conference 2025                               │ │
    │ │ Source: Event | Category: Technical Skills              │ │
    │ │ Points: 6 | Status: ✅ Approved                         │ │
    │ │ [View Certificate]                                      │ │
    │ └─────────────────────────────────────────────────────────┘ │
    │                                                             │
    │ Feb 28, 2025                                                │
    │ ┌─────────────────────────────────────────────────────────┐ │
    │ │ 📝 External Workshop - Risk Management                  │ │
    │ │ Source: Manual | Category: Technical Skills             │ │
    │ │ Points: 4 | Status: ⏳ Pending Approval                 │ │
    │ │ [View Details]                                          │ │
    │ └─────────────────────────────────────────────────────────┘ │
    │                                                             │
    │ [Load More]                                                 │
    └─────────────────────────────────────────────────────────────┘
    ```
  </Step>

  <Step title="Filter and Search">
    Filter options:

    **By Category:**

    * All categories
    * Specific CPD category

    **By Year:**

    * Current year
    * Previous years
    * Custom date range

    **By Source:**

    * Events (auto-awarded)
    * Courses (auto-awarded)
    * Manual submissions
    * External activities

    **By Status:**

    * Approved
    * Pending
    * Rejected
  </Step>

  <Step title="View Record Details">
    Click into individual record:

    | Field       | Value                  |
    | ----------- | ---------------------- |
    | Activity    | Annual Conference 2025 |
    | Date        | March 10, 2025         |
    | Source      | Event Attendance       |
    | Category    | Technical Skills       |
    | Points      | 6                      |
    | Status      | Approved               |
    | Certificate | \[Download]            |
    | Evidence    | Attendance record      |
    | Approved By | System (auto)          |
    | Approved On | March 10, 2025         |
  </Step>

  <Step title="Find CPD Opportunities">
    If needing more points:

    **Quick Links:**

    * Upcoming events with CPD points
    * Courses with CPD certification
    * Log external CPD activity

    **Recommendations:**

    * Suggested based on categories needed
    * Filtered by deadline feasibility
    * Sorted by points per effort
  </Step>
</Steps>

## CPD Compliance Statuses

| Status   | Description                 | Visual            |
| -------- | --------------------------- | ----------------- |
| Complete | Met all requirements        | ✅ Green badge     |
| On Track | Projected to complete       | 🟢 Green progress |
| At Risk  | Falling behind pace         | 🟡 Yellow warning |
| Behind   | Unlikely to meet deadline   | 🔴 Red alert      |
| Overdue  | Deadline passed, incomplete | ❌ Non-compliant   |

## Notifications

Members receive alerts:

| Trigger             | Notification                                |
| ------------------- | ------------------------------------------- |
| Points earned       | "You earned X CPD points"                   |
| Category complete   | "You've met Technical Skills requirements"  |
| 90 days to deadline | "Reminder: X points needed by deadline"     |
| 30 days to deadline | "Urgent: Complete CPD by \[date]"           |
| Non-compliant       | "Action required: CPD requirements not met" |

## Related Entities

* [`CPD Record`](/entities/core/cpd-record)
* [`CPD Category`](/entities/core/cpd-category)

## Related Journeys

* [UJ-M-016](/member/journeys/log-cpd)
* [UJ-M-017](/member/journeys/export-cpd)
* [UJ-M-014](/member/journeys/complete-course)

## Acceptance Criteria

### Frontend

* [ ] CPD dashboard with visual progress
* [ ] Progress bars per category
* [ ] Compliance status indicator
* [ ] CPD history list with filters
* [ ] Record detail view
* [ ] Certificate download links
* [ ] CPD opportunities section
* [ ] Mobile-responsive design

### Backend

* [ ] `GET /api/member/cpd/summary` - Dashboard data
* [ ] `GET /api/member/cpd/records` - CPD history
* [ ] `GET /api/member/cpd/records/{id}` - Record details
* [ ] `GET /api/member/cpd/requirements` - Requirements config
* [ ] `GET /api/member/cpd/opportunities` - Suggested activities

### Permissions

* [ ] Members can only view their own CPD data

### Business Rules

* [ ] Progress calculated against current period
* [ ] Category minimums enforced
* [ ] Auto-awarded points appear immediately
* [ ] Pending points shown but not counted

### Error Handling

* [ ] Empty state for no CPD records
* [ ] Clear message if CPD not enabled
