Skip to content

Automate issuing of badges for completion of tour #118

Open
@Relequestual

Description

Firstly, the tour is awesome. Great work to all those involved. Thank you!

While we have been manually issuing certificates, this does not scale, and should be automated.

A while back while I was full time on JSON Schema, I looked for a good solution for providing attestable badges. The only good free solution I could find is https://badgr.com.
We created an account and an issuer identity for JSON Schema.

Currently, on completion of the tour, we capture the users name and email.
This goes into a google sheet.

We could automate the issuing of badges in multiple ways.
I was going to suggest using GitHub Actions workflow scheduled events, but there is a limit in that they will not continue to trigger if the repo has no update for 60 days.
My suggestion is to use Cloudflare Workers. We will very likely not hit the free limits.

Investigation work needs to be done to find out if this is feasable or if any limitaitons going to cause issues.

Proposed solution:

  • Completion of the tour results in capture of name and email, saved into google sheet. (currently exists and working).
  • Scheduled Cloudflare Worker checks daily if any new competions are logged and require badge issuing. If any, take first and issue badge.

Considerations:

  • Scheduled task will need to also span another pre-task to remove duplicates. If duplicates are found, remove ones which are not sent first.
  • New column for "badge issued" in the spreadsheet.
  • Cloudflare has specific considerations for cron triggers.
  • Needs error handling. Errors should be reported to Slack channel. Not sure how difficult this will be.
  • Secrets should remain secret!
  • Everything must be checked into the git repo.

Approach:

Feel free to break these down into smaller Issues.
Please ask questions if anything is unclear (and notify me on Github if I don't reply within 2 days 😅)

Metadata

Assignees

Labels

Priority: HighAfter critical issues are fixed, these should be dealt with before any further issues.✨ EnhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions