Blockchain Applications: A Hands-On Approach