Source code for undergraduate final year project.