This project is part of the Dev Challenges series organised for Gamesys developers. The description can be found here
- Play to host the tweet application
- Akka to have actor support
- AngularJS to increase the UI development speed
- Bootstrap to speed up ergonomical UI development
- Heroku to be able to run our app in the cloud
- Twitter to collect business information and follow technologial trends
- CircleCI to build and deploy the application
The running application is available here
- Open the application in browser. Index page will be called from the webserver
- Play delegates the call to the Index controller. It gives back the index page
- When the index page is initialised a websocket channel will be opened
- The call goes to the Index controller which creates a new UserActor for the session. It will be responsible for accepting user messages, converting those messages and forwarding to processor actors
- The UserActor initialises a TwitterFilterActor for the session. It will be responsible for handling twitter streams and delegeting new tweets for further procession to statistics calculator actors
- Two statistics calculator actors are initialised. One for the hashTag calculations and one for the filter statictics
- User sends filter words he is interested in
- Play immediately delegates the request to the proper actor based on the session
- TwitterFilterActor configures the new search for the twitter streams client
- If there is a new tweet for the search option a call back method will be called in the TwitterFilterActor
- The new tweet is pushed to the UI
- The new tweet is pushed to the statistics calculators
- Statistics calculators asynchronously calculates the results
- UI displays the new tweet
- UI displays the asynchronously pushed statisctics calculation results
- User clicks on a tweet to see detailed user profile
- User controller processes the request and delegates it to the twitter client to query for user details
- Response is processed fromt twitter client and pushed to the UI
- UI shows the detailed user profile
When code change happens in the github repository it is automatically picked up by CircleCI. It runs all the tests and based on the outcome deployes the application to Heroku