https://github.com/rohitroy-github/vite-personal-todo-planner-dapp
A decentralized day-to-day personal todo planning application made using ViteJS and deployed on blockchain.
https://github.com/rohitroy-github/vite-personal-todo-planner-dapp
blockchain dapp ethersjs hardhat reactjs solidity tailwindcss vitejs web3
Last synced: about 2 months ago
JSON representation
A decentralized day-to-day personal todo planning application made using ViteJS and deployed on blockchain.
- Host: GitHub
- URL: https://github.com/rohitroy-github/vite-personal-todo-planner-dapp
- Owner: rohitroy-github
- Created: 2023-04-26T20:35:03.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-08T08:45:39.000Z (about 2 years ago)
- Last Synced: 2025-08-08T18:06:43.103Z (10 months ago)
- Topics: blockchain, dapp, ethersjs, hardhat, reactjs, solidity, tailwindcss, vitejs, web3
- Language: JavaScript
- Homepage:
- Size: 882 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Personal Todo Planner (EVM Based)
A decentralized, on-chain todo management application built with Vite, React, and Solidity.
This project demonstrates a complete Web3 stack implementation, featuring a smart contract backend for persistent task storage and a responsive frontend for managing daily todos. Each user's todos are stored securely on the blockchain, ensuring data ownership and transparency.
Currently supports: Sepolia Testnet (and configurable for localhost testing via Hardhat)
Snapshots from the project :

Features :
-
Decentralized Storage: All todos are stored on-chain in a Solidity smart contract -
User-Specific Data: Each wallet address maintains its own independent todo list -
Full CRUD Operations: Create, read, update, and delete todos with blockchain transactions -
Completion Tracking: Mark todos as complete with immutable status tracking -
Metamask Integration: Seamless wallet connection and transaction signing -
Real-Time Updates: Instant reflection of blockchain state changes in the UI -
Responsive Design: Mobile-friendly interface with Tailwind CSS
Tech Stack :
Frontend :
-
Vite JS - Lightning-fast build tool and dev server -
React 18 - Component-based UI framework -
Tailwind CSS - Utility-first CSS framework for responsive design -
Ethers.js - Lightweight Ethereum library for wallet interaction and contract calls
Backend/Blockchain :
-
Solidity ^0.8.20 - Smart contract programming language -
Hardhat - Ethereum development environment with testing and deployment tools -
Node JS - JavaScript runtime for backend scripts and deployment -
Metamask - Browser wallet for secure transaction signing -
Alchemy - RPC endpoint provider for blockchain interaction -
Sepolia Testnet - EVM-compatible test network for deployment and testing
Prerequisites :
- Node.js v16 or higher
- npm or yarn package manager
- MetaMask wallet extension installed in your browser
- Some Sepolia ETH test tokens (get from Alchemy Sepolia Faucet)
Project Setup :
Step 1: Clone and Install Dependencies
git clone https://github.com/rohitroy-github/vite-personal-todo-planner-dapp.git
cd vite-personal-todo-planner-dapp# Install backend dependencies
cd blockchain-hardhat
npm install# Install frontend dependencies (from root directory)
cd ../frontend-vite
npm install
Step 2: Environment Configuration
Inside the blockchain-hardhat folder, create a .env file. Use the template from .env.example:
ALCHEMY_API_KEY=your_alchemy_api_key_here
PRIVATE_KEY=your_metamask_private_key_here
Guide for Testing on Local Hardhat Network :
Terminal 1 - Start Local Hardhat Node:
cd blockchain-hardhat
npx hardhat node
This will start a local Ethereum node at http://localhost:8545 with pre-funded test accounts.
Terminal 2 - Deploy Smart Contract:
cd blockchain-hardhat
npx hardhat run scripts/deploy[Todo_Contract_Main].js --network localhost
Copy the deployed contract address from the output.
Terminal 2 - Run Tests (Optional):
npx hardhat test
Update Configuration:
After deployment, update frontend-vite/src/backend-config.json with the contract address under the "31337" network:
{
"31337": {
"contract": {
"address": "0x5FbDB2315678afecb367f032d93F642f64180aa3"
}
}
}
Terminal 3 - Start Frontend Development Server:
cd frontend-vite
npm run dev
Open your browser to http://localhost:5173 and connect your MetaMask wallet to the localhost network.
Deploying to Sepolia Testnet :
1. Update .env file in blockchain-hardhat:
Ensure your Alchemy API key and Sepolia-funded wallet private key are configured.
2. Deploy contract to Sepolia:
cd blockchain-hardhat
npx hardhat run scripts/deploy[Todo_Contract_Main].js --network sepolia
3. Update backend-config.json:
Add the Sepolia deployment address under the "11155111" network (already configured in the file).
4. Configure MetaMask:
- Switch MetaMask network to Sepolia
- Ensure your wallet has Sepolia ETH for gas fees
5. Run frontend:
cd frontend-vite
npm run dev
Smart Contract Overview :
The Todo_Contract_Main smart contract provides the following functions:
-
addNewTodo(string _text) - Create a new todo item -
updateTodoText(uint _index, string _newText) - Update existing todo text -
markTodoAsCompleted(uint _index) - Mark a todo as completed (immutable) -
deleteTodo(uint _index) - Remove a todo from the list -
viewTodos() - Retrieve all todos for the connected wallet (read-only, no gas cost)
Each wallet address maintains its own independent todo list stored in the todosByOwner mapping, ensuring data privacy and ownership.
Available Scripts :
Frontend:
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build locally
npm run lint # Run ESLint
Backend:
npx hardhat node # Start local Hardhat network
npx hardhat test # Run contract tests
npx hardhat run scripts/deploy[Todo_Contract_Main].js --network localhost # Deploy to localhost
npx hardhat run scripts/deploy[Todo_Contract_Main].js --network sepolia # Deploy to Sepolia
Project Status :
✅ Core functionality complete
✅ Smart contract deployed and tested
✅ Frontend UI fully functional
✅ Multi-network support (localhost & Sepolia)
🚀 Ready for further enhancements and scaling
The project remains under active development with continuous improvements and optimizations.
⭐ If you find this project helpful, please consider giving it a star!