A complete, end-to-end cryptographic certificate generation and verification system built for Code Crafters. This repository contains both the Desktop Application (for generating certificates) and the Verification Portal (for validating them).
- Cryptographic Security: Certificates are signed using Elliptic Curve Cryptography (ECC P-256), ensuring they cannot be forged or altered.
- Automated QR Codes: Every certificate gets a unique, embedded QR code that links directly to the verification portal.
- Bulk Generation: Upload a
.txtor.csvfile to generate hundreds of certificates in seconds. - Smart File Routing: Automatically organizes outputs into folders based on the course or event name, and appends a random 5-digit number to prevent collisions.
- Dark Mode Aesthetics: Both the desktop generator and the web portal use the premium Code Crafters dark navy and vibrant blue color scheme with modern typography (
Outfitfont).
Before generating any certificates, you must create your secure ECC key pair. Run the following script via your terminal or command prompt:
python generate_ecc.py -s "YOUR_SECRET_SEED_PHRASE"Note: Keep your seed phrase secure! This command will generate two files:
ecc_private_key.pem: Keep this file secret and safe on your local computer. It is used to sign the certificates.ecc_public_key.pem: This file is public and is used by the website to verify the certificates.
You don't need Python installed to use the generator. Just use the provided standalone executable!
- Double click
CodeCraftersCertificates.exeto launch the GUI. - Go to the Generation tab.
- Click Upload Names File to select your list of students (
.txtor.csv). - Enter the Event/Course Name and the Year.
- Click Select PDF Template to choose your blank Code Crafters certificate background.
- Click Select Private Key and choose your
ecc_private_key.pemfile. - Click Generate All Certificates!
The system will create a new folder inside the output/ directory named after your course, containing all the generated PDFs ready to be emailed.
The Verification Portal (index.html) allows anyone to scan the QR code on a certificate to verify its authenticity.
- It is hosted via GitHub Pages at
https://Code-Crafters-BM.github.io/certificates/ - When a user scans a QR code, they are taken to a URL like
?id=PAYLOAD.SIGNATURE - The portal fetches
ecc_public_key.pemfrom the repository and cryptographically verifies the signature in the browser. No backend server required!
If your PDF template changes, you can adjust the exact X and Y coordinates (in points, from the bottom-left of the page) for where the Name, Course, and QR code should be placed using the Advanced Settings tab in the desktop application.