Tested with Node 10.15.3 LTS and Truffle v5.0.19
To run on localhost and check contracts:
Install Ganache. Change Port to 7545 if necessary.
Make sure you are using Node version 10.15.3 and Truffle v5.0.19
Use Metamask to check contracts with My Ethereum Wallet online.
Also includes code to verify published contract on etherscan.
For Crowdsale - Crowdsale.sol is edited in openzeppelin-solidity source folders directly to add function reClaimUnsoldTokens. If doing fresh "npm install", remember to add this back to Crowdsale.sol
This Code will Mint tokens, send them to your wallet address and publish the crowdsale. Next Steps - Approve Crowdsale contract using My Ethereum Wallet, and transfer the Tokens to the crowdsale contract.
Beauty of this contract is that you can reduce or increase Token supply as required, without any ending date. Crowdsale finishes as per your business requirement. Just reClaimUnsoldTokens or send them back to restart sale.