[Proposal]: Course-level Certificate Builder for Open edX Studio

[Proposal]: Course-level Certificate Builder for Open edX Studio

 

GitHub issue: https://github.com/openedx/platform-roadmap/issues/505

Overview

Certificate customization in Open edX platform requires developer intervention for even minor visual changes, creating delays and limiting institutions' ability to maintain brand consistency or respond to evolving requirements. The Course-level Certificate Builder introduces a visual, administrator-friendly interface for designing and configuring certificates – empowering course teams to create professional, customized certificates independently, while reducing technical debt by replacing custom code-level certificate implementations with a standardized, UI-driven approach – eliminating the need for per-institution developer maintenance.

Problem

Certificate management in Open edX platform presents significant operational and technical barriers for course authors and administrators. While certificates are a critical component of learner credentialing, the existing system lacks a user-friendly interface for designing, customizing, and managing certificate templates directly within the platform.

Key pain points include:

  • Limited customization capabilities: Course authors cannot easily create or modify certificate designs without developer intervention. Simple changes – such as updating logos, adjusting layouts, or modifying text positioning – require code-level template editing, creating bottlenecks and delays.

  • Lack of visual design tools: Unlike comparable platforms that provide visual certificate editors, Open edX platform offers no intuitive interface for template creation. Authors must work with underlying template code which increasing complexity and limiting adoption by non-technical users.

  • Inflexible dynamic field management: Inserting and formatting dynamic learner data (names, completion dates, grades) requires technical knowledge of template syntax. There is no standardized way to preview how these fields will render or to adjust their formatting without iterating through code changes.

  • Inefficient publishing workflow: Certificate updates are decoupled from the standard course publishing process, making version control and template management cumbersome. Authors lack visibility into template status (draft vs. published) and version history.

This creates a compounding maintenance burden across the ecosystem. Collectively, these constraints force institutions into maintaining custom, code-level certificate implementations – each requiring ongoing developer effort for updates and fixes. This accumulates significant technical debt across the ecosystem and increases the long-term maintenance overhead for every organization running Open edX. These limitations prevent Open edX from meeting the evolving credentialing needs of diverse educational institutions – from universities requiring formal academic certificates to corporate training programs needing branded completion credentials.

Use Cases

Template creation (Studio, Certificates page)

User Story

Acсeptance Criteria

User Story

Acсeptance Criteria

As a course author, I need to create a new course certificate template directly in Studio

in order to design certificates without relying on the old functionality.

  • System allows creation of a new blank course certificate template in Studio.

  • Template is stored as a draft until explicitly published.

  • Drafts are saved automatically with versioning.

  • Template appears in the course’s Certificate Templates list.

As a course author, I need to choose page layout settings (size, orientation, margins) in order to control the certificate’s format.

  • System provides predefined sizes (A4, Letter).

  • System supports portrait and landscape orientation.

  • System stores layout settings in the template metadata.

  • Preview updates layout immediately after changes.

  • Published template preserves defined layout in generated PDF.

As a course author, I need to upload branded assets (logos, seals, signatures) in order to brand the certificate.

  • System supports uploading image files (PNG/JPG/SVG).

  • Uploaded assets are stored in a course-specific media store.

  • System validates max file size and allowed formats.

  • Images can be placed anywhere within the template canvas.

As a course author, I need to drag and position elements on the certificate canvas in order to visually construct the layout.

  • Elements can be placed anywhere within the page boundaries.

  • System stores coordinates and dimensions of each element.

  • System prevents placing elements outside of canvas.

  • Preview renders all positioned elements exactly as placed.

As a course author, I need to preview my certificate design in Studio

in order to verify how it will look before publishing.

  • System generates a real-time preview using either placeholder or sample data.

  • Preview respects all layout settings and element positions.

  • System generates a PDF/HTML preview on request.

  • Preview shows warnings for missing dynamic fields.

  • No draft template can be published if required fields are missing.

Dynamic Fields and Course data

User Story

Acсeptance Criteria

User Story

Acсeptance Criteria

As a course author, I need to insert dynamic fields (learner name, course title, completion date, mode, grade)

