Socialwg/Social API/More user stories
Socialwg/Social API/User stories is now closed to additions, so you may add more user stories here.
- 1 Elegantly Moving Social Network provider
- 2 User profile management V2
- 3 Integration : Authorizing web page access
- 4 Labels for event attendees
- 5 Person Tagging V2
- 6 URL based API Entrypoint
- 7 Anonymous Likes
- 8 Threaded Conversation
- 9 Communicating with mail users
- 10 Liking a Photo found in an Album
- 11 Flexible Relationships Between Agents (People and/or Organizations)
- 12 Subscribing to specific channels when following an account
- 13 Work Collaboration
- 14 Following a brand
- 15 Linked Data integration
Elegantly Moving Social Network provider
A better behaved version of Moving of identities
- Bob was using a social web service provider, but now wishes to have his own domain name so that he can control his brand name fully
- He buys his new Social Web Server ( e.g. a Freedom Box ), plugs it into the fiber optic cable, and it sets up the DNS for him
- User Story
- Bob requests a full file transfer from his service provider to his Social Web Server. (To do this he has may have to give access rights to the Service Provider to his new personal Social Web Server) and he requests that all the resources from the old server redirect to the new URLs
- When done, whenever any client follows links from other social web servers to his old social network they get a 303 and they end up on the new web server
- This gives all the social web servers time to rewrite their links to the new server
- But at no point did any of the social network links on the web break down
- Bob was able to change social web service provider without loosing his social network
- As much as I would love this to be a reality, I don't see it being possible. Updating every URL to redirect would either require all systems to use the same URL, or do some upload to your old service saying 'URL X should point to URL Y'. Sadly I don't see that there is any real impetus for the old service provider to support this. Exports of data would all be different depending on system too. Benjamin Roberts (talk) 02:07, 25 February 2015 (UTC)
User profile management V2
- Kim creates a personal profile with a set of data about herself (for example her name, avatar picture, and location).
- Kim later adds new data to her to profile.
- Kim reconsiders her personal privacy boundaries; she updates her profile to remove some data.
- Note: this stays away from naming many fields too specifically. They could be any fields as this allows for either a fixed set of fields or (my preference) an extensible set of fields. We can discuss that at a later time but is separated from user story.
- Originally From: Evan Prodromou see Socialwg/Social_API/User_stories#User_profile_management
- Revised: Benjamin Roberts (talk) 21:10, 24 February 2015 (UTC)
- -1 The original story was implemented and demoed using SoLiD at the F2F in Paris. It illustrates a critical point of web standards, extensibility. And highlights a critical weakness in centralized technology which cannot be easily extended Melvin Carvalho (talk) 01:36, 30 July 2015 (UTC)
Integration : Authorizing web page access
- Bob create a webpage and wants to make it visible to Amelia.
- Bob integrates the social API with this web page and gives Amelia permission to view it.
- Ruth visits the webpage and is asked to authenticate through via her social service. She gets permission denied.
- Amelia visits the webpage and is asked to authenticate through via her social service. She can then view the page.
Note: This turns the source user story into an integration user story that I think is within the scope of the API, but perhaps not for a first revision.
- Originally From: Mike MacGirvin at red#matrix, via private message see Socialwg/Social_API/User_stories#Creating_web_pages
- Revised: Benjamin Roberts (talk) 21:45, 24 February 2015 (UTC)
- -1 This does not seem an improvement over the original story. I have no idea what "Bob integrates the social API with his web page" means. The other one did not mention the social API, which there is not yet consensus on what it is meant to be. The original story described a very simple access control request which made sense. Henry Story (talk) 23:22, 24 February 2015 (UTC)
- I tried to show this as integration, using the API to control access to a site. Web sites already do this with "Login with Facebook/Twitter/etc." Allowing this functionality was what I took away from the important part and what I thought should be instilled in its own user story. Benjamin Roberts (talk) 01:58, 25 February 2015 (UTC)
Labels for event attendees
- Ann creates an event for a party and invites a group of her friends. Ann sets the event to allow anyone to give themselves labels.
- Bob RSVPs that he will attend.
- Catherine is helping with the party so she RSVPs that she will attend and gives herself the label of "Co-organizer".
- Jim RSVPs that he will attend and decides to be funny and give himself the label of "Life of the party".
- Ann sees Jim's title and decides to remove Jim's label from the event page.
- Ann decides to only allow her friends Catherine and Jenna to be able to give themselves labels.
- Jenna RSVPs that she will attend and decides she does not need to give herself a label.
- Michael RSVPs that he will attend and tries to give himself a label but it does not work.
Note: this is an attempt to make a more generic version of Socialwg/Social_API/User_stories#Assigning_roles_during_meeting
Person Tagging V2
Suggested revision of Socialwg/Social_API/User_stories#Person_tagging
- Eric sees a photo posted by Dora
- Eric recognizes their mutual friend Cassie in the photo
- Eric tags Cassie in the photo with the specific location of Cassie's face in the photo
- Cassie receives a notification that she has been tagged in a photo.
- Dora sees Eric's person-tag but realizes he tagged the wrong Cassie, so she corrects the tag to the correct Cassie
- Cassie sees the photo and decides she would rather not be tagged in a photo of her holding a bottle of beer, so she removes the tag
- Cassie does not want to get tagged automatically by others and opts out of tagging by others.
- Alyssa sees the photo Dora posted and recognizes Cassie in the photo.
- Alyssa tags Cassie in the photo but the tag does not appear.
- Alyssa also recognizes Tammy in the photo and attempts to tag her face.
- Tammy's system does not allow photo tagging of any of its users. and the photo tag does not appear.
Note: this version assumes that before a tag is displayed it is confirmed with the person being tagged. While I believe its impossible to force tagging to not be displayed (you can always link to someone directly on the web no matter if they like it or not), its important to have the ability for well behaved systems to know user's opt-out status.
URL based API Entrypoint
- Alice is browsing Bobs social profile on the web and finds an interesting note
- Alice navigates to the notes permalink and decides she wants to inspect the Activity Streams representation of the note
- Alice hits the note's url with curl including a "accept:application/json" header and receives a JSON object that includes all the information from the permalink page she was just looking at.
- Erica reads an an article and wants to support it but the idea is somewhat controversial within your company
- Erica "likes" the article but only the like count is incremented, her name is not associated with the like and the like does not show up in any activity stream
For some background see http://en.wikipedia.org/wiki/Conversation_threading
Communicating with mail users
Andreas wants to set up a social media platform for his users. He wants his users to be able to communicate with other people who for some reason only communicate by mail. His users like to use the same user interface for all communications.
Liking a Photo found in an Album
- Jessy browses throught Ralph's album of photos titled "Visiting Bay Area"
- Jessy Likes one of the photos titled "4/20 in Golden Gate Park"
- Ralph now can see Jessy's like when visiting this Photo page
- related to Socialwg/MediaObject
Flexible Relationships Between Agents (People and/or Organizations)
- Several people decide to form a loose (non-legal, peer-to-peer) organization to work together on projects, share a space, and want to openly invite people online to join them.
- They set up the organization with a name and website, record themselves as members of the organization, and issue an open invitation to other people to join them as *members*.
- They then decide that *member* is too strong a term for what they want to convey to others who might want to join, and change their relationships with the organization to *affiliate*.
- They also want one affiliate to take responsibility to collect money from everyone to pay the rent for the space, so they post a position called *desk collector* for the organization. Someone volunteers and assigns themselves to the position.
- After a few months, that person is tired of collecting money, and removes themselves from that position. The position remains empty for a week, and then someone else volunteers to collect money for a while, and assigns themselves to that position.
- They decide to formalize their mentorship practice. They create a relationship/role called *mentor* and assign each person a mentor from within the network.
- From Lynn Foster 15:05, 18 April 2015 (UTC)
Subscribing to specific channels when following an account
- Henry publishes multiple channels from his account Blog, Status Updates, CheckIn, Video, Photo, Audio etc.
- Pavlik follows Henry and chooses to subscribe to two of his channels Blog and CheckIn
- When Henry publishes CheckIn to INRIA, Pavlik receives notification
- When Henry publishes Photo, Pavlik does NOT receive notification
- +1 I think this functionality would be great, but only hesitant its needed for v1.
This is a start of a potential set of use cases where people are collaborating in a networked situation. If they are out of scope, they can be removed.
Requesting Collaboration on Work
- Bob decides to organize an event (or design a product, or translate a document, etc.).
- He publishes several tasks needed to be done to accomplish this outcome, each with a due date and dependencies.
- Judy sees the list of tasks, and commits to doing one of them by the due date.
- The task Judy committed to now shows up as taken by Judy.
- Bob is notified that Judy has taken that task.
Change of Estimate of Work (predecessor above)
- Judy starts working on her task and realizes it will take more time than she thought.
- Judy posts a new estimated task completion date along with an explanation.
- Bob is notified of the change.
- Bob has a choice of automatically bumping the dependent due dates out to reflect this change. He accepts that option and succeeding asks are updated with new due dates.
Requesting Help with Work (predecessor above)
- Judy thinks that if she has some help, she could complete the task faster.
- Judy posts a request for collaboration on her task.
- Fred sees the request and accepts it, with a note as to how he can help.
- Fred's commitment to the task becomes visible.
- Bob and Judy are notified.
- From Lynn Foster 23:00, 16 June 2015 (UTC)
Following a brand
- Damien loves Bubbly brand soda.
- Damien follows the Bubbly corporate account.
- The Bubbly soda social media manager posts a note: "Did you know that Bubbly brand soda is sold in over 150 countries worldwide?"
- Damien receives the Bubbly account's note in his inbox.
- The Bubbly soda social media manager posts an offer: "Get a 30% discount on Bubbly brand soda over the holiday weekend!"
- Damien receives the offer in his inbox.
- 0 I would be +1 but I'm not sure its necessary for v1 of the API. I do think its an important user story though. As with issues before I would suggest we change the reference to the confusing term "inbox" Benjamin Roberts (talk) 17:31, 29 July 2015 (UTC)
Linked Data integration
- Tim likes to integrate and visualize a lot of data to help mankind. This data includes both Activity Streams 2 data and other Linked Data in RDF serializations such as JSON-LD and Turtle.
- -1 This isn't even really a user story, this is a statement of wanting to do something, not an action.
- -1 No concrete steps provided for a user to take, nor documentation of user visible results, thus no *story*. Plumbing-centric jargon (syntax, w3c drafts, formats) references have no place in a *user* story. Tantek Çelik (talk) 17:24, 29 July 2015 (UTC)
- +1 promotes unexpected reuse, which is the value proposition of the web Melvin Carvalho (talk) 01:32, 30 July 2015 (UTC)
- -1 General data visualisation is out of scope of this WG, regardless of what formats the data is in. Amy Guy (talk) 10:30, 30 July 2015 (UTC)