Skip to main content
Generate professional certificates of completion and excellence for users who successfully complete ethical dilemma training scenarios.

Overview

The Certificate system automates the creation of branded PDF diplomas, supports bulk generation for entire cohorts, and differentiates between participation and award certificates based on performance thresholds.

Key Features

Dual Certificate Types

Participation (all completers) and Excellence (80+ score)

Bulk Generation

Create hundreds of certificates in ZIP archive

Branded Templates

Client logos, custom colors, and professional design

Audit Trail

Unique verification codes for each certificate

Certificate Types

Participation Certificate

Awarded to: All users who complete a dilemma (any score) Design:
  • Blue color scheme
  • Standard completion language
  • Participant name and date
  • Dilemma title

Excellence Certificate

Awarded to: Users who score 80+ points Design:
  • Amber/gold color scheme
  • Highlighted award badge with score
  • “Desempeño de Excelencia” designation
  • More prominent visual treatment
The 80-point threshold is configurable in the code but defaults to this value for most implementations.

Certificate Workflow

Accessing the Certificate Generator

1

Navigate to Certificates Section

From main menu, click Certificados Masivos
2

Select Client

Choose organization from dropdown (admin) or auto-filtered (client users)
3

Select Dilemma

Choose specific game completed by users
4

Click Filtrar Participantes

System loads all eligible users
5

Review Participant List

Verify user names, scores, and certificate types
6

Click Download Certificates

Bulk generation begins

Participant List View

Once filters applied, table displays: Columns:
  • Usuario: Participant name
  • Puntaje Máx: Highest score achieved on this dilemma
  • Fecha: Completion date (formatted in Spanish)
  • Tipo de Certificado: Badge showing Participation or Excellence
Visual indicators:
  • Blue badge for Participation
  • Amber badge for Excellence

Bulk Certificate Generation

Process Flow

  1. Click Descargar Certificados en PDF (.ZIP)
  2. Modal overlay appears with progress indicator
  3. System generates certificates one-by-one:
    • Populates template with user data
    • Renders HTML to high-quality image
    • Converts to PDF
    • Adds to ZIP archive
  4. Progress bar updates (e.g., “5 / 20”)
  5. Upon completion, ZIP file auto-downloads
  6. Modal dismisses
Generating 50 certificates takes approximately 30-45 seconds. Do not close the browser during this process.

ZIP File Structure

certificados-ClientName-DilemmaName.zip
├── certificado-ClientName-DilemmaName-JohnDoe.pdf
├── certificado-ClientName-DilemmaName-JaneSmith.pdf  
├── certificado-ClientName-DilemmaName-BobJohnson.pdf
└── ...
Filenames are sanitized (special characters removed) for compatibility.

Certificate Template Elements

Header Section

Left side:
  • Platform logo (shield icon)
  • “DILEMAS” branding
  • “Éticos & Integridad” tagline
Right side:
  • Client company logo (if available)
  • Or text-based client name fallback

Central Content

Title:
  • “Certificado de Participación” (standard)
  • “Certificado de Excelencia” (award)
Recipient:
  • “A favor de:” label
  • Large, bold participant name
Description:
  • Completion statement
  • Dilemma title in quotes
Award Badge (Excellence only):
  • Gold star icon
  • “Desempeño de Excelencia” text
  • Score display (e.g., “95 / 100 Puntos”)
Left:
  • “Fecha de Sesión” label
  • Formatted completion date
Center:
  • Signature line
  • “Comité Evaluador” designation
Right:
  • QR code placeholder
  • Unique audit code (e.g., “DE-65F3A2B1-0042”)

Certificate Customization

Client Branding

Logo Integration:
  • Upload client logo in WordPress client settings
  • Logo automatically pulls into certificate header
  • High-resolution PNGs recommended (300 DPI)
