This project provides an innovative solution for conducting transparent and secure elections leveraging blockchain technology. It's an Ethereum-based voting system that ensures the integrity and reliability of the voting process.
Voters are provided a unique PIN at the voting point after manual verification by an officer. Upon entering the PIN in the kiosk, voters are presented with a list of candidates. Post selection, the system acknowledges the vote with a success message and resets for the next voter.
Key features include:
- Commissioner Access: Allows creating elections, adding candidates, starting & ending elections, and viewing results.
- Admin Access: Grants rights to enable the voting process.
- Secure PIN-Based Voting: Ensures that only authorized voters can cast their vote.
- Blockchain: Ethereum network, with smart contracts developed using Solidity.
- Frontend: React.js for a dynamic and responsive user interface.
- Backend: Node.js with Express.js framework.
- Database: MongoDB, primarily for user authentication and login functionalities.
Before you begin, ensure you have the following installed:
- Node.js
- npm
- Ganache CLI
- Truffle
-
Clone the repository:
git clone https://github.com/nipunru/elexchain.git
-
Navigate to the project directory:
cd elexchain
-
Install the necessary dependencies:
npm install
Follow the steps below to run the application:
cd server
npm run start-watch
In a new terminal:
ganache-cli -chainId 1337
In another terminal:
truffle compile
truffle migrate --reset
In yet another terminal:
cd client
npm start
The application should now be running on http://localhost:3000
or a similar available port.
Nipun Ruwanpathirana