This code is all taken from this article, all of the orginal code can be found here. This is purely for educational reasons for myself.
The only extra thing that I added was the docker-compose.yml
file that helps set up the development environment much easier.