Skip to content

A production-ready Web3 decentralized To-Do List DApp built with Next.js and Ethereum. Features wallet-based authentication, smart contract–backed immutable task storage, real-time blockchain interactions, and Vercel-ready deployment following modern Web3 architecture best practices.

License

Notifications You must be signed in to change notification settings

bitsandbrains/blockchain-task-management-system

Repository files navigation

Blockchain Task Management System Dashboard

🏷️ Project Title

Decentralized Blockchain-Based To-Do List Application (DApp)


🧾 Executive Summary

This project is a modern decentralized To-Do List application built using Next.js, Ethereum smart contract integration, and Web3 wallet connectivity. Unlike traditional task managers, this system stores tasks immutably on the blockchain, ensuring data integrity, transparency, and user ownership.

The application allows users to connect a crypto wallet, interact with a deployed smart contract, create and manage tasks, and view task states directly from the blockchain. The system is production-ready, deployable on Vercel, and aligned with modern Web3 architecture standards.


📑 Table of Contents

  • 🧩 Project Overview
  • 🎯 Objectives & Goals
  • ✅ Acceptance Criteria
  • 💻 Prerequisites
  • ⚙️ Installation & Setup
  • 🔗 API Documentation
  • 🖥️ UI / Frontend
  • 🔢 Status Codes
  • 🚀 Features
  • 🧱 Tech Stack & Architecture
  • 🛠️ Workflow & Implementation
  • 🧪 Testing & Validation
  • 🔍 Validation Summary
  • 🧰 Verification Tools
  • 🧯 Troubleshooting & Debugging
  • 🔒 Security & Secrets
  • ☁️ Deployment (Vercel)
  • ⚡ Quick-Start Cheat Sheet
  • 🧾 Usage Notes
  • 🧠 Performance & Optimization
  • 🌟 Enhancements & Features
  • 🧩 Maintenance & Future Work
  • 🏆 Key Achievements
  • 🧮 High-Level Architecture
  • 🗂️ Project Structure
  • 🧭 How to Demonstrate Live
  • 💡 Summary, Closure & Compliance

🧩 Project Overview

The project implements a decentralized task management system where each task is recorded on the blockchain via a smart contract. The frontend communicates with the blockchain using contract ABI definitions and wallet-based authentication.

Key characteristics:

  • Client-side rendered Web3 DApp
  • Wallet-based authentication (MetaMask)
  • Immutable task storage
  • No centralized backend database

🎯 Objectives & Goals

  • Demonstrate practical blockchain integration in a frontend app
  • Ensure user data ownership and transparency
  • Eliminate centralized storage dependencies
  • Build a deployable, scalable Web3 UI

✅ Acceptance Criteria

Criteria Description
Wallet Connection User must connect wallet before interacting
Task Creation Tasks must be written to blockchain
Task Visibility Tasks persist across sessions
Network Validation Wrong network warning must appear

💻 Prerequisites

  • Node.js (v16+)
  • NPM or Yarn
  • MetaMask Wallet
  • Ethereum Test Network

⚙️ Installation & Setup

  1. Clone repository
  2. Install dependencies
  3. Configure blockchain contract address
  4. Start development server

🔗 API Documentation

This application does not rely on traditional REST or GraphQL APIs. Instead, it uses a Blockchain-as-an-API model, where Ethereum smart contracts act as the authoritative backend. All reads and writes are executed through Web3 providers using contract ABI definitions.

Interaction Model

Layer Responsibility Details
Frontend (Next.js) UI & User Actions Collects input, triggers blockchain calls
Web3 Provider Transport Bridges UI and Ethereum network
Smart Contract Business Logic Stores, retrieves, validates tasks

Smart Contract Methods (Logical API)

Method Type Description
createTask Transaction Writes a new task to the blockchain
getTasks Read-only Fetches all tasks for a wallet
toggleTaskStatus Transaction Marks a task as completed/incomplete

🖥️ UI / Frontend

Pages:

  • index.js – Main dashboard
  • _app.js – Global layout and providers

Components:

  • Navbar – Application header
  • ConnectWalletButton – Wallet integration
  • TodoList – Task container
  • Task – Individual task renderer
  • WrongNetworkMessage – Network guard

Styling:

  • Tailwind CSS
  • Global and module-scoped styles

🔢 Status Codes

Status Meaning
200 Successful blockchain interaction
400 User rejected wallet request
403 Wrong blockchain network

🚀 Features

  • Fully Decentralized Storage: Tasks are persisted on-chain, eliminating centralized databases.
  • Wallet-Based Identity: User identity is derived directly from Ethereum wallet addresses.
  • Immutable Task History: Once written, tasks cannot be altered maliciously.
  • Network Validation: Detects incorrect blockchain networks and prevents unsafe interactions.
  • Transaction Lifecycle Awareness: UI reflects pending, confirmed, and failed states.
  • Zero Backend Servers: Entire system operates without traditional servers.
  • Production-Ready Frontend: Optimized, modular, and deployable at scale.

