VoteChain is a full-stack web application that modernizes elections through robust database design, role-based access control, and real-time result generation — powered by MySQL and PHP.
A deep dive into the DBMS concepts powering VoteChain — from entity relationships to the SQL queries that keep every vote honest.
Five normalized tables in 3NF, connected via foreign keys with strong referential integrity.
| Table | Primary Key | Foreign Keys |
|---|---|---|
| VOTERS | voter_id PK | — |
| ADMINS | admin_id PK | — |
| ELECTIONS | election_id PK | — |
| CANDIDATES | candidate_id PK | election_id FK |
| VOTES | vote_id PK | voter_id, election_id, candidate_id FK |
The heart of the system — a LEFT JOIN ensures zero-vote candidates still appear in results.
Every election progresses through three managed states, controlled exclusively by the admin.
Three distinct roles with separate dashboards and strictly scoped database operations.
Multi-layered protection against fraud, injection, and unauthorized access.
Built entirely on open-source technologies, locally deployable via XAMPP.
Explore the key interfaces of the E-Voting system — from voter login to real-time results and the admin control panel.
Registered voters log in with email + password. Status must be ACTIVE to proceed.
Real-time vote counts via LEFT JOIN aggregation — Dhaka-18 Constituency.
Central control panel for managing the full election lifecycle.
Admin approves or rejects candidate applications before the voting phase begins.
Four Computer Science students at United International University, Section F, CSE 3522 — DBMS Laboratory.
Lecturer, Department of Computer Science and Engineering
United International University
VoteChain directly supports the United Nations Sustainable Development Goals through digital democratic empowerment.