SwiftVote
Lightweight PHP voting application for association, professional, and student elections. End-to-end X25519 encryption, magic-link auth, runs on shared hosting with no database.
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
Now available on GitHub at Low-Noise-Systems/SwiftVote.
This application is designed to offer a robust compromise between deployment ease and security for sensitive but reasonably scaled votes.