The online voting system project in PHP and MySQL has the following features:
: Visualizes voter turnout and tallies through charts. Database Architecture (MySQL)
GitHub is the ideal platform for sharing an because: The online voting system project in PHP and
Once you have the base portable voting system, you can add:
Open your browser and go to: http://localhost/voting_system/index.php These additions maintain portability as long as no
Secure login systems that verify a user’s unique ID to prevent duplicate accounts.
Extract the folder directly to your local drive or a USB flash drive. Voters Table CREATE TABLE `voters` ( `id` INT
These additions maintain portability as long as no server-specific extensions (beyond PHP/MySQL) are required.
CREATE DATABASE IF NOT EXISTS `db_voting`; USE `db_voting`; -- 1. Admin Table CREATE TABLE `admin` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `username` VARCHAR(50) NOT NULL UNIQUE, `password` VARCHAR(255) NOT NULL, `firstname` VARCHAR(50) NOT NULL, `lastname` VARCHAR(50) NOT NULL, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 2. Voters Table CREATE TABLE `voters` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `voter_id` VARCHAR(30) NOT NULL UNIQUE, `password` VARCHAR(255) NOT NULL, `firstname` VARCHAR(50) NOT NULL, `lastname` VARCHAR(50) NOT NULL, `photo` VARCHAR(150) DEFAULT 'profile.jpg', `status` TINYINT(1) DEFAULT 0 COMMENT '0=Not Voted, 1=Voted', `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 3. Positions Table CREATE TABLE `positions` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `description` VARCHAR(50) NOT NULL, `max_vote` INT NOT NULL DEFAULT 1, `priority` INT NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 4. Candidates Table CREATE TABLE `candidates` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `position_id` INT NOT NULL, `firstname` VARCHAR(50) NOT NULL, `lastname` VARCHAR(50) NOT NULL, `photo` VARCHAR(150) DEFAULT 'candidate.jpg', `platform` TEXT, FOREIGN KEY (`position_id`) REFERENCES `positions`(`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 5. Votes Table (Transactional) CREATE TABLE `votes` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `voter_id` INT NOT NULL, `candidate_id` INT NOT NULL, `position_id` INT NOT NULL, FOREIGN KEY (`voter_id`) REFERENCES `voters`(`id`) ON DELETE CASCADE, FOREIGN KEY (`candidate_id`) REFERENCES `candidates`(`id`) ON DELETE CASCADE, FOREIGN KEY (`position_id`) REFERENCES `positions`(`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; Use code with caution. 💻 Core Code Implementation 1. Database Connection ( includes/conn.php )