A slightly updated version of https://www.youtube.com/watch?v=coQ5dg8wM2o tutorial
Requirements: Ganache for a local blockchain network Metamask (unfortunately it doesn't support web3 injection anymore, but for this project it's enough. Also you can find Metamask legacy web3)
Quick tip: when setting up metamask with gananche set metamask port server to 8545 and metamask chainId to 0x539
This project should fix any issues you encounter following https://www.youtube.com/watch?v=coQ5dg8wM2o tutorial.