User uploads media and community votes: How do I implement them? I am a graphics guy who can fumble through code, but not write it from scratch. I have developed a NUMBER of sites, but this is my first Drupal experience. I've read all the starting documents, been playing with Drupal for DAYS now; I have even installed and modified different modules, so I'm somewhat familiar with it and the concepts (nodes, vocabularies, etc).

I have installed Drupal 7.2 on MDD Shared Hosting. I am looking to build a community site (actually a NUMBER of them very similar to this one once this is completed). They are very similar to these sites:
- colourlovers.com
- instructables.com
- gdgt.com (somewhat).

The concept is that the users will upload various pictures/video &amp; a description to a page, and then the rest of the community will be able to 'like' it (not in a Facebook way, though). The pages with the most 'likes' will appear in the home page and various search/sideboxes (top rated by time/date, newest, most viewed, etc). For example, a user uploads a video and/or pictures of some artwork. He'll write a short statement about it and 'publish' it to the community. Once published, other users will be able to see it, comment on it, and rate it if they choose to. There are different categories for each type of upload (vocabularies, etc), as well as tagging, comments, etc.

Users can also 'follow' their favorite members to easily keep track of any new pictures/media they post, comments they make, etc. It would be fairly similar to the sites mentioned above.

My problem is that I just don't get where/how to go about doing this. I have designated various vocabularies, installed a few different gallery modules. I really don't think I want a gallery for this, as each 'project' a user uploads will be separate from all the others they upload (but it can still be found/visible in the author's profile page). Is there a module that pretty much does this functionality?  Alternatively, is there a key concept that someone could explain to me on how to handle something like this? I could even pay a little bit to have someone set it up for me. However, I want to learn how to do it, so I can maintain the site later and build future sites in the same way.
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.