Embark on an exciting journey to create real Smart Contracts with Solidity and develop DApps using React and Next JS. This course provides a comprehensive understanding of the Ethereum blockchain and its functionalities.
Understanding Ethereum
What is Ethereum?
Ethereum is a revolutionary technology enabling the transfer of cryptocurrency to anyone globally. It's more than just a financial platform; it powers decentralized applications (dApps) that are tamper-proof and accessible to all. As the world's programmable blockchain, Ethereum enhances Bitcoin's innovation with additional capabilities.
While both Bitcoin and Ethereum enable digital transactions without intermediaries, Ethereum's programmability allows for various digital assets, including Bitcoin itself. Ethereum serves as a hub for financial services, games, and apps that ensure data privacy and freedom from censorship, representing the future of technology.
What is Solidity?
Solidity is a high-level, object-oriented programming language designed for deploying smart contracts on the Ethereum blockchain. These smart contracts automate the execution of agreements and transactions, enhancing efficiency and security.
Influenced by C++, Python, and JavaScript, Solidity is a curly-bracket language targeting the Ethereum Virtual Machine (EVM). It supports features such as static typing, inheritance, and complex user-defined types, making it versatile for creating contracts for voting, crowdfunding, blind auctions, and multi-signature wallets.
Course Overview
This course aims to transform you into a proficient blockchain developer. You'll gain an in-depth understanding of the Ethereum blockchain from both a foundational and a developer's perspective.
You'll learn to create smart contracts and their integration with decentralized applications (dApps). Furthermore, you'll explore frontend development for dApps using the React library and Next JS framework, with design components built using Bulma and Tailwind frameworks.
The course involves developing two real-world applications with comprehensive explanations and documentation.
Faucet Application
The first practical project in the course where students will grasp the fundamental concepts of the Ethereum network. The front end is built using the React library and Bulma framework. The Truffle development environment and Ganache (private blockchain) are employed for smart contract development.
Users can donate and withdraw funds via the smart contract, interacting through a website connected to the blockchain network using the Metamask wallet. This application answers essential questions:
- What is Ethereum (transactions, blockchain)?
- What is EVM (bytecode, storage)?
- How to create smart contracts and dApps?
- How to integrate smart contracts with React?
Marketplace Application
Build a sophisticated marketplace application where clients purchase courses using Ether currency. Expanding on the basics, this application focuses on practical Ethereum network development with challenging topics and code-heavy lectures.
Features include a marketplace page with real-time Ether price updates, a modal window for orders, email hashing for privacy, order view with filtering and pagination, among others. It’s developed with Next JS framework and Tailwind CSS, enabling SSR (server-side rendering) and exploring its integration with blockchain.
This application covers:
- Next JS (SSR) Integration with Web3 and Blockchain
- Creation of more complex Smart Contracts
- Email hashing and order verification
- Comprehensive testing of smart contract features
- Order pagination and filtering
The final marketplace application will be deployed to the internet and the smart contract to the live mainnet network, with full integration and documentation provided.