A working environment with which you can design, deploy, test smart contracts
compiler.js compiles your Solidity contract and provide access to the compiled contract's information, including its bytecode and ABI. This info is used for deploying the contract to the Ethereum blockchain or interacting with it.
Mocha is used for testing