SwiftVote
A lightweight PHP voting solution using file-based storage — no database required. Prioritizes deployment simplicity while maintaining security suitable for associative, professional, or student elections.
SwiftVote
A lightweight PHP voting solution using file-based storage — no database required. Prioritizes deployment simplicity while maintaining security suitable for associative, professional, or student elections.
Project Objective
Provide a fast and reliable way to launch an electronic vote without complex infrastructure, while ensuring data security and ballot confidentiality.
Why this application?
- Deployment simplicity: Compatible with shared or low-budget hosting
- No database required: Pure PHP with file-based storage, works anywhere
- Robust security: Ballots are systematically encrypted (X25519) before recording
- Accessibility: Authentication by magic link, no need to create user accounts
- Total control: The private decryption key remains offline with administrators
Main Features
- 🔐 End-to-end encryption: X25519 encryption on server side with private key reserved for administrators
- 📨 Simplified authentication: Magic link by email and whitelist of voters
- 🛡️ Integrated protections: CSRF, attempt limitation, Cloudflare Turnstile integration
- 📊 Administration interface: Key generation, activity tracking, and secure tallying
- 📧 Advanced SMTP support: Hosting mode or external SMTP with round-robin and automatic failure management
Secure Architecture
The application follows PHP security best practices:
- Directory separation: Sensitive code outside the public web directory
- Defense in depth: Physical protection + .htaccess + code-level safeguards
- Compatible with all hosts: Works on Apache, Nginx, shared hosting
Prerequisites
- PHP 8.0+ with the
sodiumextension enabled - No database needed — all data stored in files
- Ability to send emails (via your hosting provider or an external SMTP server)
Access
Contact us if you are requiring access to the product.
This application is designed to offer a robust compromise between deployment ease and security for sensitive but reasonably scaled votes.