CAMeSM Secure Voting
Custom WordPress plugin for CAMeSM enabling secure, schedule-based voting with ID authentication, audit logging, and full admin control.
by Alexandros Kordatzakis · github.com/alexandros-kordatzakis/camesm-2026-secure-voting-wp-plugin · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/alexandros-kordatzakis/camesm-2026-secure-voting-wp-plugin/archive/refs/heads/main.zipCAMeSM Secure Voting (WordPress Plugin)
Custom-built WordPress plugin used for managing live voting during CAMeSM 2026 (Cyprus Annual Medical Students Meeting).
Designed for controlled, time-restricted voting across roundtables and free-paper sessions, with a focus on integrity, auditability, and ease of use during a live event.
Overview
This plugin replaces generic voting tools with a system tailored to how CAMeSM operates:
- ID-based voter authentication (no accounts required)
- Voting only allowed during scheduled session windows
- Strict vote limits per event and globally (for roundtables)
- Full audit trail for every action
It is built to handle real-world constraints of a live conference environment.
Core Features
Authentication
- Login using registration ID only
- Session-based access with token validation
- Login/logout and failure tracking (auth logs)
Voting System
- Supports:
free_papersessionsroundtablesessions
- Voting is:
- Time-gated (based on event schedule)
- Limit-controlled (per event + global caps)
- Duplicate voting for the same candidate is blocked
Event & Candidate Management
- Create events with:
- Start/end times
- Vote limits
- Event type
- Assign candidates per event
- Manual override:
- Force live
- Force closed
Admin Panel
- Dedicated WordPress admin interface
- Manage:
- Voters
- Events
- Candidates
- Bulk voter import via CSV
- Full control over active/inactive states
Audit & Security
- Every vote records:
- Voter ID
- IP address
- User agent
- Timestamp
- Auth logs include:
- Login attempts
- Failures
- Logout events
- Tools to:
- Delete votes (by event, voter, candidate, or individually)
- Reset test data
Data Export
- CSV export for:
- Votes
- Audit logs
- Suitable for post-event validation and reporting
Frontend Integration
- Shortcode-based rendering:
- Clean UI styled via custom CSS
Architecture
- Plugin bootstrap: :contentReference[oaicite:0]{index=0}
- Database layer: :contentReference[oaicite:1]{index=1}
- Frontend logic: :contentReference[oaicite:2]{index=2}
The system is split into:
- Database management (custom tables for voters, sessions, votes, etc.)
- Admin interface (WordPress dashboard)
- Frontend voting portal (shortcode-rendered)
Database Design
Custom tables include:
voters– imported participantssessions– login sessions with token hashingevents– voting sessions (roundtables / free papers)candidates– nominees per eventvotes– all submitted votesauth_logs– login and authentication activity
Installation
- Upload the plugin folder or ZIP to WordPress
- Activate CAMeSM Secure Voting
- Navigate to the admin panel:
- Events
- Voters
- Import
- Import your registration CSV
- Create events and assign candidates
- Add the shortcode to a page:
CSV Import
The importer attempts to map common fields automatically, including:
- Unique ID
- Name (First / Last)
- Institution
- Payment status
- IP / entry data
Usage Notes
- Voting is only available while a session is live
- Roundtables enforce:
- Per-event limits
- Global vote cap
- Free-paper sessions enforce:
- Per-block limits only
Limitations
- Built specifically for CAMeSM workflows
- Not intended as a general-purpose voting plugin
- Assumes controlled environment (event-based deployment)
Author
Alexandros Kordatzakis
CAMeSM 2026 Workshops Coordinator / I.T. Specialist / Full-Stack Website Developer