This document describes the structure and functions of a smart contract for managing nonprofit organizations on the blockchain. It includes code for defining an Organization struct and arrays, adding and retrieving organizations, handling donations, and unit tests. It also describes deploying the contract to local Ganache and public testnets like Rinkeby and integrating the smart contract functionality into an Angular application.