[p2pu-dev] [p2pu-community] P2PU API user story

Jos Flores josmasflores at gmail.com
Sat Jun 9 11:24:23 UTC 2012


And to add to the previous message, a more fundamental question: Why
would anyone want to run SOGTA against the P2PU API instead of running
SOGTA on P2PU?

another questions/suggestions:
 - P2PU login could rely on available services; not sure what's the
state of OpenID, but at least Google, Twitter, Facebook, and BrowserID
would make life easier for new users, and for the API too.
 - I don't see the relation between email integration and the API?
 - How much functionality would SOGTA deliver itself and how much
functionality would depend on P2PU; for instance for forums, user
profiles, internal messaging... This ties to my first question; why
building on top of the API when you can have everything for free on
P2PU?

I can think of uses for the API but if you want to run a
course/group... that is Lernanta's strong suit, why use something
else? I can see it from a consumer/producer of information from mobile
devices, or analytics, and so on, but not too clear on the main use
case shown here.

cheers,
José


On 7 June 2012 13:12, Jos Flores <josmasflores at gmail.com> wrote:
> Hey guys,
>
> a quick reply; I haven't read the whole message yet and I will, but
> for the functionality that you are mentioning... would it be an option
> to consider an adaptive and responsive redesign of the site instead of
> creating an API?
> http://blog.easy-designs.net/archives/2011/11/16/on-adaptive-vs-responsive-web-design/
>
> John had a responsive prototype a few months back. Just a thought!
>
> cheers,
> José
>
>
> On 7 June 2012 13:04, Dirk Uys <dirk at p2pu.org> wrote:
>> Hi everyone
>>
>> We've had some thoughts, some talk, and even the start of an
>> implementation for a P2PU API. It seems like everyone agrees that it's
>> a good idea and something that we need, but currently we are lacking
>> concrete use cases (maybe because we don't have the complete API yet -
>> a bit of a chicken and egg problem).
>>
>> So I propose that we start by building a few prototypes of what we
>> would like to use an API for. A prototype doesn't need to be a running
>> program, although a running prototype would be great! We just need
>> something a little bit more tangible to help us think about the ideal
>> API that we want for P2PU.
>>
>> A prototype may look something like this:
>>
>> Lets say I want to build something to run a MOOC, I'll need to use the
>> following parts of P2PU:
>> - Authentication
>> - User profiles
>> - Activity
>> - Notifications
>> - Messaging
>> - Badges
>>
>> So lets think a little about a user story:
>>
>> I go to mooc.org and see a mooc that I like - "The study of geographic
>> and temporal art as encountered in urban environments - SOGTA". I
>> decide to sign up for the MOOC. When I click on sign-up I get
>> redirected to P2PU to sign-in to my P2PU profile. Once I signed in,
>> I'm asked by P2PU if I want to allow mooc.org to send me notifications
>> and publish activities to my activity feed?
>>
>> Once I confirm I am redirected back to mooc.org. I am now signed up
>> for SOGTA with my P2PU profile. On mooc.org I can participate in group
>> discussions. Whenever I get a reply to a message that I posted in a
>> discussion, I receive an email in my inbox. When I reply to the email,
>> my message is also posted in the group discussion thread.
>>
>> Every week I receive an email from the MOOC organizer that informs me
>> what's happening with SOGTA.
>>
>> On mooc.org there is a list of courses that is relevant to SOGTA. I
>> can participate in these courses together with other people that is
>> also signed up for SOGTA. There is also lots of references to other
>> learning resources like coursera.
>>
>> Finally, after participating in the MOOC, I receive a SOGTA
>> participation badge to show that I completed the MOOC. This badge is
>> shown on my profile at P2PU, but it's stored in my open badge
>> backpack.
>>
>> Interaction between mooc.org and p2pu.org may look like this:
>>
>> When someone at mooc.org creates a new MOOC, the MOOC gets published
>> to the course register at p2pu.org:
>>
>> https://api.p2pu.org/courses PUT {'title': 'The study of geographic
>> and temporal art as encountered in urban environments', 'shortcode':
>> 'SOGTA', 'signup-url':'mooc.org/sogta/sign-up', 'course-style':'MOOC',
>>  'tags':['art','geo-art'], ... }
>>
>> Now the "The study of geographic and temporal art as encountered in
>> urban environments" will show up when someone searches for "geographic
>> art" on the P2PU course register!
>>
>> https://api.p2pu.org/courses also support GET,POST and DELETE to
>> query, update and delete courses from the course register
>>
>> When a user signs up for a MOOC on mooc.org, the browser will be
>> redirected to https://p2pu.org/login. After the user successfully
>> logged in, they get a token and user profile from p2pu.org and that is
>> passed onto mooc.org (handled by javascript without the user knowing
>> anything about it). mooc.org then does a post to
>>
>> https://api.p2pu.org/user/verify-login POST
>> {'user-profile':'https://p2pu.org/dirk',
>> 'token':'bd46c283195c0aefaffb179f6197f18d184d38b8'}
>>
>> which respons with 200 OK to indicate that the user is logged in and
>> that the token is valid.
>>
>> mooc.org can now safely add https://p2pu.org/dirk to the list of users
>> that signed up for the MOOC. mooc.org also sends a message to
>> https://p2pu.org/dirk to give him instructions about SOGTA
>>
>> https://api.p2pu.org/send-message POST
>> {'user-profile':'https://p2pu.org/dirk', 'subject':'Welcome to SOGTA',
>> 'content':'We are glad that you joined SOGTA ...' }
>>
>> p2pu.org automatically add 'app':'mooc.org' to the data and depending
>> on the user's preferences is sent a message to the email address
>> registered with p2pu.org
>>
>> Whenever a significant action is performed in SOGTA by a user,
>> mooc.org does the following:
>>
>> https://api.p2pu.org/activity PUT {'subject':'https://p2pu.org/user',
>> 'verb':'post', 'object':'https://mooc.org/sogta',
>> 'verb-url':'https://mooc.org/sogta/comment/135', 'message':'user
>> posted a comment in the MOOC SOGTA'}
>>
>> This is only allowed if user gave permission to mooc.org to post
>> activity. If this failed mooc.org may choose to do
>>
>> https://api.p2pu.org/activity PUT {'verb':'post',
>> 'object':'https://mooc.org/sogta',
>> 'verb-url':'https://mooc.org/sogta/comment/135', 'message':'A new
>> comment was posted in the MOOC SOGTA'}
>>
>> https://api.p2pu.org/activity GET {'noun':'https://p2pu.org/user'} -
>> will return all activities involving user
>>
>> https://api.p2pu.org/activity GET {'noun':'https://mooc.org/sogta'} -
>> will return all activities involving SOGTA
>>
>> When a user makes a comment and receives a reply, something like this
>> can happen:
>>
>> https://api.p2pu.org/notification PUT
>> {'profile':'https://p2pu.org/username', 'subject':'[SOGTA] reply to
>> comment', 'message':'Someone replied to your comment',
>> 'email-reply-possible':'True'}
>>
>> This call returns
>> {'reply-token':'005f035e7d1b1c2ff6de0d4a73cc2f040d5b4127'} to mooc.org
>>
>> The user receives an email if notifications are allowed for mooc.org.
>> The email look like this:
>>
>> From: reply+005f035e7d1b1c2ff6de0d4a73cc2f040d5b4127 at reply.p2pu.org
>> Subject: [mooc.org] [SOGTA] reply to comment
>> Message:
>> Someone replied to your comment.
>>
>> You can respond by replying to this email with your text:
>> <here>
>> </here>
>>
>> When the user replies to the email, mooc.org gets a post from p2pu.org
>> at the URL that mooc.org had to supply when registering to use the
>> P2PU API:
>>
>> https://mooc.org/api/message-in PUT {'from':'https://p2pu.org/user',
>> 'reply-token':'005f035e7d1b1c2ff6de0d4a73cc2f040d5b4127',
>> 'message':'???'}
>>
>> I haven't yet thought through the badge API for this scenario.
>>
>> This email turned out to be rather long, so I posted it on my blog
>> (http://disfunksioneel.blogspot.com/2012/06/p2pu-api-story.html) to
>> make it slightly more readable.
>>
>> Now it's your turn!
>>
>> Cheers
>> d
>>
>> ps. I'll by beer for anyone that can figure out where the tokens come
>> from. You'll have to be in Berlin during July to get your beer :)
>>
>> --
>> You received this message because you are subscribed to the "P2PU Community" group. Please stick to the ground rules:
>> http://groups.google.com/group/p2pu-community/web/ground-rules
>>
>> Specific topics such as research, web development and course design are discussed in separate working groups:
>> http://wiki.p2pu.org/mailing-lists


More information about the p2pu-dev mailing list