The CPSC304 project