A decentralized application (or DApp) is an application that uses smart contracts to run. Smart contracts are deployed on the Ethereum virtual machine (EVM). It is similar to a client-server low-tier architecture. A DApp can have a frontend (web) that makes calls to its backend (smart contract) through the web3.js API.
The following structure is what we are going to build for our crowdfunding DApp:
Strucuture of what we will be building for crowdfunding DApp