From MozillaWiki
< Drumbeat‎ | p2pu‎ | courses
Jump to: navigation, search

Building Social with the Open Web

Course Description

Social infrastructure has become an important part of building web applications. With the proliferation of social web applications it is becoming increasingly important to focus on standards that maximize interoperability. This course will introduce several protocols and specifications that allow developers to build decentralized, interoperable social applications. The scope of the course will be determined as we make progress, but topics covered may include decentralized identity, real time activity streaming, delegated API authorization, contact sharing, social graph APIs, service discovery and comment / annotation aggregation.

Who are You and Can you lead this course in September

Paul Osman. I can lead this course in September.

Major Project

Course participants will collaborate on building an Open Source social networking site. The site will allow users to register, create a public profile, share and comment on content and follow other users. The scope of the project will be staggered and milestone-based, allowing course participants to work at a self-determined pace.

What you should know

You should be a web developer with the following experience:

  • At least one dynamic server-side language (Ruby, Python, PHP, Perl, etc).
  • An MVC like framework (Rails, Django, Zend Framework, etc)
  • HTML / CSS and JavaScript
  • Source control using SVN, Git or hg. (We'll probably end up using Github)

Participants should be able to pick up new languages and frameworks fairly quickly as we will probably all be working with the same technology stack.

What you can expect to learn

Course participants will gain experience working with the following protocols:

  • OpenID - an open, decentralized standard for authenticating users
  • OAuth - an open standard that allows users to share private resources
  • WebFinger - an open standard that enables service discovery on user profiles.
  • Possibly others (ActivityStreams, PubSubHubbub, Portable Contacts, Salmon)

Additionally, because the course will be centered around an Open Source project, participants will gain experience working on remote teams, reviewing code, using version control and online tools for collaboration. Participants will also gain experience presenting technical topics as each team working on a component will be responsible for sharing the details of their implementation with the rest of the group.

What you might learn if you work hard

Because the course will be milestone based, the harder we all work, the more we can cover.

Things we won't cover

This course will not cover basic web development topics (setting up and configuring web servers, writing secure code, HTTP, etc).

What will I build?

You will build one or more components of an Open Source social networking site that will serve as a reference implementation for a number of open web standards and protocols.

Are you basing your course on existing courseware?

Nope! Just the various resources made available by the communities developing these specs:

and more! :)

Hey! I need help!

This course has an ambitious roadmap. I would appreciate any help from other developers with experience implementing specs like OpenID, OAuth, ActivityStreams, PubSubHubbub, Salmon, WebFinger, etc. Experienced developers could help coordinate and mentor groups working on project milestones.

Also, my experience is primarily in back-end web development. I can get by, but I'm pretty shoddy at design and UI development. If there are any Design, HTML / CSS / Javascript wizards who'd like to join the course and learn about open web specs, your expertise would certainly come in handy :)