Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Smart Contracts Development and Projects with Ethereum
Rating: 4.1 out of 5(23 ratings)
318 students

Smart Contracts Development and Projects with Ethereum

Build Blockchain projects and smart contracts by building decentralized applications using Ethereum
Last updated 5/2019
English

What you'll learn

  • Create a simple, functional decentralized application on the Ethereum network
  • Learn fundamental Blockchain programming concepts
  • Understand the Blockchain application development life cycle
  • Develop your ideas fast and efficiently using the Ethereum Blockchain
  • Make writing and deploying smart contracts easy and manageable.
  • Create your own cryptocurrency/token on the Ethereum Blockchain.
  • Build captivating web applications on top of the Ethereum blockchain.
  • Develop, test, and deploy secure smart contracts.
  • Assemble your own smart contract development production environment
  • Understand the allure of building decentralized web applications using Ethereum.
  • Discover the capabilities and potential of Ethereum smart contracts.

Course content

3 sections90 lectures10h 6m total length
  • The Course Overview2:30

    This video provides an overview of the entire course.

  • Installing Visual Code, Node.js, the Truffle Framework, Git, and Ganache5:06

    To build dapps, you need the right tools. You will learn how to install the tools needed and learn their role in blockchain application development.

       •  Identify the tools used in building decentralized applications

       •  Understand the relationship between the tools

       •  Install the tools on your computer

  • Create Your First Contract6:21

    To build dapps, you use contracts. To build contracts, you will need to understand what they are and how they operate.

       •  Learn what a smart contract is

       •  Understand how contracts work

       •  Create and implement a contract

  • Understand Basic Syntax5:34

    Contracts are written in the Solidity programming language. Learning the language syntax is necessary to mastering this skill.

       •  Learn the syntax conventions and guidelines

       •  Learn the programming types used in Solidity

       •  Write your first solidity code

  • Writing Your First Test3:31

    Code contains errors. Writing tests can detect these errors and prevent them from impacting your dapp.

       •  Identify the types of tests available in Solidity

       •  Learn the capabilities of each test type

       •  Write a solidity test

  • Homework1:36

    Here is the assignment for Day-1.

       •  Install software as needed

       •  Using the truffle command, unbox the truffle files for this project

       •  Confirm steps were successful with the “truffle test” command

  • Understanding Variables4:29

    Learn what variables are and how they are used in the Solidity programming language.

       •  Identify what a variable is

       •  Learn about static typed variables

       •  Understand variable visibility

  • Data Types in Solidity6:05

    Put your knowledge of variables to use by implementing a real-world solution using variables.

       •  Analyze how variables are used in contracts

       •  Follow the application logic using variables

       •  Identify special variables in Solidity

  • Using Variables in Code6:32

    To write contracts, you must understand how to store contract data using variables.

       •  Learn what value type variables are

       •  Learn what reference type variables are

       •  Combine value and reference type variables in a contract

  • Understanding Solidity Operators3:24

    Learn how to implement business logic through the use of operators.

       •  Identify the operators available in Solidity

       •  See the operators in action

       •  Learn about type conversion in Solidity

  • Usage of Solidity Operators6:12

    Get a deeper understanding of using operators by evaluating their use in code.

       •  Examine code using operators

       •  Nest multiple operators together for complex logic

       •  Determine a function’s role using the defining code

  • Homework2:33

    Here is the assignment for Day-2.

       •  Create a new smart contract in the contracts folder called Gaming.sol

       •  Create a struct datatype called player with the following variables

  • Understanding Functions8:48

    Here we will learn how we implement complex business logic in contracts.

       •  Learn that functions are executable units of code

       •  Identify the format of functions

       •  Understand the different types of functions

  • Function Visibility4:37

    Function visibility allows you to protect access to functions. In this video, we will learn the importance of function visibility.

       •  Identify the types of function visibility

       •  Learn the differences between each visibility

       •  See how visibility is used to implement our dapp

  • Using Functions to Execute Business Logic3:38

    In this video,we will learn how to use functions to implement the rules of our game.

       •  Define the rules of our online game

       •  Walk through the logic of our main function

       •  Combine multiple functions to create complex logic

  • Understanding Modifiers4:42

    In this video, we will learn to use modifiers to create constraints and conditions prior to executing functions.

       •  Define what modifiers are

       •  Use require to define rules for a function

       •  Implement modifiers to enforce rules

  • Using Modifiers to Ensure Conditions Are Met2:04

    In this video, we will gain a better understanding of modifiers by reviewing practical examples.

       •  Implement a modifier restricting access to a function

       •  Implement a modifier restricting access by time

       •  Implement a modifier requiring funds

  • Homework2:20

    Here’s the assignment for Day-3

       •  Create a function named “loseAll”

       •  Identify users who try to avoid losing money by betting on both possible outcomes

       •  Transfer all of the player’s funds to the contract

  • Understanding Unit Tests versus Integration Tests4:39

    In this video, we will learn about two common types of tests to identify their function and provided guidance on writing your own tests.

       •  Identify the function and scope of unit tests

       •  Identify the function and scope of integration tests

       •  Evaluate the operation of a Solidity test

  • Testing Strategies for Applications5:01

    How do you know where to start writing tests? How do you know when to stop? This lesson will offer guidance on those questions.

       •  Learn common strategies for writing tests

       •  Examine tests using Solidity

       •  Examine tests using Javascript

  • Creating Unit Tests in Solidity4:24

    Writing tests in Solidity leverages coding principles similar to writing contracts. How can you leverage that knowledge?

       •  Learn Solidity test conventions

       •  Understand the imports required for Solidity tests

       •  Evaluate tests to understand their role

  • Creating Integration Tests in JavaScript9:46

    Solidity tests have limitations.In this video, we will learn to write JavaScript tests for more flexibility and control.

       •  Learn JavaScript test conventions

       •  Understand the syntax of JavaScript tests

       •  Evaluate JavaScript tests to understand their function

  • Running Test Suites5:35

    In this video, we will learn to execute the test suite to evaluate the tests for your application.

       •  Understand the role of the components required for testing

       •  Configure truffle to use the local development network

       •  Learn to debug solidity contracts

  • Homework1:12

    Here’s the assignment for Day-4

       •  Create tests for the “loseAll” function

       •  Test all possible scenarios to ensure proper operation

  • Understanding the Role of JavaScript and React in a DApp5:08

    In this video, we will learn how the User Interface interacts with our Ethereum contract.

       •  Understand the role of react and redux in our Dapp

       •  Learn the action - reducer - state lifecycle

       •  Identify the functions provided by web3

  • Creating a React App from a Template3:29

    Creating a react app from scratch requires a lot of setup.In this video,we will learn the pros and cons of common methods.

       •  Learn the pros and cons of create-react-app

       •  Learn the pros and cons of cloning a project

       •  Identify the correct method for your application

  • Display Game State to Players8:45

    In this video, we will learn where to store the application state, or user data for your Dapp.

       •  Learn what React components are

       •  Identify React lifecycle methods that update state

       •  Create components with values set by application state

  • Get Player Input from the UI3:33

    In order to execute our game, we need input from our player. Namely, how much they wagered and their guess. How do we get this information?

       •  Use functions to execute actions

       •  Write code to dispatch actions to reducers

       •  Use reducers to update the Redux store

  • Provide Feedback to the Player4:44

    Once we execute game play, we need to notify the player the results of that round. This step completes the action - dispatch - reducer lifecycle.

       •  Use componentDidUpdate to check for changes to state

       •  Bind UI components to state variables

       •  Update UI components on state change

  • JavaScript Promises in a Networked Application3:27

    Contract calls don’t execute immediately.In this video,learn to use Promises to identify when they complete.

       •  Understand how network calls impact JavaScript applications

       •  Learn how Promises solve this issue

       •  Examine a common JavaScript Promise

  • Using web3.js to Communicate with the Ethereum Network8:37

    In this video,learn to use the web3.js library to facilitate this.

       •  Refactor game play to implement Ethereum contract calls

       •  Implement the web3.js library to access the contract

       •  Evaluate the contract response for data returned

  • Implementing JavaScript Functions in a User Interface4:49

    Contract function call results are saved in the Redux store. In this video,we will learn how to access the store to implement results in the UI.

       •  Understand the role of mapStateToProps

       •  Identify the correct lifecycle method to call on new props

       •  Integrate data from props into the UI

  • Homework2:08

    Here’s the assignment for Day-5

       •  Render an element in the UI that displays the random number generated in each round

  • Understanding Wallets and Security7:04

    Learn what wallets are and the different types of wallets available.

       •  Understand the role of wallets in cryptocurrencies

       •  Learn about the types of wallets available

       •  Choose a wallet based on your requirements

  • Install and Configure MetaMask4:04

    Install and configure MetaMask to act as the wallet and web3 provider for our Dapp.

       •  Learn the features of MetaMask

       •  Install MetaMask

       •  Connect MetaMask to Ganache

  • Understanding Gas Price and Gas Limits4:35

    Learn what gas is in the Ethereum network and the role it plays in our Dapp.

       •  Identify how gas is used in decentralized applications

       •  Learn the function of gas price

       •  Understand the limits imposed by gas limit

  • Viewing Blockchain Transactions on the Ethereum Network3:29

    Identify transactions on the blockchain network and the status of the transaction.

       •  Learn what confirmations are

       •  User etherscan.io to view transactions

       •  Explore data exposed by etherscan.io

  • Understand Online and Offline Wallets7:49

    Understand the key differences and benefits between online and offline wallets.

       •  Identify the types of wallets available

       •  Understand the features of each type of wallet

       •  Implement a multi-wallet strategy

  • Injecting the Web3 Provider3:03

    In this video, you’ll look into the metamasks which exists

       •  Inject web3Provider into the browser

       •  Read the account information

  • Homework2:13

    Here’s the assignment for Day-6

       •  Configure MetaMask for your local development environment

       •  Verify proper operation by deploying your contract

       •  Identify the transactions in your local Ethereum network using the transaction hash

  • Understanding the Role of the UI and Smart Contract3:23

    There are multiple test networks available. Learn the key features of each to make informed choices when choosing one.

       •  Identify the three main test networks

       •  Summarize the differences between the networks

       •  Explain why the Ropsten network is used in our Dapp

  • Deploying Smart Contracts to the Ethereum Network5:54

    Learn to configure truffle to use the test network and deploy your contract.

       •  Configure truffle.js to use the Ropsten network

       •  Install the geth client

       •  Launch and sync get with Ropsten

  • Obtaining Ether for Use in Test Networks4:33

    In order to use the Ropsten test network, you need Ropsten Ether. Learn how to obtain it in this lesson.

       •  Connect Metamask to Ropsten

       •  Request ether from a faucet

       •  Configure geth to use your Ropsten account

  • Deploying the UI to AWS11:03

    The last step to launch our application is to make it available to the world

       •  Create a Docker image

       •  Create an ECS service

       •  Launch the service and test the Dapp

  • Homework2:06

    Here’s the assignment for Day-7

       •  Deploy your smart contract to the Ropsten test network

       •  Obtain Ether from the Ropsten test network

       •  Verify proper operation of your game by playing a few rounds

Requirements

  • Some knowledge of Java or JavaScript is required since the examples use a web front-end.
  • Basic knowledge of NPM would be beneficial.

Description

Ethereum is an open-source, public, blockchain-based distributed computing platform and operating system that includes smart contract functionality. It also allows you to build smart & efficient contracts integrating them within applications. Ethereum enables the development of efficient, smart contracts that contain code. These smart contracts can interact with other smart contracts to make decisions, store data, and send Ether to others.

This comprehensive 3-in-1 course is a practical and easy-to-follow guide to building Blockchain currencies, contracts, and applications. To begin with, you’ll learn fundamental Blockchain programming concepts and create a simple, functional decentralized application on the Ethereum network. You’ll work with private data in a Blockchain application as well as handle large files in a Blockchain application. By discovering the capabilities and potential of Ethereum smart contracts, you’ll finally build decentralized, transparent and fraud resistant Ethereum blockchain smart contracts.

Towards the end of this course, you'll build Blockchain, Cryptocurrency, and smart contracts by building decentralized applications using Ethereum.

Contents and Overview

This training program includes 3 complete courses, carefully chosen to give you the most comprehensive training possible.

The first course, Blockchain Application Development in 7 Days, covers building Ethereum DApps Using Smart Contracts for Beginners. Our course will teach you to build an online gaming application using the Ethereum Blockchain. Each 30-minute section will introduce fundamental Blockchain programming concepts as they relate to creating an online game, followed by practical exercises that customers can implement as homework assignments. With this course, you will learn core Blockchain application development skills, creating smart contracts, interacting with the Ethereum network, building user interfaces, and deploying your application to the Internet. This course supplies seven self-contained lessons taught in a practical, hands-on way. By the end of the course, you will be amazed at how much you have learned about Blockchain application development on the Ethereum network in just one week.

