This is a solo effort at the CITS3231 Project in Java