#summary Overview of the various groups of people in Melange
#labels Phase-Requirements,Contents-Skeleton

The [SoCOverview SoC framework] collects the [UserRoles roles] played by
various [UserModel users] together into [GroupModel groups].  These groups
are used to define the domain of information that each role may see and
interact with in various RoleViews and TaskViews.

== Organization ==

The Organization is a group of [UserRoles#Administrator Administrators] and
[UserRoles#Reviewer Reviewers] that represent a single participating
organization in a Program.

== Sponsor ==

The Sponsor is a group of [UserRoles#Host Hosts] that represent the
organization (e.g. Google) that is sponsoring the Program.

== School ==

The School is a group of [UserRoles#Contributor Contributors] that attend a
given educational institution that has been approved for participation in the
Program.

----
_Copyright 2008 Google Inc._
_This work is licensed under a_
[http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-attribution-2_5.html Creative Commons Attribution 2.5 License].
[http://creativecommons.org/licenses/by/2.5/ http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-2_5-88x31.png]
