8.
Product Recommendations (by Alec)
Up one level
For Member Profiles it will be necessary to transition away from your current custom solution in favor of one which integrates with PAS. I suggest looking at:
remember
I suspect that the new portlet architecture will be essential to the development of your product, both for your right column and your "dashboard" type views. It would be very wise to have all developers study this architecture intensely. It is included with Plone 3.0 in the packages:
plone.portlets, plone.app.portlets
For calendar related items I recommend a look at:
Plone4Artists Calendar
Which uses Zope 3 techniques to turn any folder (or smart folder) containing events into a calendar with two way sync from desktop applications like iCal. This should also allow a blog to be viewed in a calendar like fashion when suitable adapters for the posts are provided.
For audio and video blog support, I suggest extending existing blog products (including your own via adaptation. Some Zope 3 products which provide relevant adaptations are:
Plone4Artists Audio, p4a.videoembed
The former of which allows 'File' objects to acquire special behavior and UI when marked as containing audio, and the latter of which allows users to embed videos from e.g. YouTube without allowing them to enter potentially dangerous unfiltered HTML (<embed>, <object>, <script>, etc.).
For blogroll, planet, and other RSS aggregation needs it would be worthwhile to look at:
feedfeeder and the rss portlet included in Plone 3.0 in plone.app.portlets
Testimonials should be relatively easy to implement, especially on top of a product like remember. It seems you already have a sketch of an implementation in your MemberProfile product, though that code is not likely to be directly useful in Plone 2.5+, it could reasonably be applied to a remember based member object.
The email, sms, bulletin, ... notification system should be easily implementable using Zope 3 event channels along with some means of storing/retrieving the user preference information.
For a global ratings system look at
'contentratings' or perhaps 'lovely.ratings'
which allows for customizable multivector ratings (though as far as I know it only works in Zope 3).
Globally available voting for and flagging of content should be easily implementable using single adaptation along with annotations, 'contentratings' provides a basic code example of how this sort of thing is accomplished.