in order to personalize certificates automatically.

  • System provides a set of dynamic fields (learner name, course title, completion date, mode, grade).

  • Dynamic fields appear visually as tokens or placeholders.

  • System validates that each inserted field matches a known LMS variable.

  • System substitutes tokens with learner-specific values during certificate generation.

  • System captures a snapshot of field values at the time of certificate generation. Generated certificates are not affected by subsequent changes to source data in the LMS.

  • Missing LMS values trigger fallback fields or error logs.

As a course author, I need to define variable formatting (date format, font size, alignment)

in order to ensure consistent visual style across certificates.

  • System replaces tokens with sample data (e.g., “Jane Doe”).

  • System provides toggle between “design preview” and “sample data preview”.

  • PDF preview uses sample values.

  • Preview warns if sample data cannot be rendered.

  • Dynamic rendering does not alter stored template schema.

Course-level certificate assignment

User Story

Acсeptance Criteria

User Story

Acсeptance Criteria

As a course author, I need to assign a template to my course in order to specify which design will be used.

  • Certificates page displays all available certificate-templates for the course.

  • Only one active certificate template can be assigned per mode.

  • Assigned template applies to newly generated certificates.

  • System prevents assigning drafts that are not published.

  • Changes to assigned template require republishing the course.

As a course author, I need to configure issuance conditions (passing score, completed subsections, graded components)

in order to ensure certificates are only awarded when requirements are met.

  • System allows selection of completion triggers (e.g., passing grade, module completion).

  • Conditions are stored at the course level.

  • Learners only receive certificates after all conditions are met.

  • Changes to conditions do not revoke existing certificates.

Certificate publishing workflow

User Story

Acсeptance Criteria

User Story

Acсeptance Criteria

As a course author, I need to publish certificate updates as part of course publishing

in order to activate them for production use.

  • System includes certificate template status in the course publish workflow.

  • Only published templates appear in learner-facing certificates.

  • Publishing generates a version tag for tracking.

  • Any unsaved changes must be confirmed or discarded before publishing.

  • System logs certificate publishing events.

As a course author, I need to maintain a draft version of my certificate template while keeping the published version active,

in order to iterate on the design without affecting live learners.

  • System maintains one draft and one published version per enrollment mode.

  • Draft cannot affect existing certificates.

  • Deactivating a template does not delete past certificates.

  • Draft changes are timestamped and attributed to the author.

As a course author, I need the system to version my certificate templates

in order to track changes and revert to older versions if needed.

  • System assigns a version number to each published template.

  • Authors can view version history.

  • Authors can revert to a previous version.

  • Reversion does not modify certificates already generated.

  • Version metadata includes user, date, and changes summary.

Learner experience

User Story

Acсeptance Criteria

User Story

Acсeptance Criteria

As a learner, I need the system to automatically generate a personalized certificate once I meet requirements

in order to receive proof of completion without instructor approval.

  • System triggers certificate generation when all completion criteria are met.

  • Generation uses the active template assigned to the learner’s mode.

  • Certificate PDF is stored and accessible via dashboard.

  • Errors in generation trigger retry logic and event logs.

  • Learner sees certificate availability immediately after success.

  • If source data changes after issuance (e.g. name update, regrade), the certificate must be regenerated to reflect updated values.

As a learner, I need the certificate to be downloadable in PDF format

in order to store and share it easily.

  • Certificate PDF link appears in the learner dashboard.

  • PDF is generated with full fidelity (images, fields, formatting).

  • PDF is accessible on web and mobile browsers.

  • System logs downloads for audit purposes.

  • Learner can download multiple times without restrictions.

As a learner, I need the certificate to display clean, consistent formatting on all devices (mobile/web)

in order to use it professionally.

  • PDF rendering is identical across platforms (web, Android, iOS).

  • All dynamic fields appear with correct values.

  • Images scale correctly without distortion.

  • Fonts embed correctly in the PDF.

Proposed solution

The Course-level Certificate Builder introduces a comprehensive visual design and management system for course certificates within Open edX Studio, empowering course authors to create, customize, and publish professional certificate templates without requiring developer intervention.

