User uploads media and community votes: How do I implement them?
Surely you need Views, which allows you to create a view of specific nodes; if the users of your site are allowed to votes on the content, you probably want to offer a list of the most voted notes, or the less voted nodes.

As per rating a node, there are many modules that can be used. Part of them requires the Voting API module, such as Fivestar, Rate.
Which one to use depends on how the users are allowed to vote. The Rate module allows the users to up-vote and down-vote. With Fivestar, they are allowed to give a vote from 1 to X (where X is normally 5); they are not allowed to down-vote, which means the rate cannot be a negative number.

The Flag module allows the users to flag a node for a specific reason; by default the module comes with the "Add to my bookmarks" flag that can be, in your case, changed to "Add to my followed." Thanks to the integration with Views, Flag creates a view listing all the nodes flagged with a particular flag; such view can be per user, and in this case each user has a view for the nodes they flagged, which is visible as tab in their user profile, or it is global, and in this case the view is not specific for a user but every user can add nodes to that list.