Purdue CS307 Course Project