This is a fairly complex application and it is essential to understand all the components of the application and how they work together. You will learn the architecture of the application and the design decisions behind it and the implementation plan.
List Products in the store
You will implement a smart contract with all the functionality for a seller to list products to sell in the marketplace.
You will learn few different types of auctions and learn the details of the Vickery Auction system. You will then implement this auction system in your smart contract. Since all the transactions in the blockchain are public, we will implement encrypted bidding to mask the bids. This is similar to how ENS works.
IPFS and it's usage
We make heavy use of Web3js library to implement the frontend. All the smart contract functionality will be exposed through the HTML/JS frontend.
Off Chain solution using MongoDB & Ethereum Events
You will learn the concept of Events in Ethereum and a way to use these events to implement an offchain solution to build the product search functionality. You will also integrate your frontend with the offchain solution to add search functionality to your marketplace.
There is no central authority in the blockchain world to enforce rules and guarantee payments. To protect buyers and sellers from fraud, we implement the Escrow Service smart contract that will be used to lock the funds in the contract. Funds are released to sellers or refunded to buyers through a 2 of 3 multisig solution (with buyer, seller and a third party arbiter). You will learn the concept of Escrow and multisig in detail and implement the Escrow service through the guided instructions.
There are a number of features/enhancements that can be added to improve our marketplace. There are a number of exercises students can work on to gain more experience and become better blockchain developers.