π¬ Simulate:
Certificate Management
Search / Filter
Certificate List
| # | Learner Name | Course Name | Institution | Issue Date | Status | |
|---|---|---|---|---|---|---|
| 1 | John Smith | Python Basics | NUOL | 01 Jan 2026 | issued | |
| 2 | Jane Doe | Data Science Fundamentals | UDL | 15 Feb 2026 | revoked | β |
| 3 | Bob Johnson | AI for Everyone | NUOL | 20 Mar 2026 | issued | |
| 4 | Alice Brown | Data Analysis with Excel | UDL | 05 Apr 2026 | issued |
Showing 4 certificates
Screen Flow (from flow.puml):
π Spec notes β UC-LMS.20 / SCR-LMS.54 + SCR-LMS.55 (embedded dialog)
Identity
- Screen: SCR-LMS.54 β Certificate Management
- Use case: UC-LMS.20 β Revoke Learner Certificate
- Primary actor: ACT-04 Super Administrator
Brief description
Lists all certificates issued to learners system-wide. Super Admin uses this page to search, filter, and select a certificate to revoke before proceeding to the confirmation dialog (SCR-LMS.55). Table is sorted newest-to-oldest by issue date by default.
Fields (SCR-LMS.54)
search_learner"Search by Learner Name" β text Β· data_ref: null Β· always Β· not requiredsearch_course"Search by Course Name" β text Β· data_ref: null Β· always Β· not requiredfilter_status"Status" β enum [all, issued, revoked] Β· data_ref: Enrollment.certificate_status Β· default: alllearner_name"Learner Name" β text Β· data_ref: LearnerProfile.full_name (cross-module IDP) Β· read-onlycourse_title"Course Name" β text Β· data_ref: Course.title Β· read-onlyinstitute_name"Institution" β text Β· data_ref: Institute.name (cross-module IDP) Β· read-onlycertificate_issued_date"Issue Date" β date Β· data_ref: Enrollment.certificate_issued_date Β· read-only Β· sort default: DESCcertificate_status"Status" β enum [issued, revoked] Β· data_ref: Enrollment.certificate_status Β· read-onlycertificate_revoked_date"Revocation Date" β date Β· visible when row.certificate_status == revoked Β· data_ref: Enrollment.certificate_revoked_date β gap field β pending /analyze-entities
Actions (SCR-LMS.54)
search"Search" β enabled: always Β· triggers UC-LMS.20-M-1revoke_row"Revoke" (per row) β enabled when row.certificate_status == issued Β· triggers UC-LMS.20-M-3
Additional requirements (SCR-LMS.54)
- Table sorted newest-to-oldest by certificate_issued_date by default
- Display empty state "No certificates found matching the search criteria" with guidance when result set is empty (per UC-LMS.20 additional requirement #3)
- The "Revoke" action button is shown only for rows where certificate_status = issued; rows with revoked status do not display this button
β³ Embedded dialog: SCR-LMS.55 β Revoke Certificate Confirmation Dialog
Fields (SCR-LMS.55)
learner_name"Learner Name" β text Β· read-only Β· pre-populated from SCR-LMS.54 row Β· data_ref: LearnerProfile.full_name (cross-module IDP)course_title"Course Name" β text Β· read-only Β· pre-populated Β· data_ref: Course.titlecertificate_issued_date"Issue Date" β date Β· read-only Β· pre-populated Β· data_ref: Enrollment.certificate_issued_daterevoke_reason"Revocation Reason" β textarea Β· required Β· max 500 chars Β· data_ref: Enrollment.certificate_revoke_reason β gap field β pending /analyze-entities
Actions (SCR-LMS.55)
confirm_revoke"Confirm Revoke" β enabled when required_fields_valid Β· triggers UC-LMS.20-M-5cancel"Cancel" β enabled: always Β· data-bs-dismiss="modal" Β· triggers UC-LMS.20-A-4A-1
Additional requirements (SCR-LMS.55)
- Dialog must display a prominent warning that the revocation action cannot be undone
- Certificate Details fields are pre-populated from the selected row and cannot be edited in the dialog
data-bs-backdrop="static" data-bs-keyboard="false" β not dismissible by Escape / click outside