This is probably the best mini implementation I've seen so far. The code is hosted at
https://github.com/Haseeb-Qureshi/lets-build-a-blockchainHe's missed one thing though, which a lot of these small implmentations miss, its the code for chain re-org.
https://en.bitcoin.it/wiki/Chain_Reorganization
This is a crucial piece of code that figures out which chain is correct if 1 or more blocks arrive that have a greater proof of work than your current best chain.
But otherwise, a very good attempt.