Socialwg/Social API/Requirements

From W3C Wiki

API requirements

As derived from user stories. So far completed for approved user stories.

Amy Guy (talk) 19:45, 3 August 2015 (UTC) (Originally published at rhiaro.co.uk/2015/08/api-requirements)

Note: These requirements are deliberately limited by the contents of the user stories. If things seem obviously missing, this is because they were not referenced in the user stories. I've tried not to over-generalise when summarising them, too.

Process:

  1. List required functionality from each user story.
  2. Cluster related functionality, find overlap between stories (see colours/tags).
  3. Organise requirements into shortlist.

Requirements shortlist

In no particular order. Tags/colours map to requirements by story, below.

sub Subscribe to content

  • According to some filter, eg. by a certain user, posted to a certain group.
  • Undo a subscription.

pub Publish content

  • Including text, photo, video, audio.
  • Including metadata and relations to other things, ie. audience/to, tags, reply-to, likes.
  • Update published content.
  • Delete published content.

notif Notifications

  • User is somehow alerted when content is created that explicitly targets them (ie. as recipient or subject).

read Read content

  • According to permissions.
  • Discovery of content according to criteria:
    • type (text, photo..);
    • associated with group;
    • created by a particular user;
    • by the content's target (replies/likes of a particular post).

Requirements by story

SWAT0

  • Publishing a photo.pub
  • Push notifications.notif
  • Subscription to a user.sub
  • Commenting on / replying to a post.pub

User posts a note

  • Publishing text content.pub
  • Updating published text.pub
  • Deleting published text.pub

Reading a user's recent posts

  • Reading comments / replies.read
  • Reading posts from a particular user.read
  • Viewing photos from a particular user.read

Following a person

  • Subscription to a user.sub
  • Publishing a photo.pub
  • See a user's subscriptions.sub
  • Read posts from a particular user.read
  • Unsubscribe from a user.sub

Read Social Stream

  • Subscribe to a user (one way).sub
  • Join a group ~= subscribe to group content.sub
  • Publish a video.pub
  • Publish audio.pub
  • Private sharing.read pub
  • Publish subscriptions.sub

Integration: Adding recommendations

  • Liking / recommending a post.pub
  • Subscribe to a user.sub
  • View likes of a post.read
  • Posting from one interface to another system (scope?)

Integration: Adding comments

  • Reply to posts.pub
  • Notifications.notif
  • Subscribe to a user.sub
  • Posting from one interface to another system (scope?)

Direct messaging

  • Publishing text content; specifying audience.pub
  • Private sharing.read
  • Notifications.notif

Brainstorming

See early brainstorming (not based on user stories).