ToDo List Ethereum Dapp (Intro)

Julien Klepatch

Last updated: November 2018.

This tutorial series will teach you how to build a ToDo List Dapp on Ethereum. It is regularly UPDATED with the latest development of Solidity, Truffle & Web3. Already published:

Each tutorial has:

You will learn how to:

  • Develop Solidity smart contracts: data structures, functions, modifier, mapping, arrays, and more.
  • Use the Truffle framework to build Ethereum Dapps: compilation, migration, configuration of Truffle project
  • Use Web3 and TruffleContract to communicate between the frontend and the smart contract
  • Configure Webpack for Ethereum Dapp development (with truffle-solidity-loader)

This will cover every part of the Dapp:

  • Smart contract (Solidity)
  • Backend (Nodejs server to serve the frontend)
  • Frontend (Javascript and jQuery)

The dapp will be able to:

  • create new tasks
  • list existing tasks
  • toggle a done/not done status for each task.

Once finished it will look like this (click to enlarge):

Ethereum ToDo List Application Build With Solidity, Truffle, Javascript, Nodejs and Jquery


Before starting, make sure to have installed:

  • Nodejs (v8.9.0 / npm v4, or a later version of the nodejs v8 branch). Nodejs v6 will probably also work.
  • Truffle framework (v4). This is the most popular framework used for developing Solidity smart contracts. It can be installed with npm:
    npm install -g truffle
  • The Ethereumjs-testrpc v4 (v6). This is a developer version of the Ethereum daemon that can run a local Ethereum blockchain. Very useful for developers. It is also sometime called “testrpc” and “local testnet”. It can be installed with npm:
    npm install -g ethereumjs-testrpc
  • UPDATE January 2018: ethereumjs-testrpc has been renamed to ganache-cli. Using the package mentioned before will also work, but it is better to use “ganache-cli” for your future projects.


Leave a Reply

More great articles

Simple smart contract

Starting with Solidity smart contract is a bit overwhelming... the tools, the Ethereum Blockchain, the Solidity language... that's a lot…

Read Story

How To Use Ganache GUI With Truffle? | Episode 14 Ganache CLI is an Ethereum client used for developing smart contracts and dapps. It is a command-line tool but…

Read Story

Understanding Truffle variable injection magic in test files

In Truffle, when you write tests, you can use 'artifacts' and 'web3' objects, without defining these names: const MyContract =…

Read Story

Never miss a minute

Get great content to your inbox every week. No spam.
[contact-form-7 id="6" title="Footer CTA Subscribe Form"]