csc 540 project