How to Build a Drupal Social Network Part 1: Modules Needed
Before we begin, you should have a decent amount of drupal experience. It's helpful to learn the content type / view relationship, and how to expose node-create forms to non-administrators.
1. Content Consturction Kit (CCK): This module extends Druapl's content types by allowing any user definable fields and granular permissions on those fields. This is what you will use to customize the user profile content type, or collect user generated data like photos and videos.
You should also have some of the sister modules that usually run with this in acquia, like image field, file field, imagefieldcrop, imagecache, contemplate, etc.
2. Views: Views is a query building tool that will help you cut down on your build time, and is a very essential component for any advanced drupal site.
3. Content Profile: This allows you to pair a content type with a user account. Thus, creating "user profiles" that are official drupal nodes. Since the default drupal profile system is very limited, this is a good solution that works seemlessly with views and CCK
4. Rules: This lets you easily "tie modules together" without having to break into PHP. Rules & Heartbeat is what we'll use to set up the facebook style activity stream!
5. Heartbeat: This is a great little module that keeps an "activity log" on a per user basis, and lets you set up permissions for the various activity that gets logged, and integrates with views to show that activity. Learning this thing is not going to be easy, but it's well worth it and is the only way to get a true, facebook or twitter style activity stream / wall gizmo.
I'm an Asheville, NC web designer, developer and online identity specialist. Drupal+LAMP is my language of choice to produce smooth, reliable websites that millions of people interact with around the world.