A comprehensive platform for generating, managing, and verifying digital certificates with customizable HTML templates, built with Deco + Cloudflare Workers.
- Custom HTML Templates: Create unique certificates with HTML and CSS
- Batch Processing: Generate hundreds of certificates simultaneously via CSV upload
- Online Verification: Official verification system with unique URLs for each certificate
- Class Management: Organize projects by classes/groups (turmas)
- Email Campaigns: Integrated system for automatic certificate distribution
- PDF & PNG Export: Generate certificates in multiple formats using API2PDF
- Responsive Interface: Modern, adaptive design for all devices
- Access the "Classes" section and create a new class for your project
- Add description and organize your certificate projects
- Upload an HTML file with placeholders like
{{name}}
,{{email}}
, etc. - The system will automatically replace placeholders with student data
- Preview and customize your certificate design
- Upload a CSV file with student information
- Specify which columns contain names, emails, and other data
- Map CSV columns to template placeholders
- Execute batch generation by creating a "run"
- The system creates unique certificates for each student
- Track progress and status of certificate generation
- Each certificate receives a unique verification URL
- Certificates can be shared and verified online
- Send certificates via email campaigns
certify/
├── server/ # Deco MCP Server + Cloudflare Workers
│ ├── tools/ # Domain-organized MCP tools
│ │ ├── certificados.ts # Certificate management tools
│ │ ├── templates.ts # Template management tools
│ │ ├── csvs.ts # CSV processing tools
│ │ ├── runs.ts # Batch generation tools
│ │ └── todos.ts # Class/turma management tools
│ ├── schema.ts # SQLite database schema (Drizzle ORM)
│ ├── main.ts # Main server entry point
│ └── workflows/ # Automated workflows
├── view/ # React Frontend + Tailwind CSS
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── routes/ # TanStack Router routes
│ │ ├── hooks/ # TanStack Query hooks for RPC
│ │ └── lib/ # RPC client and utilities
│ └── public/ # Static assets
└── package.json # Workspace configuration
- Frontend: React 18, TypeScript, Tailwind CSS, TanStack Router, TanStack Query
- Backend: Deco MCP Server, Cloudflare Workers, Drizzle ORM
- Database: SQLite (Cloudflare Durable Objects)
- UI Components: shadcn/ui, Lucide React icons
- Certificate Generation: API2PDF for PDF/PNG conversion
- Deployment: Cloudflare Workers
The application uses a comprehensive database schema with the following entities:
- Turmas (Classes): Organize certificate projects
- Templates: Store HTML certificate templates with placeholders
- CSVs: Manage uploaded student data
- Runs: Track batch certificate generation processes
- Certificados: Individual certificate records with verification URLs
- Campanhas Email: Email campaign management
- Logs Email: Email delivery tracking
Each certificate includes:
- Unique ID: Cryptographically secure identifier
- Verification URL: Public endpoint for authenticity validation
- Timestamp Tracking: Record when certificates are verified
- Online Validation: Real-time verification system
- Campaign Management: Create and manage email campaigns
- Template Customization: Configure subject, body, and signatures
- Batch Sending: Automated mass email distribution
- Delivery Tracking: Monitor email delivery status and failures
npm run dev
- Start development environment (frontend + backend)npm run gen
- Generate types for Deco integrationsnpm run gen:self
- Generate types for your own tools/workflowsnpm run deploy
- Deploy to production (Cloudflare Workers)npm run db:generate
- Generate database migration files
- Start Development: Run
npm run dev
to start both frontend and backend - Add New Features: Create tools in
server/tools/
organized by domain - Generate Types: Use
npm run gen:self
after adding new tools - Frontend Integration: Create TanStack Query hooks in
view/src/hooks/
- Deploy: Use
npm run deploy
for production deployment
The project follows domain-based organization:
- Certificados: Certificate generation and management
- Templates: HTML template management and processing
- CSVs: Data import and processing
- Runs: Batch processing and workflow management
- Turmas: Class/project organization
- Users: Authentication and user management
The application is deployed on Cloudflare Workers:
- Serverless Backend: Deco MCP server with automatic scaling
- Edge Distribution: Global CDN for fast certificate access
- Durable Objects: Persistent SQLite database storage
- Static Assets: Frontend served via Cloudflare Workers
Fully responsive interface optimized for:
- Desktop: Complete feature set with advanced management tools
- Tablet: Adapted layout for medium screens
- Mobile: Optimized interface for certificate viewing and basic management
The application requires:
- API2PDF API Key: For PDF/PNG certificate generation
- Deco Platform: Integration with Deco ecosystem
- Cloudflare Workers: Hosting and database infrastructure
This project is developed for educational and professional certificate management.
Certify - Transforming how you generate and manage digital certificates! 🎓✨
Built with ❤️ for education and professional development