My thinking is we can layer this into modules. Some of which depend on each
other and some can be used alone. Using as much zope3 tech as possible would
be good. If all of our needs are to create new sites then it makes sense to
work with plone3. It is stable. It does require more learning but that is
worth it for the increased ability to modularise things and have them work
together. Viewlets for instance all one module to add its own elements
anywhere on the screen instead of just a portal for instance, and without
having to mess with Plone templates and cause huge headaches in upgrading.
Module 1: I think the most basic module would be an invitations as that
doesn't require any social graph.
It would be a utility with the api
invite(username, callonRegistration)
Module 2: a localrole integration that lets you share a single content with
an email address. It uses the inviteutil.
So far neither of these use a social graph and both are useful in Plone
generally.
Module 3: an import mechanism. Extends the invite/share interface by
allowing you to login to another service and pick the people rather than
type the email.
Module 4: a social graph module that uses the invite. Has an invite friends
page, uses the invite and import. On call back it records the relationship
in Plone.relations. has a UI for you to view, add, remove etc. Shouldn't
require membrane or anything.
Module 5: Integration of search with social graph. Ability to create
collections that show content owned by those in some relation to you. Not
sure how generally useful this would be.
Module 6: social graph sharing. PASplugin that allows groups to be defined
by relations to you. Would allow the usecase where you can share documents
with "close friends" and then go classify your friends as "close friends".
User groups could be used to implement this. This should allow enough
flexibility of privacy.
Flexible Profiles is already provided by other mechanisms such as membrane.
It's going to change with every app so its more an integration issue. I
don't think it should be included.
Messaging has also been covered before in other products. I'm not sure its
an essential part.
User action logging has also been mentioned (facebook stories). I'm not sure
if that's generally useful. It would probably be best done logged to a
relational database.
My thought is that we want the most essential ingredients that are currently
missing. And make it so that putting them together to make facebook wouldn't
be too hard, or just using single bits would work too.
Not sure what you mean.
Do you mean that part of the invitation workflow should include redirecting
the invited person to a certain page once they are registered?
My suggestion is that this be a base utility that other modules can use.
Allowing for integration to allow certain actions including modifying the UI
for a newly registered invitee would be a use case for that.
>
> > Module 2: a localrole integration that lets you share a single content
> with
> > an email address. It uses the inviteutil.
>
> You mean it's invisible to everybody but the one who gets a special
> link via email?
That would be one use case. Another is where you share the Editor role with
someone. Or reviewer.
For an example of how useful this is check out http://docs.google.com
> > Flexible Profiles is already provided by other mechanisms such as
> membrane.
> > It's going to change with every app so its more an integration issue. I
> > don't think it should be included.
>
> Well, I see membrane or products building on it as one of these
> modules.
> We at least need some way to interface with the information. Regarding
The intent was to be as loosly coupled as possible. I've tried in the past
use membrane to store friend relationships etc. In the end its pulling in a
lot code when all that's required is a utility and a lightweight UI to store
so data on users. If we store the different aspects of user information in
different places then I think will run into less problems later on with
relying on obsolete or changing code.
For instance. The invite component needs only to look up users by email
address, or perhaps to store and retrieve temporary keys. It doesn't need
complicated user information.
The social graph component deals just with relationships between users. It
can list users showing just the profile pic and name that the default Plone
membership data contains. And an integrator can override this to provide
more.
> Data Portability we might even need to extend this somehow with
> permissions (who is allowed to see my email, realname, phone number
> etc.). While the technical part is maybe solved I think we should at
> least include the policy part.
Well every social site is going to have different fields. So unless we want
to create a form system I suggest integrators use one that exists already.
Arcetypes for instance provides a way to set permissions on viewing and
editing individual fields I believe. So what kind of policy do you want to
support that isn't already available?
Are you saying that you want to let users set their own permissions on who
can view individual fields? That would be kind of like the share tab that
already exists for Plone content objects... but for fields. Is that the use
case you're thinking of?
> There is also a PSPS task for it: http://dev.plone.org/plone/ticket/7844
Sure. Membrane into the core would be helpful. But it works fine as a
solution to providing profiles now. Is there anything other than perhaps
user configured permissions on fields, that isn't handled by membrane or
some other form solution?
>
> > Messaging has also been covered before in other products. I'm not sure
> its
> > an essential part.
>
> Sure but I still would like to list those use cases. If we then say,
> "look at X" then it's also ok.
Do you mean that we recommend a third party solution to this problem? Yeah
we could do that. I see the goals of this effort to provide the missing bits
of functionality rather than creating a buildout to provide a working
facebook like site. People need out of the box ecommerce sites. Who needs
out of the box social network sites?
> >
> > User action logging has also been mentioned (facebook stories). I'm not
> sure
> > if that's generally useful. It would probably be best done logged to a
> > relational database.
>
> Probably.. this is quite a new field anyway and the question is even
> how to broadcast it to your friends on different sites.
> But that's something for later I think.
>
> > My thought is that we want the most essential ingredients that are
> currently
> > missing. And make it so that putting them together to make facebook
> wouldn't
> > be too hard, or just using single bits would work too.
>
> I think the most complex part would be the facebook part itself
> then :-)
??
Good point. Could you review their model and see what ours is missing?
I also had a quick look at the opensocial hosting api. This is what is
required to be implemented by an opensocial container and also provides a
good model to base things on.
It had an emphasis on activities (facebook stories). How important is that
for everyone?
I haven't looked at the facebook api yet.
Has anyone written a facebook app or used opensocial yet?
The usebase for this I'd be interested in is making a social network ontop
of Plone, and then taking parts of it and making it into a facebook app so
people use the app stand alone or via facebook. Are there other external api
use cases?
> Michael
>
>
Nate
--
Nate Aune - na...@jazkarta.com
http://www.jazkarta.com
I created a page where everyone can write a description of their sites and
the needs. Please add your requirements their, along with everyone else.
Then we can start to see patterns.
> -----Original Message-----
> From: plone-socia...@googlegroups.com [mailto:plone-social-
> netwo...@googlegroups.com] On Behalf Of Nate Aune
> Sent: Monday, 10 March 2008 12:08 PM
> To: Michael Hauser; Ross Patterson; Rocky Burt; Lennart Regebro
> Cc: Plone Social Networking; bostonj...@googlegroups.com
> Subject: Re: View this page "Brainstorming"
>
>
Sounds good, I think the more real use cases we have, the better chance we have of having a useful framework. If there are 4 other people like me, with a very specific site in mind then I think the commonalities would form a good start to a framework (and hopefully lesson the development effort for all of us). If we can always tie a requirement back to at least one stakeholders concrete need it will also save time in discussion over abstract ideas that perhaps are never going to be used.
So who here does have a specific site in mind or upgrade to a site? And who can commit some development effort?
Commit is a strong word. I meant, who can see themselves developing code for plonesocial should the framework fit their needs (which it will)?
I've been lurking up to this point, but wanted to send a brief message
(I'm preparing my Plone symposium talks and don't have a lot of time
at the moment) to say that we are very interested in using Plone as a
social networking platform, and intend to put some development effort
into a site that we are building to serve jazz musicians in Boston.
I'll post more details once I get back from the Symposium.
Thanks Christian for taking the initiative to set up this group!
Looking forward to some good discussions on the list. Not sure yet if
I will make it to the Sorrento sprint.
Nate
company: http://jazkarta.com
blog: http://nateaune.com
twitter: http://twitter.com/natea