
I Built a Blockchain Voting System with RSA Encryption — Here's How It Works
Digital voting is one of those problems that sounds simple until you actually think about it. How do you prove a vote was counted? How do you stop someone from voting twice? How do you make results auditable without exposing who voted for whom? I built a full-stack university voting system that answers all three — using cryptography as the enforcer, not just policy. Here's how it works under the hood. The Stack Frontend → React + Vite (port 5173) Admin Panel → React + Vite (port 5174) Backend API → Node.js + Express (port 3000) Institution → Node.js API (port 4000) Blockchain → 4-node custom network (ports 3001–3004) Database → MySQL 8 (port 3306) DB UI → phpMyAdmin (port 8080) All containerized with Docker Compose. Spin it up with one command. The Core Problem: Why Not Just Use a Database? A SQL database is mutable. An admin can UPDATE votes SET candidate_id = 2 WHERE candidate_id = 1 and nobody would know. Even with audit logs, those logs can be edited too. A blockchain is append-onl
Continue reading on Dev.to
Opens in a new tab




