How to create a view of all recent activity on a site? I want to create either a view or a module (preferably view) to display all recent activity on the site such as a new user joined in, a user read some article or blog, a user gained some points and so on...the display should be as:

User x just joined in
User y just got 30 points for creating a blog
User Z just read Some Article 


I tried doing so using the Message, Views and Rules modules, but I was able to do so (only for one specific event such as User x created a blog ...).

Note: I want to create new events in Rules. I wonder how to use a message type to get different messages to be displayed. I am following this tutorial, but I wonder how to add more messages such as "[user] gained [user-points]", etc and be sure that it is displayed when that event triggers. Also what data selector should I choose in Rules?
You should take a look at the Heartbeat module.


  Heartbeat displays user activity on a website. This module is an API to log activity. The logged data contains message structures, attributes and variables. Once the activity messages exist in the database, they will be parsed and build into activity streams.