25 May 2013, 09:05

Nouveau 'Pet Project' : Gestionnaire de favoris distribués/fédérés

Décidant de me retrouver un "pet project" histoire d'agrémenter mes soirées/insomnies, joindre l'agréable à l'utile, et me faire la main / consolider mes connaissances sur des technos web diverses, je repars dans une nouvelle version de mon gestionnaire de favoris avec cette fois-ci une dimension fédérée/distribuée.

Ci-dessous, un premier jet de specs ; vos retours sont les bienvenus.

Restera aussi à trouver un nom à ce projet ^^

Purpose

A federated/distributed bookmark app :

  • you can store your own bookmarks
  • you can push/get bookmarks to/from others

Features

  • CRUD a bookmark
  • Pagination
  • Search by 1 to n tag (and'ed query)
  • Account management (authn & authz - minimal basic set)
  • Privacy (for some bookmarks not to be synced and/or visible ?)
  • Pub/Sub or Sync mechanism
  • Global vs per user search, ie all bookmarks, bob's bookmarks, my bookmarks
  • RSS Feeds
  • Basic user directory ?
  • API ?
  • Mobile : App and/or web mobile ?
  • Copy bookmark from other to their own ?
  • Push bookmarj to someone ?
  • Group management (somehow) ?
  • User's comment one someone's bookmark ?
  • Import from X service ?

Model

Bookmark :

  • "id"
  • "url"
  • "description"
  • "author"
  • "tag"
  • "comment"
  • "created_at"
  • "private" (optional)
  • "updated_at" (optional)

Potential technologies

  • CouchDB as Document DB and for the use of the replication or changes mechanism ?
    • But pagination management is not trivial
    • Other (No)SQL Alternative ?
  • AngularJS for the frontend side ?
    • CornerCouch or native AngularJS to interact with CouchDB ?
  • PouchDB if CouchDB for some offline mechanism ?
  • Any Backend if not CouchDB ? If yes, more python based :)
  • Any "middleware" required ?