This is an idea I wanted to build myself, but as I haven't the time, I'll give it out to anyone who'd like it. I have attempted to describe the pragmatical issues to save as much of your time as possible as well.
Problem
People have privileged data to trade with friends, but want it (a) private to those friends, or (b) aggregated to put all friends' data in one place, for easy browsing and searching.
Use case #1
I want to share my friends codes for Nintendo DS games with people I know, but not post them publically. I also want a list of my friends' friends codes so I can put them in at once without tracking them down individually.
Use case #2
Every month I go through a song and dance with someone in comments in order to trade IconBuffet Free Deliveries. It'd be ideal if I could list the sets I have and want and he could list the sets he has and wants, and our friends collecting icons could do the same, and I could search friends for IconBuffet wants I have and haves I want.
Social network
A big part of this app is the social network for authorizing someone to see data. There are a few strategies for developing this part of the app:
- Piggyback on LiveJournal. I guess I'm biased: that's where my network already is. However I don't think you'll find an existing network with the same scope (nearly two million active accounts) and the open protocols that make it easy for you (OpenID for URL-based authentication and LJ protocol or FOAF for getting the friends data).
- Piggyback on Robot Co-op services or Flickr. They both have social network APIs (for "subscriptions" and "contacts"), and you could treat the people's profile URLs as their URL-based identities. This doesn't seem likely to map as well onto the problem as LiveJournal friends though; people use "friends" pragmatically.
- Use open, de-facto standards. As far as I know, this means FOAF and XFN. Neither of them will get you wide adoption, so you'd need to use both. I have no idea how you could possibly present this in some way a random reader of nintendo_ds could understand though.
- Build your own network. This is not pragmatic for various reasons I hope everyone realizes.
From these options, I would build it for LiveJournal, but design around URL-based identity (you need to to use OpenID for authentication anyway), so you can expand generally to FOAF and XFN (and other URL-based identity systems) sooner or later.
Name
I never thought of a good name for this project. The best one I know right now is "jtrade" or "jTrade," which, I admit, sucks. I used one or two others in my abortive versions of this app but don't remember what they were (they weren't any better).
Tech
I would build it as a Catalyst app, of course, as most of the requisite parts are on CPAN, but as I resort to lazywebbing it I won't be picky. I'm sure some Pythonista seeking a Django project could make quick work of it as well.
Build it plz
Unlike a lot of new projects people seem to be undertaking, this is an app that not only could use spiffy buzzy technology, but solves an actual problem for people.
Comments
comment
Maybe you should have a look at Allegra. It’s an asynchronous network peer programming library developped for metabase applications. Allegra comes with two ready-made peers:
a web peer to host component applications, something like Zope but simpler and fully asynchronous
a PNS metabase peer, something like an RDF store but a lot better, a practical search engine and metadata store.
Allegra can be applied to solve your problem because I designed it specifically to be “safe for public use”.
For instance, there is no way to dump the content of a PNS metabase. It is not a database, you must browse its context graph. So, a user agent or a peer that has no clue about what is in a metabase cannot retrieve metadata from it.
Allegra is a work in progress but you can allready test it and why not develop your application with it:
http://laurentszyster/blog/allegra/
Regards and good luck anyway ;-)