I'm a programmer, but I'm starting a side-project and I don't want to do much (or any) programming for this particular site. Based on what I've read of the documentation, I'm sure Drupal can support these features, but I'm not sure if they can be done through an interface or only through custom development.
The site will have these features:
* User registration. Two distinct types of users with different landing pages, functionality, etc. (not just different subscription levels).
* User profiles with many custom fields. The profiles would be different for each user type.
* Create/Edit/Browse/RSVP for Events - an Event would have many custom fields, so many that using an existing calendar system might not be possible.
* Create/Edit/Browse Activities - an Activity would be a custom object with many fields (title, description, address, etc.)
* Be able to Rate and Review each Event, Activity, or user.
* Easily retrieve and display Events/Activities/Reviews that a user has attended or created in the system.
* One-time purchases and recurring monthly subscriptions. This should be automated and apply the appropriate "credits" to their account each month after their card is charged. This would require supporting an offsite credit card info storage system since we don't want to store that info ourselves.