🧱 Tech Stack & Architecture

Technology Stack

Layer Technology Purpose
Frontend Next.js, React UI rendering and routing
Styling Tailwind CSS Utility-first responsive styling
Blockchain Ethereum Decentralized state storage
Web3 Layer Ethers.js Smart contract communication
Deployment Vercel Global edge hosting

ASCII Component Architecture

┌─────────────┐
│   User UI   │
│  (Browser)  │
└──────┬──────┘
       │
       ▼
┌─────────────┐
│ Next.js App │
│ React Layer │
└──────┬──────┘
       │
       ▼
┌─────────────┐
│ Ethers.js   │
│ Web3 Layer  │
└──────┬──────┘
       │
       ▼
┌─────────────┐
│ Smart       │
│ Contract    │
└──────┬──────┘
       │
       ▼
┌─────────────┐
│ Ethereum    │
│ Blockchain  │
└─────────────┘

🛠️ Workflow & Implementation

  1. User opens the web application.
  2. Frontend initializes Web3 provider detection.
  3. User connects wallet (MetaMask).
  4. Network ID is validated against supported chains.
  5. Smart contract instance is created using ABI and address.
  6. Existing tasks are fetched via read-only blockchain calls.
  7. User submits a new task.
  8. Transaction request is sent to wallet.
  9. User signs transaction.
  10. Transaction is mined and confirmed.
  11. UI re-syncs state from blockchain.

🧪 Testing & Validation

ID Area Action Expected Result Purpose
TV-01 Wallet Connect Wallet Wallet address displayed Auth verification
TV-02 Blockchain Create Task Task appears on reload Persistence check
TV-03 Network Wrong Chain Error message shown Safety validation

🔍 Validation Summary

All critical flows were validated against real blockchain interactions. No centralized failure points were observed. State consistency was verified across reloads and sessions.


🧰 Verification Testing Tools & Command Examples

  • MetaMask Activity Logs
  • Ethereum Block Explorers
  • Browser Developer Console
  • React DevTools

🧯 Troubleshooting & Debugging

Issue Cause Resolution
Wallet not detected Extension disabled Enable MetaMask
Transaction stuck Low gas Increase gas fee
Wrong network Incorrect chain Switch to supported network

🔒 Security & Secrets

  • No private keys stored
  • Wallet signs transactions client-side
  • Environment variables handled securely

☁️ Deployment

  1. Push repository to GitHub
  2. Import project into Vercel
  3. Configure environment variables
  4. Build and deploy
  5. Verify wallet and contract interactions

⚡ Quick-Start Cheat Sheet

  • Install dependencies
  • Run development server
  • Connect wallet
  • Create tasks

🧾 Usage Notes

Users should note that blockchain writes are permanent and incur gas fees. This application is recommended for test networks during demonstrations.


🧠 Performance & Optimization

  • Minimized blockchain reads
  • Client-side state caching
  • Component-level re-render control

🌟 Enhancements & Features

  • Task categories
  • Multi-chain support
  • Layer-2 integration

🧩 Maintenance & Future Work

  • Upgradeable smart contracts
  • Gas usage optimization
  • Improved UX flows

🏆 Key Achievements

  • Zero-backend decentralized architecture
  • Production-ready Web3 frontend
  • Blockchain-persistent data model

🧮 High-Level Architecture

User
 │
 ▼
Web Browser
 │
 ▼
Next.js UI
 │
 ▼
Wallet Provider
 │
 ▼
Smart Contract Interface
 │
 ▼
Ethereum Network

🗂️ Project Structure

TO_DoList_Blockchain-main/
 ├── components/
 │   ├── ConnectWalletButton.js
 │   ├── Navbar.js
 │   ├── Task.js
 │   ├── TodoList.js
 │   └── WrongNetworkMessage.js
 ├── pages/
 │   ├── _app.js
 │   ├── index.js
 │   └── api/hello.js
 ├── styles/
 │   ├── globals.css
 │   └── Home.module.css
 ├── utils/
 │   └── TaskContract.json
 ├── config.js
 ├── next.config.js
 ├── tailwind.config.js
 ├── package.json

🧭 How to Demonstrate Live

  1. Launch application
  2. Connect MetaMask
  3. Create a task
  4. Refresh page to show persistence

💡 Summary, Closure & Compliance

This project demonstrates enterprise-grade decentralized application design using modern Web3 standards. It complies with open-source norms, avoids centralized data handling, and follows secure wallet-based interaction patterns suitable for professional and commercial use.

About

A production-ready Web3 decentralized To-Do List DApp built with Next.js and Ethereum. Features wallet-based authentication, smart contract–backed immutable task storage, real-time blockchain interactions, and Vercel-ready deployment following modern Web3 architecture best practices.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •