Overview
VoteChain 2.0 builds on the foundation of the original ResilientApp VoteChain, utilizing ResilientDB’s scalable blockchain infrastructure to create a customizable and secure voting platform. The enhanced app includes customizable voting, voting history, and a results page and discussion panel for each poll. ResVault now provides blockchain-based authentication and enables authorized voting and discussion access. ResilientDB’s blockchain guarantees data integrity, anonymity, and privacy, positioning VoteChain as a scalable solution for institutions seeking transparent yet customizable feedback mechanisms.
Figure 1. VoteChain Home Screen
Motivation
While the original ResilientApp VoteChain was designed for government-level elections, we recognized an opportunity to bring the benefits of secure, transparent voting to smaller communities. Research into voting fairness in the gaming community inspired the idea of decentralized, transparent voting to prevent fraud and build trust. To address these issues, we envisioned a solution that seamlessly blends security with user-friendly functionality that encourages collaboration and engagement. Leveraging ResilientDB’s robust blockchain capabilities, we developed VoteChain 2.0 — a secure, decentralized platform tailored for community use.
Key Features
- Secure and Transparent Elections
- Single Voting Instance
- Immutable Votes
- User-Friendly Interface
- NEW! User Authentication with ResVault
- NEW! Customizable Voting
- NEW! Participate in Discussion Panels
- NEW! View Poll Results & Personal Vote History
Figure 2. Key Features of VoteChain 2.0
System Architecture
Figure 3. System Architecture of VoteChain 2.0
Tech Stack
- ResilientDB - Provides secure, transparent, and tamper-resistant data storage for voting.
- GraphQL - Efficient data querying with APIs for transaction operations.
- React.js - Builds interactive user interfaces.
- Material UI - Ensures responsive design across devices.
- Node.js - Handles server-side logic and API communication.
- ResVault - Manages user authentication securely.
- MongoDB - Organizes poll-related data (topics, votes, messages).
Screenshots
Home Screen
Figure 4. Home Screen
Login Page
Figure 5. Login Page
Create Polls Screen
Figure 6. Create Poll Screen
Results Screen
Figure 7. Results Screen
Preparation
Install ResVault Chrome Extension
Google Chrome is available on macOS, Linux, and Windows platforms. Please refer to the official Google installation guide based on your platform.
-
Clone the ResVault repo to get started:
git clone https://github.com/ResilientApp/ResVault.git cd ResVault
-
Create the build folder in the repository:
npm install npm run build
-
Load the extension in Chrome:
- Open
chrome://extensions/
in Google Chrome and toggle Developer mode on. - Click on Load unpacked.
- Select the build folder you just created.
- You should see the ResVault extension in Chrome.
- Open
Steps to Run the System
Requirements
- Node.js: Download and install Node.js from Node.js Downloads based on your platform.
-
npm (Node Package Manager): npm is included with Node.js. Verify installation:
node --version npm --version
Running VoteChain
-
Clone the VoteChain Git repository to your local machine:
git clone https://github.com/ItsBaiShiXi/VoteChain.git cd VoteChain
-
Install required dependencies:
npm install
- Once the dependencies are installed successfully:
-
Open a terminal and run the following command to start the backend:
npm run start-backend
-
Open another terminal and run the following command to start the frontend:
npm start
-
This will launch the application, and you can access it in your web browser.
-
- Connect the ResVault Chrome extension. You can now anonymously log in to VoteChain through ResVault.
Figure 1. Connecting ResVault to VoteChain
Contributors
- Shengzhe Zhang
- Xin Tang
- Madelyn Nguyen
- Zixuan Weng
- Xiuyuan Qi