Case study · 2024
E-Voting System
PHP and MySQL election platform — candidate document verification, one vote per voter, live results and email notifications.
- PHP
- MySQL
- JavaScript
- PHPMailer
- HTML
- CSS

System design
Candidate ──► register ──► upload documents ──► admin verification
│
Admin ──► elections · users · feedback · notify ─────┤
▼
Voter ──► log in ──► ballot ──► cast vote ┌─────────────┐
(blocked if has_voted = 1) ──────►│ MySQL │
│ elections │
Live results ◄── polling endpoint ◄───────────│ candidates │
Voting history ◄──────────────────────────────│ voters/votes│
│ history │
Email (PHPMailer/SMTP) ◄── election notices │ notifications│
└─────────────┘
Key features
- Candidate vetting — document uploads reviewed and marked verified by an admin
- One vote per voter — the ballot is locked once a voter's
has_votedflag is set - Live results page fed by a polling data endpoint
- Election notifications by email and in-app, plus a feedback channel
- Password reset flow over SMTP
What I'd do differently today
Enforce one-vote-per-voter with a database unique constraint and a transaction, not only an application flag — so integrity holds even under concurrent requests.
More projects
2025–26Case studyDubai Haus — Real-Estate Platform, SEO & Growth
Bilingual property platform built from scratch and grown through SEO — 2,200+ synced projects and 6.8× more organic clicks in 12 months.
- Next.js
- PostgreSQL
- Prisma
- Redis
- +8
Read case study
2026Case studySaadiyat Marina — Bilingual Property Publication
German-first Next.js publication on Abu Dhabi's Saadiyat Island — 54 URLs with a complete hreflang cluster, built in 7 working days.
- Next.js 15
- TypeScript
- JSON-LD
- hreflang
- +3
Read case study