Core capabilities:

  • Visual template builder: The Course-level Certificate Builder enables course authors to design certificate layouts directly in Studio. It is available on a existing Certificate page in Studio. Authors can position elements (text blocks, images, dynamic fields) visually, adjust page settings (size, orientation, margins), and see real-time previews of their designs. The system supports standard formats (A4, Letter) in both portrait and landscape orientations, with precise control over element placement and styling.

  • Asset management: Built-in course media storage allows authors to upload and manage branded assets – logos, institutional seals, background images, and authorized signatures. Management of available assets will be carried out through existing course-level storage.

  • Dynamic field integration: Authors can insert personalized learner data (name, course title, completion date, enrollment mode, grade) as dynamic field that automatically populate during certificate generation. The system provides formatting controls for dates, text alignment, and styling, with preview modes that show both placeholder fields and sample data rendering. Dynamic field values are resolved at the time of certificate generation. The system captures a snapshot of each field (learner name, course title, completion date, enrollment mode, grade) from the LMS at that moment. Once a certificate is generated, these values are fixed. If the underlying data changes after issuance (e.g., due to a name update or grade correction), the certificate must be regenerated to reflect the updated values.

  • Draft and publish workflow: Course Certificate templates are created and managed on the Certificate page in Studio. Templates follow a draft-to-publish lifecycle integrated with the existing course publishing process. Authors can maintain a single draft version per enrollment mode, while only one active template can be published to production at a time. All changes are automatically saved with versioning, allowing authors to track modifications and revert to previous versions if needed. On the Certificates page in Studio, administrators can select which published template should be used for a specific course.

Implementation plan

Milestone 1: MVP – Core Template Builder

1.1. Visual Template Editor

  • Implement a template editor on the existing Certificate page in Studio.

  • Support element types: text blocks, image placeholders, and dynamic field tokens.

  • Allow positioning and arrangement of elements.

  • Store element hierarchy, positions, dimensions, and styling metadata in a structured template schema (JSON).

1.2 Certificate Layout Settings

  • Provide predefined certificate size options: A4 and US Letter.

  • Support portrait and landscape orientation selection.

  • Store layout settings as part of the template metadata.

1.3 Asset Management

  • Use uploaded assets in a course-specific media store.

  • Allow placed images to be repositioned and resized within the template editor.

1.4 Dynamic Field Integration

  • Provide a palette of insertable dynamic fields: learner name, course title, completion date, enrollment mode, and grade.

  • Render dynamic fields as visually distinct tokens/placeholders within the editor.

  • Support formatting controls per field: date format, font size, font family, alignment, and color.

1.5 Real-Time Preview and PDF Generation

  • Generate a live in-browser preview, reflecting all layout settings and element positions.

  • Provide a toggle between design view (tokens visible) and sample data view (placeholder values rendered).

  • Generate a downloadable PDF preview on demand using sample data.

  • Ensure PDF output renders with full fidelity: embedded fonts, correctly scaled images, and precise element positioning.

Milestone 2: Workflow and Publishing Integration

2.1 Draft and Publish Lifecycle

  • Templates created in Milestone 1 remain in draft status until explicitly published.

  • Require confirmation or discard of unsaved changes before publishing.

2.2 Course-Level Template Assignment

  • Display all available templates on the Course Certificates page.

  • Enforce a single active certificate template per enrollment mode.

  • Prevent assignment of unpublished drafts.

  • Require course republishing when the assigned template changes.

  • Apply assigned template only to newly generated certificates (no retroactive changes).

2.3 Version Control

  • Assign an incremental version number to each published template snapshot.

  • Provide a version history view showing author, timestamp, and a summary of changes.

  • Allow authors to revert to any previous published version.

  • Ensure reversion does not alter certificates already generated under prior versions.

Long-term ownership and maintenance plans

Maintenance will be handled by the maintainers of the repositories where any potential changes are added.

Contact person

Anastasiia Abyzova (anastasiia.abyzova@raccoongang.com), Peter Kulko (peter.kulko@raccoongang.com)

Optional additions

Competitive Research

Moodle

image-20260219-140220.png

Editor and Design Surface

  • Element-based composition: Certificates are built by adding individual elements from a predefined list. Each element is configured through a form-based interface where the author sets its properties (content, font, size, color, position).

  • Drag-and-drop repositioning: After adding all elements, a dedicated “Reposition elements” page renders the certificate background with all elements overlaid. Authors can drag and drop elements to adjust their positions visually. Clicking an element on this page opens a dialog for editing its properties without returning to the main configuration form.

  • X/Y coordinate positioning: Each element supports precise positioning via numeric X and Y coordinates (in millimeters from the top-left corner). A site-level setting controls whether coordinate fields are displayed. Authors can use either the drag-and-drop interface or manual coordinate entry, or a combination of both.

  • Reference point system: Each element has a configurable reference point (top-left, top-center, or top-right) that determines how X/Y coordinates are interpreted. This provides control over text alignment anchoring.

  • Page dimensions: Width, height, left margin, and right margin are configurable at the certificate level. The default dimensions correspond to A4, but custom sizes are supported.

