feat(Certificate Generation)
✨ Feature Request
Add Downloadable Canva-Embedded Volunteer Certificate With Per-Visit (Per Timestamp) Admin Approval
Summary
Implement a downloadable certificate (designed in Canva) for volunteers, accessible only after admin approval. Approval should be managed per visit, utilizing the existing list_of_visits structure without creating a new model.
Problem Statement
Volunteers currently have no way to receive official certificates for their participation in medical camps.
A formal certificate system would:
- Acknowledge volunteer contributions
- Improve motivation and engagement
- Provide documented proof of participation
- Maintain digital records in one centralized place
Currently, no certificate generation or approval mechanism exists.
Proposed Solution
1. Use Existing list_of_visits (No New Model Needed)
Extend each entry in list_of_visits to include certificateApproved:
"list_of_visits": [
{
"timestamp": "2025-06",
"_id": { "$oid": "685bdc0293dfc630c88fe804" },
"certificateApproved": false
},
{
"timestamp": "2025-07",
"_id": { "$oid": "6867c182155ac5f67f5ca113" },
"certificateApproved": true
}
]
Each timestamp-based visit now includes its own certificate approval state.
2. Admin Approval Flow
Admin views a volunteer’s visits
For each visit entry, admin can toggle: Approve Certificate
Once approved, the volunteer gains access to a Download Certificate button
3. Volunteer Dashboard Enhancements
Add a Certificates section displaying all visits:
Timestamp Status Action
2025-06 Pending Download (disabled)
2025-07 Approved Download Certificate
If not approved, show a tooltip/message:
“Certificate will be available once admin approves.”
4. Certificate Format
Certificate will be designed in Canva and exported as:
PDF (recommended), or
High-quality PNG
Certificate should include:
Volunteer Name
Visit Timestamp (Month/Year)
Camp/Organizer information
Date of issuance
Certificate ID
Signature section (image)
5. Backend Requirements
API to update the certificateApproved flag for a specific visit (identified by _id or timestamp)
API to serve a downloadable certificate (only if the visit is approved)
Strict permission checking to ensure only the respective volunteer can download
Alternatives Considered
Sending certificates by email → unreliable and easy to misplace
HTML printable certificate → inconsistent formatting across devices
New model for certificates → avoided per requirement to reuse existing structure
Benefits
Recognizes and rewards volunteer contributions
Encourages participation and engagement
Provides official documentation for future proof
Reduces admin workload by automating certificate distribution
Centralized, secure, and easy-to-access certificates
Risks or Concerns
Requires strict access control to prevent unauthorized downloads
Canva templates must be kept consistent
Generating PDFs must be stable across devices
Per-visit approval adds slight additional admin work
Additional Context
Certificates should be download-only (not editable)
Certificate section appears only inside the Volunteer Login page
Certificate download must be allowed only when admin approves
Optional: Log download attempts for audit and tracking