My final year project, written in Python