Skip to content

godfreydekew/smartVote

Repository files navigation

Smart Vote

Decentralized Blockchain Voting Platform

Solidity React TypeScript Express PostgreSQL Foundry

Top 10 FinalistTeknofest 2025 Blockchain Competition The world's largest technology festival, with over 7,000 submissions in the blockchain category alone. Our project advanced to the top 10 and was presented at the finals in Istanbul, Turkey.


The Problem

Today, more than 100 countries in the world depend on democracy. More than 70% of them rely on traditional paper voting, and a majority of elections are reportedly manipulated or subject to coercion. Additionally, running national elections remains expensive, as governments routinely spend millions of dollars on logistics, security, polling-station staff, and transportation of election materials.

However, using a blockchain‑based system eliminates most traditional voting barriers, as votes are recorded directly on the Ethereum network. In such a design, the primary way to manipulate results would be through a 51% attack, which is considered computationally and economically infeasible on a large public blockchain like Ethereum.

How It Works

Smart Vote is a decentralized voting platform built on the Ethereum blockchain. It enables organizations and governments to create secure, transparent, and tamper-proof elections. Each election is deployed as its own Ethereum smart contract, and every vote is recorded as an Ethereum transaction. The system integrates KYC identity verification to ensure only eligible registered users can participate.

Features

  • One contract per election — each election is isolated in its own smart contract, preventing cross-contamination
  • Immutable vote records — every ballot is an Ethereum transaction; once cast, it cannot be altered or deleted
  • Identity verification — integrated with didit for KYC, with optional age and region restrictions
  • Public, private & invite-only elections — flexible visibility and access controls for any use case
  • Two-phase elections — registration phase followed by an active voting phase, with admin override to start early
  • Real-time analytics — live dashboards with voter turnout, demographic breakdowns, and results

Architecture

  • Frontend: Vite + React + TypeScript + Thirdweb (located in /frontend)
  • Backend: Express.js + PostgreSQL (located in /backend)
  • Blockchain: Solidity smart contracts, deployed and managed with Thirdweb and Foundry (located in /blockchain)

Getting Started

1. Clone & install

git clone https://github.com/godfreydekew/smartVote.git
cd smartVote
chmod +x build.sh
./build.sh

2. Configure environment

This project requires .env files for both frontend and backend. If you need access, reach out at dekewgodfrey@gmail.com.

3. Start the backend

Make sure your PostgreSQL database is created and the credentials match your .env file.

cd backend
nodemon

4. Start the frontend

cd frontend
yarn dev

About

A blockchain voting system built on the Ethereum chain. Create vote campaigns, add voting restrictions, and ensure all votes recorded are immutable and verifiable. One vote, one count!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors