Introduction
  • What is EOS?
  • Getting Help & Giving Feedback
  • Is this course for you?
  • What You'll Need to Know: Programming Concepts
  • Intro Exercise #1
  • Intro Exercise #2
  • Resources for Learners
  • What's Different About C++?
Getting Ready for EOS Smart Contracts
  • Setting Up Your EOS Studio Environment
  • Troubleshooting EOS Studio Setup
  • Smart Contract Coding Basics: understanding the default contract
  • Exercise: write your own action
  • (Graphic) How EOSIO Organizes Data
  • To Comment or Not To Comment
  • Multi-Index Tables in EOS Smart Contracts
  • Exercise: create your own table
  • How Our Data Works: Structs in C++ and Objects in JavaScript
Our dApp's Structure [EB Lesson 1]
  • What We're Building: Intro to Elemental Battles
  • C++: The Files in our Cardgame Smart Contract
  • Installing Node.js, NPM, ReactJS, VS Code
  • JSX: Setting up our Frontend Game
  • HTML Tag Basics
  • Using index.js files to tell JavaScript where our code is
Logging In to Play [EB Lesson 2]
  • Section Summary: Logging In
  • EOS's "name" datatype
  • C++: Smart Contract "users" Table and "login" Action
  • IMPORTANT CDT UPDATE: changed to
  • Activity (C++): Saving a Message
  • JSX Basics
  • JSX: Adding the Login Form
  • Activity (JSX): Customizing the Login Form
  • React Component Basics
Adding eosjs and Redux [EB Lesson 2, part 2]
  • Section Summary: Connecting login and Login
  • JS: Never use localStorage! Also, we're going to use localStorage.
  • JS: Talking to the Blockchain with an ApiService.js
  • Asynchronicity and More in JavaScript
  • JS: Using a Redux Store & our setUser action
  • JS: Connecting Redux & React
  • Dealing with eosjs JsSignatureProvider errors
  • JS: Testing our Redux-connected Login Form & Adding Game.JSX
  • Activity (JS): Remember that Message?
Showing Player Profile Info from the Blockchain [EB Lesson 3]
  • Section Summary: Displaying the Player's Profile
  • Review: Ternary Operators and Switch Statements
  • JS: Getting Data from the Blockchain
  • 5000 BNB! Plus a plug for private key safety.
  • JSX: Displaying our Player's Profile
  • JSX: Testing and Finishing the Player Profile Screen
  • JSX: Refreshing the Screen without Losing Login
Setting up the Game [EB Lesson 4]
  • Enums (enumerations)
  • Functions, Declarations, Definitions
  • C++: Setting up the Core Game
  • C++: The "seed" Table & Randomization Function
  • C++: "startgame" Action #1
  • IMPORTANT CDT UPDATE: eosio_assert() changed to check()
  • C++: "startgame" #2: Our "draw_one_card" Helper Function
  • Section 6 Quiz
  • C++: "startgame" #3: Testing in EOS Studio
  • C++: The "playcard" Action
Displaying the Game [EB Lesson 4, part 2]
  • Section Summary: Displaying Elemental Battles
  • JSX: Displaying the Game So Far
  • JSX: Recap of the Frontend Flow
  • JSX: Playing Cards in the Frontend
  • EOSIO Naming Conventions
Decisions, Decisions: the Smart Contract AI [EB Lesson 5]
  • C++: Creating the AI's Strategies
  • Mega Activity: Build the AI's choose_card Function
  • C++: The AI's choose_card Function
Victory! Resolving the Battle, Next Round, End Game [EB Lessons 6 & 7]
  • C++: Resolving the Battle in the Contract
  • JSX: Displaying the Battle Resolution
  • C++: Adding the "updategame" and "nextround" actions
  • C++: Adding and testing the "endgame" action
  • JSX: Next Round and End Game in the Frontend
Final Challenge Section [EB Lesson 8]
  • JSX Activity: Adding a Rules Screen
  • JSX Activity 2: Adding Progress Indicators
What's Next?
  • The Next Course