GUI and server implementation except those involving files

I implemented some methods in both client and server side, some of them
still need testing, which I marked. I left out the methods that
involves file transmission, which I'm not quite sure how to do.