marubinotto / Piggydb

Piggydb is a Web notebook application that provides you with a platform to build your knowledge personally or collaboratively.
http://piggydb.net/
Apache License 2.0
149 stars 35 forks source link

Multiuser / social network features #4

Open martinkoutecky opened 10 years ago

martinkoutecky commented 10 years ago

This is probably not an immediate feature request and I'm sure you have thought about it already, but I would like to know some kind of an estimate -- how hard is it, how much work would it be, how deep would the changes need to be etc.

I would like to use Piggydb collaboratively for example with my students. In one Piggydb instance all of us would have separate user accounts. At the start (after logging in...) everyone would only see their fragments. But it would be possible to switch to a different user's perspective and see his fragments. And it would be possible to select a fragment and "add it" to my perspective, and create relationships from it to other fragments I see.

The use case is that I'm teaching a course and I would like every student to create their own "concept map" in piggydb, but I would like to bootstrap them by giving them something to start with (my map). So after the first lesson I would construct what was taught and they could take from it, and add anything to it. After the second lesson, they would be able to take new fragments from me and again add anything to it. And continually they could also share fragments with each other.

Implementation-wise I don't think it is far-fetched. Users are already present in the system; I don't know how fragment metadata looks like but it seems to me that you would only have to add a field containing a list of users that want to display this fragment in their "perspective". As for relationships and tags, while viewing a fragment a user should only be shown those that are enabled for his perspective; e.g. if a student creates a fragment and connects it to my fragment (or assigns his tag onto my fragment), by default I wouldn't see that.

I realize this is rudimental and is based on trust, but it would already be hugely beneficial to all the use cases I have in mind. Even now when I share a piggydb with my fianceé this functionality would be immensely helpful.

Problems that I see:

Fixing these would require having metadata on relationships which is probably not possible yet. (And more generally, some well thought-out access control system in place.)

marubinotto commented 10 years ago

Thank you for sharing the interesting idea!

I think the easiest first step toward realizing your idea is to introduce 'private' fragment. A private fragment is only visible to the user who has created it. Relationships from/to a private fragment are also private.

Relationships between 'public' fragments and tags are relatively difficult to apply access control because they are not designed as duplicatable.

marubinotto commented 8 years ago

Hi al-Quaknaa,

Are you still interested in this topic?

I've been developing a new service called "Oinker" as a kind of successor to Piggydb and during the development your use case has always been in my mind.

I think your use case fits more naturally with Oinker's collaboration model, especially the "Reoink" feature helps teachers and students share and grow their knowledge.

I'd love to hear from you about it.

Daisuke

pihentagy commented 7 years ago

Oinker is nice, but it does not have tags at all. Will it change in the future?

Maybe what @martinkoutecky is looking for is a reviewing process: if I write a fragment, someone else should be able to propose changes to it, so I can accept/reject/edit manually.

Should I expect development in piggydb? Or are the devs busy writing oinker.me cotoa.me?