This repository has been archived by the owner on Jun 6, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
Adding documentation #142
Open
WojcikMike
wants to merge
2
commits into
Particular:master
Choose a base branch
from
WojcikMike:documentation_branch
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Adding documentation #142
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
# Set up HashBus for an event | ||
The purpose of this document is to describe how to set up HashBus to monitor tweets and display leaderboard. | ||
|
||
## Projects | ||
### HashBus.Twitter.Monitor | ||
This project uses tweeter streaming API to receive tweets which match the specified track (typically a hashtag). When it happens it create `TweetReceived` and publish it. At the same time it send a command `AnalyzeTweet` to `HashBus.Application`. | ||
|
||
### HashBus.Twitter.Monitor.CatchUp | ||
This project uses tweeter pull API to catch up when the `HashBus.Twitter.Monitor` was down. It subscribes for `TweetReceived` event and analyze SessionId that is included in that event. When the SessionId changes it means that `HashBus.Twitter.Monitor` was down. In which case it pulls all the tweets that have happened during the down period and for each one of them sends `AnalyzeTweet` command. | ||
|
||
### HashBus.Application | ||
This project handles `AnalyzeTweet` commands removing 'bad data' from the tweets, such as: | ||
- retweeting your own tweets | ||
- multiple mentions | ||
- multiple use of the same hashtag | ||
|
||
After analying tweet it publish `TweetAnalyzed` event. | ||
|
||
### HashBus.Projector.* | ||
All those project subscribe to `TweetAnalyzed` events and project report that is saved into MongoDB. We have 1 projector for corresponding report: | ||
- Top Tweeters | ||
- Top Retweeters | ||
- Top Tweeters/Retweeters | ||
- Most Mentioned | ||
- Most Mentioned | ||
- Most Retweeted | ||
|
||
### HashBus.WebApi | ||
The WebApi pulls the data from MongoDb and exposes it using WebApi. | ||
|
||
### HashBus.Viewer.* | ||
This group of projects consume WebApi and display corresponding report on the console window. Viewers use pooling to refresh it's state. | ||
|
||
### HashBus.Twitter.BackFill | ||
This project is used to initiate `HashBus.Twitter.Monitor.CatchUp`. Using configuration one can set starting from which tweet the tweets should be analyzed and after running the application the tweets will be analyzed. | ||
|
||
## Configuration | ||
|
||
There are few settings that should be set up to configure HashBus properly: | ||
|
||
### HashBus.Twitter.Monitor App.config | ||
There is the following setting: `<add key="Track" value="#Microsoft" />`. This should be set up to a hashtag for which the leaderboards should be calculated. It is important to note that after changing this value the tweets will be analyzed so the time to set this value should be well thought. | ||
|
||
### HashBus.Projector.* App.config | ||
This config file holds address to MongoDb instance that should be set up correctly. | ||
|
||
### HashBus.WebApi App.config | ||
This config file holds address to MongoDb instance that should be set up correctly as well as `BaseUrl`. In the configuration file there is a key called: `<add key="IgnoredUserNames" value="adamralph,andreasohlund" />` which should be used to remove the given twitter handles from reports. This filtering should be used for the following cases: | ||
- Particular employees | ||
- Bots and fake accounts | ||
|
||
### HashBus.Viewer.* App.config | ||
This configuration file holds: | ||
- address to WebApi that will be consumed | ||
- hashtag for which the data will be asked from WebApi |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not really. It's general documentation. We might want to consider whether this should be part of the root README.md.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I started with different intent ;) I will correct this sentence when we agree on the structure