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 ?