{"id":23263399,"url":"https://github.com/rohitroy-github/vite-personal-todo-planner-dapp","last_synced_at":"2026-04-04T22:31:44.970Z","repository":{"id":156712734,"uuid":"633121358","full_name":"rohitroy-github/vite-personal-todo-planner-dapp","owner":"rohitroy-github","description":"A decentralized day-to-day personal todo planning application made using ViteJS and deployed on blockchain.","archived":false,"fork":false,"pushed_at":"2024-04-08T08:45:39.000Z","size":903,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-08T18:06:43.103Z","etag":null,"topics":["blockchain","dapp","ethersjs","hardhat","reactjs","solidity","tailwindcss","vitejs","web3"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rohitroy-github.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-26T20:35:03.000Z","updated_at":"2024-05-31T13:20:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"e7614846-623e-4715-bdf4-6475c172b7fa","html_url":"https://github.com/rohitroy-github/vite-personal-todo-planner-dapp","commit_stats":null,"previous_names":["rohitroy-github/vite-personal-todo-planner-dapp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rohitroy-github/vite-personal-todo-planner-dapp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rohitroy-github%2Fvite-personal-todo-planner-dapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rohitroy-github%2Fvite-personal-todo-planner-dapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rohitroy-github%2Fvite-personal-todo-planner-dapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rohitroy-github%2Fvite-personal-todo-planner-dapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rohitroy-github","download_url":"https://codeload.github.com/rohitroy-github/vite-personal-todo-planner-dapp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rohitroy-github%2Fvite-personal-todo-planner-dapp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31416770,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T20:09:54.854Z","status":"ssl_error","status_checked_at":"2026-04-04T20:09:44.350Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","dapp","ethersjs","hardhat","reactjs","solidity","tailwindcss","vitejs","web3"],"created_at":"2024-12-19T14:17:55.291Z","updated_at":"2026-04-04T22:31:44.962Z","avatar_url":"https://github.com/rohitroy-github.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1\u003ePersonal Todo Planner (EVM Based)\u003c/h1\u003e\n\n\u003cp\u003e\u003cb\u003eA decentralized, on-chain todo management application built with Vite, React, and Solidity.\u003c/b\u003e\u003c/p\u003e\n\n\u003cp\u003eThis 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.\u003c/p\u003e\n\n\u003cp\u003e\u003cb\u003eCurrently supports:\u003c/b\u003e Sepolia Testnet (and configurable for localhost testing via Hardhat)\u003c/p\u003e\n\n\u003ch3\u003e\u003cb\u003eSnapshots from the project :\u003c/b\u003e\u003c/h3\u003e\n\n\u003cimg src=\"https://github.com/rohitroy-github/vite-personal-todo-planner-dapp/assets/68563695/04f556e2-505c-4d25-b278-ed1c56960803\" width=\"750\"\u003e\n\n\u003ch3\u003e\u003cb\u003eFeatures :\u003c/b\u003e\u003c/h3\u003e\n\n\u003cul\u003e\n    \u003cli\u003e\u003cb\u003eDecentralized Storage:\u003c/b\u003e All todos are stored on-chain in a Solidity smart contract\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eUser-Specific Data:\u003c/b\u003e Each wallet address maintains its own independent todo list\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eFull CRUD Operations:\u003c/b\u003e Create, read, update, and delete todos with blockchain transactions\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eCompletion Tracking:\u003c/b\u003e Mark todos as complete with immutable status tracking\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eMetamask Integration:\u003c/b\u003e Seamless wallet connection and transaction signing\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eReal-Time Updates:\u003c/b\u003e Instant reflection of blockchain state changes in the UI\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eResponsive Design:\u003c/b\u003e Mobile-friendly interface with Tailwind CSS\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch3\u003e\u003cb\u003eTech Stack :\u003c/b\u003e\u003c/h3\u003e\n\n\u003cb\u003eFrontend :\u003c/b\u003e\n\n\u003cul\u003e\n    \u003cli\u003e\u003cb\u003eVite JS\u003c/b\u003e - Lightning-fast build tool and dev server\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eReact 18\u003c/b\u003e - Component-based UI framework\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eTailwind CSS\u003c/b\u003e - Utility-first CSS framework for responsive design\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eEthers.js\u003c/b\u003e - Lightweight Ethereum library for wallet interaction and contract calls\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cb\u003eBackend/Blockchain :\u003c/b\u003e\n\n\u003cul\u003e\n    \u003cli\u003e\u003cb\u003eSolidity ^0.8.20\u003c/b\u003e - Smart contract programming language\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eHardhat\u003c/b\u003e - Ethereum development environment with testing and deployment tools\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eNode JS\u003c/b\u003e - JavaScript runtime for backend scripts and deployment\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eMetamask\u003c/b\u003e - Browser wallet for secure transaction signing\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eAlchemy\u003c/b\u003e - RPC endpoint provider for blockchain interaction\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eSepolia Testnet\u003c/b\u003e - EVM-compatible test network for deployment and testing\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch3\u003e\u003cb\u003ePrerequisites :\u003c/b\u003e\u003c/h3\u003e\n\n\u003cul\u003e\n    \u003cli\u003eNode.js v16 or higher\u003c/li\u003e\n    \u003cli\u003enpm or yarn package manager\u003c/li\u003e\n    \u003cli\u003eMetaMask wallet extension installed in your browser\u003c/li\u003e\n    \u003cli\u003eSome Sepolia ETH test tokens (get from \u003ca href=\"https://www.alchemy.com/faucets/sepolia\"\u003eAlchemy Sepolia Faucet\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch3\u003e\u003cb\u003eProject Setup :\u003c/b\u003e\u003c/h3\u003e\n\n\u003cb\u003eStep 1: Clone and Install Dependencies\u003c/b\u003e\n\n\u003cpre\u003e\ngit clone https://github.com/rohitroy-github/vite-personal-todo-planner-dapp.git\ncd vite-personal-todo-planner-dapp\n\n# Install backend dependencies\ncd blockchain-hardhat\nnpm install\n\n# Install frontend dependencies (from root directory)\ncd ../frontend-vite\nnpm install\n\u003c/pre\u003e\n\n\u003cb\u003eStep 2: Environment Configuration\u003c/b\u003e\n\nInside the \u003cb\u003eblockchain-hardhat\u003c/b\u003e folder, create a \u003cb\u003e.env\u003c/b\u003e file. Use the template from \u003cb\u003e.env.example\u003c/b\u003e:\n\n\u003cpre\u003e\nALCHEMY_API_KEY=your_alchemy_api_key_here\nPRIVATE_KEY=your_metamask_private_key_here\n\u003c/pre\u003e\n\n\u003ch3\u003e\u003cb\u003eGuide for Testing on Local Hardhat Network :\u003c/b\u003e\u003c/h3\u003e\n\n\u003cb\u003eTerminal 1 - Start Local Hardhat Node:\u003c/b\u003e\n\n\u003cpre\u003e\ncd blockchain-hardhat\nnpx hardhat node\n\u003c/pre\u003e\n\nThis will start a local Ethereum node at \u003cb\u003ehttp://localhost:8545\u003c/b\u003e with pre-funded test accounts.\n\n\u003cb\u003eTerminal 2 - Deploy Smart Contract:\u003c/b\u003e\n\n\u003cpre\u003e\ncd blockchain-hardhat\nnpx hardhat run scripts/deploy[Todo_Contract_Main].js --network localhost\n\u003c/pre\u003e\n\nCopy the deployed contract address from the output.\n\n\u003cb\u003eTerminal 2 - Run Tests (Optional):\u003c/b\u003e\n\n\u003cpre\u003e\nnpx hardhat test\n\u003c/pre\u003e\n\n\u003cb\u003eUpdate Configuration:\u003c/b\u003e\n\nAfter deployment, update \u003cb\u003efrontend-vite/src/backend-config.json\u003c/b\u003e with the contract address under the \u003cb\u003e\"31337\"\u003c/b\u003e network:\n\n\u003cpre\u003e\n{\n  \"31337\": {\n    \"contract\": {\n      \"address\": \"0x5FbDB2315678afecb367f032d93F642f64180aa3\"\n    }\n  }\n}\n\u003c/pre\u003e\n\n\u003cb\u003eTerminal 3 - Start Frontend Development Server:\u003c/b\u003e\n\n\u003cpre\u003e\ncd frontend-vite\nnpm run dev\n\u003c/pre\u003e\n\nOpen your browser to \u003cb\u003ehttp://localhost:5173\u003c/b\u003e and connect your MetaMask wallet to the localhost network.\n\n\u003ch3\u003e\u003cb\u003eDeploying to Sepolia Testnet :\u003c/b\u003e\u003c/h3\u003e\n\n\u003cb\u003e1. Update .env file in blockchain-hardhat:\u003c/b\u003e\n\nEnsure your Alchemy API key and Sepolia-funded wallet private key are configured.\n\n\u003cb\u003e2. Deploy contract to Sepolia:\u003c/b\u003e\n\n\u003cpre\u003e\ncd blockchain-hardhat\nnpx hardhat run scripts/deploy[Todo_Contract_Main].js --network sepolia\n\u003c/pre\u003e\n\n\u003cb\u003e3. Update backend-config.json:\u003c/b\u003e\n\nAdd the Sepolia deployment address under the \u003cb\u003e\"11155111\"\u003c/b\u003e network (already configured in the file).\n\n\u003cb\u003e4. Configure MetaMask:\u003c/b\u003e\n\n\u003cul\u003e\n    \u003cli\u003eSwitch MetaMask network to Sepolia\u003c/li\u003e\n    \u003cli\u003eEnsure your wallet has Sepolia ETH for gas fees\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cb\u003e5. Run frontend:\u003c/b\u003e\n\n\u003cpre\u003e\ncd frontend-vite\nnpm run dev\n\u003c/pre\u003e\n\n\u003ch3\u003e\u003cb\u003eSmart Contract Overview :\u003c/b\u003e\u003c/h3\u003e\n\nThe \u003cb\u003eTodo_Contract_Main\u003c/b\u003e smart contract provides the following functions:\n\n\u003cul\u003e\n    \u003cli\u003e\u003cb\u003eaddNewTodo(string _text)\u003c/b\u003e - Create a new todo item\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eupdateTodoText(uint _index, string _newText)\u003c/b\u003e - Update existing todo text\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003emarkTodoAsCompleted(uint _index)\u003c/b\u003e - Mark a todo as completed (immutable)\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003edeleteTodo(uint _index)\u003c/b\u003e - Remove a todo from the list\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eviewTodos()\u003c/b\u003e - Retrieve all todos for the connected wallet (read-only, no gas cost)\u003c/li\u003e\n\u003c/ul\u003e\n\nEach wallet address maintains its own independent todo list stored in the \u003cb\u003etodosByOwner\u003c/b\u003e mapping, ensuring data privacy and ownership.\n\n\u003ch3\u003e\u003cb\u003eAvailable Scripts :\u003c/b\u003e\u003c/h3\u003e\n\n\u003cb\u003eFrontend:\u003c/b\u003e\n\n\u003cpre\u003e\nnpm run dev      # Start development server\nnpm run build    # Build for production\nnpm run preview  # Preview production build locally\nnpm run lint     # Run ESLint\n\u003c/pre\u003e\n\n\u003cb\u003eBackend:\u003c/b\u003e\n\n\u003cpre\u003e\nnpx hardhat node                                                     # Start local Hardhat network\nnpx hardhat test                                                     # Run contract tests\nnpx hardhat run scripts/deploy[Todo_Contract_Main].js --network localhost  # Deploy to localhost\nnpx hardhat run scripts/deploy[Todo_Contract_Main].js --network sepolia    # Deploy to Sepolia\n\u003c/pre\u003e\n\n\u003ch3\u003e\u003cb\u003eProject Status :\u003c/b\u003e\u003c/h3\u003e\n\n✅ Core functionality complete  \n✅ Smart contract deployed and tested  \n✅ Frontend UI fully functional  \n✅ Multi-network support (localhost \u0026 Sepolia)  \n🚀 Ready for further enhancements and scaling\n\nThe project remains under active development with continuous improvements and optimizations.\n\n\u003cbr\u003e\n\n⭐ \u003cb\u003eIf you find this project helpful, please consider giving it a star!\u003c/b\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frohitroy-github%2Fvite-personal-todo-planner-dapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frohitroy-github%2Fvite-personal-todo-planner-dapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frohitroy-github%2Fvite-personal-todo-planner-dapp/lists"}