The frontend is developed on React and the server is built on Node.js. Both ends of the spectrum are statically typed with TypeScript. When a user requests their certificate, a POST request is sent to the server containing their email address, the events' slug and a ReCAPTCHA token.
The handler checks with the database whether the email address holder was an attendee of the specified event. If it booleans out to be negative, appropriate errors are gracefully handled at the front.
If all's well, the server checks for the certificate template in the cache layer. If it doesn't find one, it requests a signed certificate template from AWS S3. The template, certificate specifications defining the position of text and barcode, and attendee data are used to generate the certificate which is sent back to the frontend as a buffer and downloaded to the users' disk as a file.
The barcode on the certificate file redirects the scanner to the validation service which looks up and verifies the information using the certificate ID encoded in the barcode.