This implementation of Twitter is divided into 2 parts - twitterServer and twitterClient.
TwitterClient is responsible for generating new clients after a fixed intervals and behaves as a simulator for TwitterServer.
Twitter Client uses Zipf distribution to generate clients, tweet, follow, unfollow, log in and log out of the system.
Please refer to Project4Part1_Report.pdf for detailed information about architecture amd working of TwitterServer and TwitterClient.