Practical overview
When it fits
Use it as a local learning exercise when you want to see a Python application deploy a Solidity voting contract and serve a connected browser interface.
Who it is for
- Learners exploring Python-based Ethereum dApp development.
- Developers seeking a small example of local Solidity contract deployment and a browser frontend connected to it.
Documented uses
- Set up a local Ethereum development node for a contract exercise.
- Deploy the example Solidity voting contract from a Python application.
- Serve and open a browser interface connected to the deployed contract.
- Read commented Python and Solidity files to study the example's implementation.
Requirements & limits
The repository is public and lists an MIT license.
- The documented workflow runs Ganache CLI locally rather than deploying to a public Ethereum network.
- The app's main logic is in main.py, and the contract is in voting.sol; both are described as heavily commented.
- The README lists Python 3.6+, Solidity 4.23+ and Node.js 9.8+ as requirements.
- The README mentions eth-testrpc as an alternative local node tool and characterizes it as less maintained than Ganache CLI.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Run the voting dApp on a local Ethereum node
Start the tutorial's local node, deploy its voting contract and open the Flask-served browser app.
Before you start
- Python 3.6+
- Solidity 4.23+
- Node.js 9.8+
- A Python virtual environment and dependencies installed from requirements.txt
- Ganache CLI installed with npm
Steps
Create and activate a Python virtual environment, then install dependencies with pip install -r requirements.txt.
Install Ganache CLI using npm install -g ganache-cli.
In one terminal, run ganache-cli to start the local Ethereum node.
In another terminal, activate the virtual environment and run main.py; it deploys the contract and starts the Flask app.
Open http://127.0.0.1:5000/ in a browser to load the interface connected to the deployed contract.
Expected outcome
A locally served voting dApp connected to its contract on the local development node.
Guide limitations
- The README describes local development and does not give public-network deployment steps.
- The Flask app is started in debug mode.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 16 October 2026
- Original website title
- adamyala/Your_First_Decentralized_Application_Python · Official homepage title · retained in its source language
Related options
llSourcell's Your_First_Decentralized_Application — An earlier tutorial that this repository says its functionality closely follows.
maheshmurthy's ethereum_voting_dapp — An earlier voting dApp tutorial cited as a source of the preceding tutorial's approach.

