Website Pilketos
A secure multi-role web voting system built with native PHP and MySQL featuring real-time graphical ballot counting.
Website Pilketos provides a transparent digital electoral workflow for school student council elections. It incorporates tiered access controls (Administrator, Teacher/Supervisor, Student Voter), tamper-resistant vote recording, and live result tallying with responsive charts.
Live Interactive Architecture Stage
Rayhan & Nadia
Inovasi Digital & Lingkungan Bersih
Sakti & Fadhil
Kreativitas Teknologi & Kolaborasi
Zahra & Kevin
Pengembangan Bakat Seni & Olahraga
Upon ballot confirmation, the voter token is instantly invalidated in MySQL to prevent double voting.
School democracy requires verifiable, tamper-evident election procedures that can run reliably across hundreds of students simultaneously without complicated infrastructure. Website Pilketos was engineered with native PHP and MySQL to maximize execution speed and simplify server deployment.
The architecture enforces distinct role-based permissions: students receive single-use credentials to cast their ballots, teachers monitor polling activity, and administrators oversee candidate profiles, voter rolls, and real-time Chart.js visual telemetry.
Explore the structural layers and functional states engineered for this project.
Authentication & Session Guard
Cryptographic session tokens, password hashing, and role-based redirect middleware.
- Role-based routing
- Voter token invalidation on submit
- Session timeout safeguards
Tiered Multi-Role Access Control
Strict session segregation between Administrator, Teacher supervisors, and Student voters with single-vote locking.
Real-Time Vote Tallying & Visual Charts
Live vote percentage calculations and interactive bar/pie charts powered by Chart.js without manual database refresh.
Voter Roll Management & Audit Logs
Complete registry for class rosters, candidate manifestos, and audit logs to verify election integrity.
Preventing Double Voting Under Concurrent Traffic
Multiple students voting simultaneously could cause race conditions where a voter token is used more than once.
Utilized atomic database updates and transaction locking in MySQL to flag voter status immediately upon ballot confirmation.
Streamlined UX for Quick Ballot Execution
Long loading times or confusing confirmation modals slow down the physical polling queue in the computer lab.
Designed an uncluttered candidate card selection interface with high-contrast buttons and instant ballot submission feedback.