LearnDash LMS

image-20260219-170022.png

Editor and Design Surface

  • Background images: Certificate design starts with uploading a background image that serves as the visual template.

  • Page layout: Supports both landscape and portrait orientations with configurable page sizes and margins.

  • No pre-built templates: LearnDash does not include a library of certificate templates. Authors either design a background image externally (using tools such as Canva, Adobe Creative Cloud, or Envato Elements) and upload it, or build the certificate entirely within the block editor.

Typography and Styling

  • Custom font upload: Authors can upload custom font files via a dedicated Fonts section in the certificate settings. Uploaded fonts become available in the block editor’s font selector.

  • Block-level styling: Text formatting (font size, color, alignment, weight) is controlled through the standard Gutenberg block settings sidebar. Styling options are consistent with what the WordPress block editor provides natively.

Dynamic Content

  • Specific blocks: Four dedicated Gutenberg blocks are provided for dynamic certificate content:

  • Course Info: Course completion date, course title, course points.

  • User Data: Learner's first name, last name, and other user profile fields.

  • Group Info: Group-related data for group-based certificates.

  • Extensibility: Because the editor is standard Gutenberg, third-party WordPress plugins can add additional blocks and shortcodes (e.g., dynamic date/time, custom field plugins), extending the available dynamic content beyond what LearnDash provides natively.

Preview and Output

  • Live preview: The editor provides a live in-editor preview that uses real data from an associated course or quiz.

  • PDF generation: Certificates are generated as downloadable PDF files. The builder supports high-resolution output, watermarks, and signature images for print-ready results.

Backward compatibility: The builder is backward-compatible with existing legacy certificates (HTML/CSS-based), so adopting the new builder does not invalidate previously issued certificates.

Tutor LMS

image-20260219-170057.png

Editor and Design Surface

  • Drag-and-drop visual editor: The builder provides a free-form canvas where elements can be dragged and placed anywhere without row or column constraints. Authors position text blocks, images, shapes, and dynamic fields by dragging them directly on the design surface.

  • Pre-built templates: A library of ready-made certificate templates is available as starting points. Authors can select a template from categorized collections and customize it, or start from a blank canvas.

  • 10+ block widgets: The editor offers over ten element types that can be added to the certificate, including text blocks, images, shapes, illustrations, badges, stickers, and dynamic content placeholders.

Typography and Styling

  • Google Fonts integration: Access to over 1,000 Google Fonts directly from the editor, enabling a wide range of typographic choices without manual font installation.

  • Rich typography controls: Font size, weight, spacing, style, alignment, and color are all configurable per text element.

  • Advanced color picker: A full-featured color picker supports exact brand color matching, including presets, patterns, and custom color input.

Media and Visual Assets

  • Unsplash integration: A built-in connection to the Unsplash library allows authors to search and insert high-quality stock images directly within the editor.

  • Custom image upload: Authors can upload their own logos, signatures, seals, and background images via the WordPress media manager.

  • Built-in asset libraries: The editor includes 20+ pre-designed background illustrations, 50+ professional illustrations, and collections of shapes, badges, and stickers.

Image controls: Uploaded and library images can be resized, repositioned, and adjusted for opacity.

Dynamic Content

  • Shortcode-based dynamic fields: Learner-specific data (student name, course title, instructor name, completion date, course duration, grade) is inserted via shortcodes that automatically populate when the certificate is generated.

  • Verification elements: The builder supports adding instructor signatures, unique certificate verification IDs, and QR codes for certificate authenticity validation.

Editor Utilities

  • Layer management: A dedicated layer manager allows authors to control the z-order of overlapping elements, arranging which elements appear in front of or behind others.

  • Undo/redo: Full undo and redo support for all design changes.

  • Backdrop presets: Pre-configured background colors, patterns, and presets can be applied with a single click.

Multiple active templates: Authors can maintain multiple certificate templates simultaneously and assign different templates to different courses.