The second course, Ethereum Projects, covers building Blockchain, Cryptocurrency, &and smart contracts by building decentralized applications using Ethereum. This course provides you with a clear approach to building cryptocurrencies, smart contracts, and decentralized applications. Throughout the course, we walk you through a detailed step-by-step process to build advanced Ethereum projects. Each project will teach you just enough about Ethereum to be productive right away. You will learn how tokenization works, how to think in a decentralized way, and how to build Blockchain-based distributed computing systems. You will build interesting projects with Ethereum such as wallets, copyright, secure data sharing, and more. By the end of this video, you will be able to tackle Blockchain challenges by implementing projects end-to-end using the full power of the Ethereum Blockchain.

The third course, Creating Smart Contracts with Ethereum, covers building decentralized, transparent and fraud-resistant smart contracts. In this course, you’ll start by learning the Ethereum smart contract programming language Solidity and its capabilities. You’ll design, test, and deploy secure Ethereum smart contracts using the latest industry standards. Also, you’ll build dynamic front ends for web applications and configure your project infrastructure with smart contracts and the Ethereum blockchain. By the end of the course, you’ll have comprehensive knowledge in writing smart contracts and building applications that interact with them.

Towards the end of this course, you'll build Blockchain, Cryptocurrency, and smart contracts by building decentralized applications using Ethereum.

