ZEUS+ – Freelancer Handover Pack

Job ID: 39688839

Budget: €750 – €1,500 EUR

1. Project Brief
Vision: Develop a new online voting platform inspired by ZEUS/Helios, featuring end-to-end verifiability, strong security, and top-tier UX for voters and administrators. The goal is flexible customization, support for both party-list and single-list ballots, multiple positions, multi-channel communication, and scalability. Differentiates itself from existing systems like ZEUS, ElectionRunner, and Electobox.
2. Technical Specifications
Technologies: React/Next.js, Node.js/NestJS, PostgreSQL, Redis, Docker.
Main modules: Voting Client, Admin Console, Bulletin Board, Messaging Hub, Mixing/Tallying Service.
Data model: voters, ballots, parties, candidates, votes tables.
Counting rules: Proportional Representation (Hare quota, Largest Remainders) & Majoritarian (Top-N/FPTP).
Communication settings: SMTP, Twilio SMS, Viber API.
3. Production Server Setup
Server requirements: 2+ CPU, 4GB RAM, 20GB SSD, Linux (Ubuntu 22.04 LTS).
1) Install Docker & Node.js.
2) Upload and extract the ZIP package.
3) Run ./deploy/start.sh (Linux/macOS) or ./deploy/start.ps1 (Windows) to start.
4) Configure domain & HTTPS (Let's Encrypt) with Caddy or Nginx.
5) Fill in deploy/.env with ADMIN_TOKEN, SMTP, Twilio, Viber.
6) Apply security settings: MFA, CSP headers, rate limits.
7) Backup/restore the PostgreSQL database.
4. Checklists
Functional tests:
- Create election with multiple positions.
- Import parties/candidates from CSV.
- Send bulk invitations.
- Test voting with sample voters.
- Verify tracker & results.
- Export results in CSV/PDF.

Security:
- Strong ADMIN_TOKEN and MFA.
- HTTPS enabled.
- Restrict admin access by IP.
- Backup database & audit files.
Related categories: PHP Linux MySQL Node.js Ubuntu