Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sreyashidey/decentralized-voting-app

The Blockchain Voting System is a decentralized application built using Solidity and ReactJS. It allows users to securely cast their votes through a blockchain network, ensuring transparency, immutability, and fairness. By leveraging Ethereum's blockchain technology. References taken from youtube.
https://github.com/sreyashidey/decentralized-voting-app

blockchain reactjs smart-contracts solidity

Last synced: about 1 month ago
JSON representation

The Blockchain Voting System is a decentralized application built using Solidity and ReactJS. It allows users to securely cast their votes through a blockchain network, ensuring transparency, immutability, and fairness. By leveraging Ethereum's blockchain technology. References taken from youtube.

Awesome Lists containing this project

README

        

# Blockchain Voting System

This application demonstrates a decentralized voting system using a Solidity smart contract, integrated with a ReactJS front end. Voters can interact with the application securely, casting their votes through a blockchain network, ensuring immutability and transparency.

---

## Table of Contents

- [Overview](#overview)
- [Features](#features)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Configuration](#configuration)
- [Smart Contract Deployment](#smart-contract-deployment)
- [Running the Application](#running-the-application)
- [Usage](#usage)
- [Technologies Used](#technologies-used)
- [Future Improvements](#future-improvements)

---

## Overview

This Blockchain Voting System leverages blockchain technology to provide a transparent and secure voting mechanism. By utilizing Solidity for the smart contract and ReactJS for the front end, this application offers a user-friendly and trustless environment, with each vote permanently stored on the blockchain.

## Features

- **Secure Voting**: Each vote is recorded on the blockchain, ensuring tamper-proof results.
- **Transparency**: Votes are publicly verifiable, adding transparency to the voting process.
- **Decentralization**: The system does not rely on a central authority, eliminating single points of failure.
- **Real-time Updates**: The React front end provides users with immediate feedback on voting status.

## Prerequisites

Before you begin, ensure you have the following tools installed:

- **Node.js** (v14 or later)
- **NPM** (v6 or later)
- **Hardhat**: Ethereum development environment
- **MetaMask**: Browser extension to interact with Ethereum blockchain
- **Volta Test Network** or any Ethereum test network

## Installation

1. **Clone the Repository**

```shell
git clone https://github.com/yourusername/blockchain-voting-system.git
cd blockchain-voting-system
## Installation

After you clone the repository, follow these steps to install the necessary packages and set up the blockchain:

2. **Install Dependencies**

Run the following command to install the required packages:

```shell
npm install
npx hardhat compile
npx hardhat run --network volta scripts/deploy.js
npm start

## Technologies used-
This project leverages a combination of tools and technologies to build a decentralized voting system. Below are the key technologies used:

- **Solidity**: The programming language used for writing the smart contract that handles the voting logic on the blockchain.
- **Hardhat**: An Ethereum development environment used to compile, test, and deploy the Solidity smart contract.
- **ReactJS**: The JavaScript library used to build the front-end user interface for interacting with the blockchain.
- **MetaMask**: A browser extension wallet that allows users to securely interact with the Ethereum blockchain.
- **Ethereum/Volta Network**: The blockchain network used to deploy the smart contract. The Volta test network is utilized for testing purposes.
- **Node.js**: The runtime environment used to execute JavaScript on the server-side for both the smart contract and front-end interactions.
- **npm**: A package manager used to manage project dependencies and scripts.

These technologies together allow the development of a secure, transparent, and decentralized voting system that ensures data integrity and real-time updates.