This document discusses building a decentralized application (DApp) for a class voting system using Ethereum smart contracts. It provides an example of a traditional server-based approach and compares it to using a smart contract on the blockchain. Key concepts are explained such as private keys, Ethereum addresses, and smart contracts. The document outlines how a DApp interacts with the Ethereum blockchain through a browser, MetaMask extension, private keys, and smart contracts. It concludes with a demo and references for further information.