About the Authors

  • Will Button has worked in software engineering and Information Technology since 1995. For the past 10 years, he has focused on scaling, performance, and automation for tech startups in healthcare, logistics, fitness, and more. During that time, he has helped startups manage explosive growth, align expenses with funding, and control customer acquisition costs. Having turned his attention to Blockchain in 2017, Will is bullish about its long-term potential and the opportunities available for tech industry professionals. He believes we are at the forefront of the next big revolution in technology and shares his experience, skills, and knowledge with those ready to be part of it.


  • Daniel Wise has worked in various career paths both domestic and abroad, and since then he focused on the tech field. He began his journey learning programming on Treehouse .com while he lived abroad in Busan, South Korea. His interest in tech began to grow after being accepted into the Flatiron School and returned to the USA to pursue this new career. He has gained experience in the tech field not just on the development side but on the business side as well. His experience and hard work running an indie game studio (known as Ultima Game Studios) paid off when their game demo was chosen to be exhibited at PAX East 2017. This experience in the gaming industry allowed him to utilize his talents in both development and marketing. Currently, he is a busy freelancer, handling projects in Unity development and also writing technical lessons to share his knowledge online. He believes that it is his duty to help others learn about tech/coding while creating projects and learning new things himself. He also assesses promotional ideas and strategies for those looking to promote their businesses online.


  • Drew Taylor has been a Bitcoin and Ethereum miner since February 2017, and Montreal's rapid growth in the fintech space has given him rich first-hand experience of the cryptocurrency industry. He also works as senior blockchain developer for Greenstream Networks. By constantly tackling new programming tools, Drew has developed a powerful learning curve that has allowed him to master web development, mobile development, cryptocurrency development, and blockchain development.

Who this course is for:

  • This Course is perfect for:
  • IT Professionals, Developers, Software Engineers, Entrepreneurs, and Blockchain enthusiasts at all levels, who want to get themselves updated with the latest version of Ethereum 2 to build Blockchain, Cryptocurrency, and smart contracts by building decentralized applications using Ethereum.