I designed this project for educational purposes as part of a Python programming curriculum I created. The main learning objective is to teach students the purpose of object-oriented programming, with a particular focus on Python class inheritance.
Demo on Trinket here.