Color Schemes:
  • Participation: Blue (#3b82f6)
  • Excellence: Amber (#f59e0b)
  • Borders, gradients, and accents match type

Text Customization

To modify certificate language:
  1. Edit certificates.php in source code
  2. Locate HTML template in <div id="certificate-template">
  3. Update Spanish text strings
  4. Test rendering with single certificate
  5. Deploy changes
Template edits require developer access. Contact technical team for custom wording.

Verification Codes

Each certificate includes unique audit code: Format: DE-[HEX_TIMESTAMP]-[USER_ID] Example: DE-65F3A2B1-0042
  • 65F3A2B1: Hexadecimal timestamp of completion
  • 0042: Zero-padded user ID
Purpose:
  • Fraud prevention
  • Certificate authenticity verification
  • Audit trail for compliance

Distribution Options

  1. Download ZIP archive
  2. Extract individual PDFs
  3. Use email merge tool (e.g., MailChimp, SendGrid)
  4. Attach personalized certificate to each recipient
  5. Send with congratulatory message

Manual Distribution

  1. Extract ZIP
  2. Print certificates on high-quality paper
  3. Present in-person at recognition events
  4. Collect signatures for proof of receipt

Self-Service Portal (Future)

Planned feature: Users log in and download their own certificates upon completion.

Access Control

Who Can Generate Certificates?

Admin users: Full access to all clients and dilemmas Client users: Currently admin-only feature
  • Client managers do not have access to certificate generation
  • Must request certificates from platform administrators
Restricting certificate generation ensures quality control and prevents unauthorized distribution.

Certificate Workflows

Monthly Cohort Recognition

1

End of Month: Filter Completions

Set date range to previous month in Users section
2

Export Completer List

CSV of users with 100% completion
3

Navigate to Certificates

Go to certificate generator
4

Process Each Dilemma

Select client + dilemma, generate ZIP
5

Organize Certificates

Create folder structure by client and dilemma
6

Coordinate Distribution

Email to client HR or managers for internal delivery

Award Winners Ceremony

  1. Filter users with Excellence certificates (80+ scores)
  2. Generate specialized amber certificates
  3. Print on premium paper stock
  4. Frame for presentation at company event
  5. Photograph award recipients for marketing

Audit Compliance Documentation

  1. Generate certificates for all completers
  2. Maintain digital archive of PDFs
  3. Cross-reference audit codes with user database
  4. Provide to auditors as proof of training completion
  5. Retain for 7 years per compliance requirements

Troubleshooting

ZIP Download Fails

Symptoms: Modal stalls at “Comprimiendo archivo ZIP…” Causes:
  • Browser memory limits (50+ certificates)
  • Slow internet connection
  • Browser popup blocker
Solutions:
  • Process in smaller batches (25 at a time)
  • Disable popup blockers
  • Use Chrome/Edge for best compatibility

Certificates Show Wrong Date

Cause: System uses last session date, not completion date Solution: Verify finished_at field in database is populated

Client Logo Not Appearing

Cause: Logo not uploaded in WordPress client settings Solution:
  1. Edit client in WordPress admin
  2. Upload logo to Featured Image
  3. Regenerate certificates

Certificate Text Cut Off

Cause: Very long user names exceed template width Solution:
  • Use abbreviated names (“John Smith” vs. “Jonathan Alexander Smith III”)
  • Or edit template CSS to reduce font size

Best Practices

  • Timely Recognition: Generate certificates within 1 week of completion
  • Quality Assurance: Test with 1-2 users before bulk generation
  • Naming Conventions: Use official names from HR records
  • Archival: Keep master ZIP files organized by date and client
  • Communication: Notify users via email that certificates are coming
  • Print Quality: Use 80lb cardstock for physical certificates
  • Digital Security: Password-protect ZIP files if emailing

Technical Details

Libraries Used

  • html2pdf.js: Converts HTML template to PDF
  • JSZip: Packages multiple PDFs into archive
  • FileSaver.js: Triggers browser download

Template Rendering

Certificates render at:
  • Width: 1123px
  • Height: 794px
  • Format: Landscape A4 equivalent
  • Resolution: 2x scale (high DPI)

Performance

  • Generation Speed: ~0.8 seconds per certificate
  • Browser Limits: ~100 certificates max before memory issues
  • Recommended Batch: 25-50 at a time

Build docs developers (and LLMs) love