CS541 Final project - with GUI and socket support