Simulation of Twitter Engine in Elixir.
Subham Agrawal | UFID - 79497379 Pranav Puranik | UFID - 72038540
- We implemented the complete project as described by the problem statement.
- Both Twitter Server and Client are Genserver nodes.
- Initially, all Clients registers with the Twitter-Server.
- Then they subscribe each other based on Zipf distribution. Zipf depends on num of clients. Number of messages sent by each user is proportional to number of subscriber. Please check the report for more information.
- Next, we start the simulation. Each client can send tweets with hashtags and mentions, query tweets with his mentions, quey tweets with different hashtags, connect and disconnect with the server, or retweet what he subscribed to.
- Once a user completes sending his tweets, he stops tweeting.
We have also implemented the bonus, which is working well.
- Register and Delete Account.
- Subsribe to users (Zipf)
- Send Tweets with hashtags and mentions.
- Re-tweet
- Deliver tweets to live users. (also delivers tweets he subscribed to but couldn't receive when he was online)
- Query tweets with hashtags and client's own mentions
- REGISTRATION TESTING
- RE_REGISTRATION TESTING
- DELETE ACCOUNT TESTING
- TWEET TESTING
- SENTIMENTAL ANALYSIS
- TWEET FROM USER WITHOUT ACCOUNT TESTING
- HASHTAG TESTING
- MY MENTIONS TESTING
- FINDING HASHTAG NEVER TWEETED TESTING
- FINDING MENTIONS NEVER MENTIONED TESTING
- HASHTAGS AND MENTIONS BOTH
- QUERY TWEETS WITH HASHTAG
- QUERY TWEETS WITH MY MENTIONS
- SUBSCRIBER TESTING
- RETWEET AND SUBSCRIBED USER RECEIVING MESSAGE TESTING
- QUERY TWEETS FROM USERS SUBSCRIBED TO
- LIVE TWEETS TEST (if user is subscribed)
- LIVE DISCONNECTION AND RECONNECTION (if user is subscribed)
From the project directory run...
$ mix run proj4 num_user num_msg
num_user - number of clients num_msg - minimum messages that each