Difference between revisions of "Sugar Network/Concept"

From Sugar Labs
Jump to navigation Jump to search
 
(36 intermediate revisions by 3 users not shown)
Line 1: Line 1:
This page is a guide to basic Sugar Network concepts. See also [[Sugar_Network|introduction page]] and [[Platform_Team/Sugar_Network|technical implementation]] pages.
+
This page is a guide to basic Sugar Network concepts. See [[Platform_Team/Sugar_Network/Architecture|its twin page]] for a technical point of view. Also, visit the [[Sugar_Network|introduction page]].
  
== Summary ==
+
== Overview ==
 +
 
 +
The major goal of the Sugar Network is to provide an infrastructure to let people share different types of content, e.g., Sugar Activities, artifacts created by Sugar Activities, books, etc. for friends, a class, parents, teachers, or Sugar Learners anywhere.
 +
 
 +
Sugar Network's functionality is split into two parts:
 +
 
 +
* Core functionality, which covers low level needs to work with content ([[#Summary|described below]]);
 +
* Any number of representation models for usage of content, which are based on core functionality and add high level scenarios to interact with the same content, e.g., gamification elements. Representation models are pluggable and optional.
 +
 
 +
== Targeted audience ==
 +
 
 +
{| border="0"
 +
|- valign="top" align="let"
 +
| [[File:Sugar-network-audience.png|350px]]
 +
| The audience for Sugar Network is highly diverse:
  
This initiative is tailored by the following decisions:
+
* Students, which might be of different ages depending on a particular representation model or usage scenario;
 +
* Educators who need to populate content for students and review what students uploaded to the Network;
 +
* Deployment supporters who need to provide technical and educational support;
 +
* Software developers who will have a chance to get feedback directly from users.
  
* There is a real need to support off-line environments;
+
Any individual person might belong to several categories at the same time, e.g., be a content creator, a user of content created by different creators, a reviewer of content uploaded by another people, etc.
* The list of provided services should cover the full circle of collaboration behavior for students and teachers;
+
|}
* Not trying to reinvent the Internet by duplicating all services available there making them off-line;
 
* The list of provided services should be thought out so that the Sugar Network is equally useful operating on-line;
 
* Stimulate a "doing" workflow.
 
  
== Overview ==
+
== Summary ==
  
The Sugar Network is all about:
+
The Sugar Network is about all these:
  
* [[#Players|Players]],
+
* [[#Users|Users]],
* play different [[#Roles|Roles]],
+
* in different [[#Contexts|Contexts]],
 
* interacting with [[#Resources|Resources]],
 
* interacting with [[#Resources|Resources]],
* to accomplish their [[#Needs|Needs]],
+
* to accomplish their [[#Needs|Needs]].
* being changed, Resources broadcast [[#Events|Events]],
+
* When changed, Resources broadcast [[#Events|Events]].
* the regular Players' behaviour might be described by the [[#Workflows|Workflows]].
+
* Having [[#Workflows|Workflows]] defined that describe the regular behaviour of Users.
  
 
== Needs ==
 
== Needs ==
  
The needs that Sugar Network is trying to solve. They might be explained by the following selection from the [[Wikipedia:Fundamental_human_needs|Fundamental human needs]]:
+
The needs that the Sugar Network is trying to support might be described by the following selection of [[Wikipedia:Fundamental_human_needs|Fundamental human needs]]:
  
 
'''Identity'''
 
'''Identity'''
  
: Each player should be able to create and manage a unique identity in the network. Every interaction of the player with the network should be accounted on the player's metrics, as eventually this may be part of the player dashboard. Each player may have an individual reputation, according to other players ratings made to his contributions.  
+
: Each User should be able to create and manage a unique identity in the network. Every interaction of the User with the network should be accounted in the User's metrics, as eventually, this may be part of the User's dashboard. Each User may have an individual reputation, based on other Users' ratings made of his contributions.  
  
 
'''Understanding'''
 
'''Understanding'''
  
: A player should be able to view all objects and apply the optional filters including the resource type, the Network Zoom level, tags or the associated player/team. In this preview, we may be able to offer basic statistics of the object in order to give analytical perspective to the selection. The player should be able to select the object in order to participate in a deeper level where he should be able to explore the associated resources. As a player, I might receive events from the objects I'm subscribed to as well as personal events like invitations made by other players.
+
: A User should be able to view all objects and optionally apply filters to control their view based on the resource type, the Network Zoom level, tags, or the associated Users. In this preview, we may be able to offer basic statistics of the object in order to give an analytical perspective to the selection. The User should be able to select the object in order to participate on a deeper level, where he should be able to explore the associated resources. As a User, I might receive events from the objects I'm subscribed to, as well as personal events, like invitations made by other Users.
  
 
'''Participation'''
 
'''Participation'''
  
: Any player might be able to comment on any object, rate any contribution, edit any wiki, create any issue, attach any object to any gallery, become a follower of any object.  
+
: Any User may comment on any object, rate any contribution, edit any wiki, create any issue, attach any object to any gallery, become a follower of any object.  
  
 
'''Creation'''
 
'''Creation'''
  
: Any player might be able to create a new project by defining a name, the type of project and the project objective(s). A project creator may be able to invite other players to follow/contribute to his project.
+
: Any User may create a new Context by defining a name, the type of Context, and the Context objective(s). A Context's creator may invite other Users to follow/contribute to his Context.
  
== Players ==
+
== Users ==
  
 
These are real people that take part in the Sugar Network.
 
These are real people that take part in the Sugar Network.
 
Attributes:
 
 
:* nickname,
 
:* Sugar colors.
 
  
 
Actions:
 
Actions:
Line 57: Line 66:
 
=== Reputation ===
 
=== Reputation ===
  
Any particular Resource, i.e., contributions of some Players, might be voted by another Players. The Reputation of particular Player depends on how other Players appreciate him.
+
Any particular Resource, i.e., contributions of some Users, might be rated by another Users. The Reputation of a particular User depends on how other Users appreciate him or his contributions.
  
 
=== Statistics ===
 
=== Statistics ===
  
Basing on [[#Events|Events]], it is possible to [[#Understanding|measure]] particular Player's behaviour. It might be useful, e.g., for researchers.
+
Based on tracking of [[#Events|Events]], it is possible to [[#Understanding|measure]] a particular User's behaviour. This might be useful, e.g., for researchers.
 +
 
 +
== Contexts ==
 +
 
 +
In the Sugar Network, Contexts are instances of content or software that include with them assumptions on how they may be shared or used.  A Context describes how Users behave with Resources. A Context represents the Behavior or set of Behaviors that are supported for associated Resources.
 +
 
 +
There is a predefined general Context, the Global Context, which contains all other Contexts (according to the current [[#Network_Zoom|zoom level]]). Thus, Users can interact with all Resources accessible on this [[#Network_Zoom|zoom level]].
 +
 
 +
Context types may differ. For now, these are the only Context types:
 +
 
 +
* Sugar Activities,
 +
* Various content (might be {{Code|.xol}} libraries).
  
 
== Resources ==
 
== Resources ==
  
The whole experience within the Sugar Network is about Player's interaction with resources. The major resource is [[#Projects|Projects]] that contain all other resources:
+
The whole experience within the Sugar Network is about a User's interaction with resources. Resources are tied to the current Context and might be of different types:
  
 
* Feedback related:
 
* Feedback related:
Line 72: Line 92:
 
** [[#Problems|Problems]],
 
** [[#Problems|Problems]],
 
* [[#Wiki|Wiki]],
 
* [[#Wiki|Wiki]],
* [[#Gallery|Gallery]],
+
* [[#Artifact|Artifact]],
 
* Development related:
 
* Development related:
 
** [[#Sources|Releases]],
 
** [[#Sources|Releases]],
 
** [[#Objectives|Objectives]].
 
** [[#Objectives|Objectives]].
 
When it is possible, Resources support the history. Resources can't be physically removed, only stated as removed and hidden from the default observing.
 
 
=== Network Zoom ===
 
 
A basic conception that should allow the Sugar Network to better scale depending of Player's purpose. The Network Zoom levels are similar to The [[Human_Interface_Guidelines/The_Laptop_Experience/Zoom_Metaphor|Shell Zoom levels]] (only the first three levels) and describe exactly the current ''zooming'' level of Sugar Network from an observer point of view. There are three Network Zoom levels:
 
 
* Worldwide, the whole Network;
 
* Neighborhood, accessible only if observer connected not to global server, e.g., to the one localed in school;
 
* Private, observer himself.
 
 
The whole Projects are associated with particular Zoom level, i.e., can be visible only on this particular level and all levels below. This level is also applied to all Project's resources.
 
 
=== Projects ===
 
 
The composite Resource that is a container for the rest types of Resources. Projects might be created with highlighting some particular type of Resources. It might be useful to, e.g., simplify usage when it will be possible to activate particular sub-Resource directly from the [[#Browser|Browser]].
 
 
Attributes:
 
 
:* Type:
 
:** General;
 
:** Activity, Sources is the default Resource when activating this Resource mean launching this activity;
 
:** Wiki, Wiki is the default Resource;
 
:** Gallery, Gallery is the default Resource;
 
:** Support, Objectives is the default Resource.
 
:* Network Zoom level:
 
:** Worldwide;
 
:** Neighbourhood;
 
:** Private.
 
 
Actions:
 
 
:* Create new Project;
 
:* Change Zoom level attributes;
 
:* Owner of project (initially, creator) can add/remove another Players from owners list;
 
:* Discuss the Project;
 
:* Vote for the Project;
 
:* Delete Project;
 
 
If related Resource creator is a team member, he can choose himself of the team as a Resource creator. If creator is a team, all votes for this Resource will go to the Project instead of a Player who created this resource.
 
  
 
=== Questions ===
 
=== Questions ===
  
General question about the Project. The users friendly interface to ask questions regarding current Project. The workflow is much simpler in comparing with regular bugs trackers, just ask your question and wait for answers.
+
General question about the Context. A user-friendly interface for asking questions about the current Context. The workflow is much simpler when compared to typical bug trackers (Trac, RT, etc.).  It is intended to be more like "forums" or wiki "discussion" pages—just ask your question and wait for answers. In some cases, Questions might be treated as a kind of simple [[Wikipedia:Knowledge base|knowledge base]] for the Context (in contrast to bug trackers, Questions are not closed after answers are provided). The most useful Questions might be picked up to compose the [[Wikipedia:FAQ|FAQ]] for the Context.
 
 
The rest of non-developers needs are covered by [[#Ideas|Ideas]] and [[#Problems|Problems]]. The developers needs are covered by the [[#Objectives|Objectives]] and its advanced view in particular.
 
 
 
Attributes:
 
  
:* Title, one line;
+
Other non-developer needs are covered by [[#Ideas|Ideas]] and [[#Problems|Problems]]. Developer needs are covered by the [[#Objectives|Objectives]] and its advanced view, in particular.
:* Description, multi-lined text;
 
:* A list of solutions provided by any Players.
 
  
 
Actions:
 
Actions:
Line 134: Line 108:
 
:* Discuss the Question;
 
:* Discuss the Question;
 
:* Vote for the Question;
 
:* Vote for the Question;
:* Create a Solution;
+
:* Create an Answer;
:* Discuss a Solutoin;
+
:* Discuss an Answer;
:* Vote for a single Solution;
+
:* Vote for a single Answer;
:* Vote given by Question creator means an answer for the Question.
+
:* Vote given by the Question creator means an Answer for the Question.
  
 
=== Ideas ===
 
=== Ideas ===
  
Any ideas regarding the Project. The users friendly interface to propose your idea to the current Project developers. The workflow is much simpler in comparing with regular bugs trackers, just offer you suggestion, look how other people will rate it and wait for the implementation.
+
Any ideas regarding the Context. A user-friendly interface to propose your idea to the current Context developers. The workflow is much simpler, compared to typical bug trackers—just offer your suggestion, see how other people will rate it, and wait for an implementation.
 
 
The rest of non-developers needs are covered by [[#Questions|Questions]] and [[#Problems|Problems]]. The developers needs are covered by the [[#Objectives|Objectives]] and its advanced view in particular.
 
 
 
Attributes:
 
 
 
:* Title, one line;
 
:* Description, multi-lined text;
 
:* A list of solutions provided by any Players.
 
  
 
Actions:
 
Actions:
Line 156: Line 122:
 
:* Discuss the Idea;
 
:* Discuss the Idea;
 
:* Vote for the Idea;
 
:* Vote for the Idea;
:* Create a Solution;
+
:* Create a Solution, a possible Implementation, Answer, or other Resource;
:* Discuss a Solutoin;
+
:* Discuss a Solution;
 
:* Vote for Solutions;
 
:* Vote for Solutions;
:* Project team member attaches one of Objectives to one of Solutions, the Idea's status becomes the same as Objective's.
+
:* A Context team member designates one possible Solution to one Objective, the Idea's status becomes the same as the Objective's.
  
 
=== Problems ===
 
=== Problems ===
  
Report about a problem that was met using this Project. The users friendly interface to complain about an error Player met working with the Project. The workflow is much simpler in comparing with regular bugs trackers, just complain and wait for fixing.
+
Report a problem with the Context. A user-friendly interface to complain about an error that the User encountered when working with the Context. The workflow is much simpler, compared to typical bugs trackers, just complain and wait for a fix.
 
 
The rest of non-developers needs are covered by [[#Questions|Questions]] and [[#Ideas|Ideas]]. The developers needs are covered by the [[#Objectives|Objectives]] and its advanced view in particular.
 
 
 
Attributes:
 
 
 
:* Title, one line;
 
:* Description, multi-lined text;
 
:* A list of solutions provided by any Players.
 
  
 
Actions:
 
Actions:
Line 178: Line 136:
 
:* Discuss the Problem;
 
:* Discuss the Problem;
 
:* Vote for the Problem;
 
:* Vote for the Problem;
:* Create Solution;
+
:* Create Solution (proposed fix);
:* Discuss a Solutoin;
+
:* Discuss a Solution;
:* Attach one of Releases as a Solution;
+
:* Designate a Release as a possible Solution;
 
:* Vote for a single Solution;
 
:* Vote for a single Solution;
:* Vote given by Problem creator means a fix for the Problem.
+
:* Vote given by the Problem creator means a fix for the Problem.
  
 
=== Wiki ===
 
=== Wiki ===
  
A collection of Wiki pages that use MediaWiki markup language, wikitext. Pages might be represented by a tree of pages. There is all time the root page. The idea to have a root page is to let it possible to merge these wiki pages to the standalone MediaWiki server.
+
A collection of Wiki pages that use MediaWiki markup language, wikitext. Pages might be represented by a tree of pages. There is always a root page. The idea of having a root page is to make it possible to merge these wiki pages to the standalone MediaWiki server.
 
 
Attributes:
 
 
 
:* Title, one line.
 
  
 
Actions:
 
Actions:
  
:* Create new Wiki page in hierarchy of pages;
+
:* Create a new Wiki page in the hierarchy of pages;
:* Upload arbitrary file to place a link on it on Wiki pages.
+
:* Upload an arbitrary file in order to place a link to it on Wiki pages.
:* Discuss the Wiki;
+
:* Discuss the Wiki topic;
 
:* Vote for the Wiki;
 
:* Vote for the Wiki;
  
Line 202: Line 156:
  
 
:* Modify existing page;
 
:* Modify existing page;
:* View the history of modifying.
+
:* View the history of modifications.
 
 
=== Gallery ===
 
 
 
A collection of activity objects of types depended on Project type. This is exactly the gallery to share your creatures. Using the [[#Browser|Browser]] it will be possible to explore Gallery entities directly on the top level.
 
  
Attributes:
+
=== Artifact ===
  
:* Title, one line;
+
A collection of binary objects, of types depending on Context type, associated the the Context. Such artifacts might be, for example, Journal objects created by Sugar Activities.
:* Description, multi-lined text.
 
  
 
Actions:
 
Actions:
Line 221: Line 170:
 
Todo:
 
Todo:
  
:* Simplify creating new Exhibit having a UI way to fast share just created activity object, e.g., from in Naming alert or from Journal.
+
:* Simplify creation of a new Exhibit by having a UI way to quickly share a newly created Activity object, e.g., from within the Naming alert or from the Journal.
 
 
=== Releases ===
 
 
 
For software Projects, this Resource is about released versions of this Project software. This is exactly what Player can execute. There might be several versions with different stability levels. By default, Players execute only recent stable version, but it is possible to choose any version.
 
  
Attributes:
+
=== Implementation ===
  
:* Version number;
+
For software Contexts, this Resource is about released versions of this Context software. This is exactly what a User can execute in their instance of Sugar. There might be several implementations with different stability levels. By default, Users execute only the most recent stable version; but it is possible to choose any version.
:* Release date;
 
:* Stability level.
 
  
 
Actions:
 
Actions:
  
:* Project owners can create new Version;
+
:* Context owners can create a new Implementation;
 
:* Launch.
 
:* Launch.
 
:* Discuss the Release;
 
:* Discuss the Release;
Line 242: Line 185:
 
Todo:
 
Todo:
  
:* Support Experiments workflow when people can make a copy of existing Project and start experimenting with the code and use on regular basis, e.g., share with the rest of Sugar Network.
+
:* Support an ''Experiments'' workflow where people can make a copy of an existing Context and start experimenting with the code and use it on a regular basis, e.g., share it in the Sugar Network.
:* Convenient method to attach log reports with errors to the particular Release, e.g., "Share the log" button on activity fail dialog.
+
:* Provide a convenient method to attach log reports with errors to the particular Release, e.g., "Share the log" button on the Activity fail dialog.
  
 
=== Objectives ===
 
=== Objectives ===
  
These are the exactly objectives that Project is trying to achieve. This type of Resources has two faces:
+
These are the exact objectives that a Context is trying to achieve. This type of Resource has two faces:
 
 
* The view for Players that are not the part of Project implementers, they see this Resource as a list of, e.g., features that project is trying to provide;
 
* The full functional project management interface for people who are owners of the Project and take care of implementation.
 
 
 
Attributes:
 
  
:* Title, one line;
+
* The view for Users that are not in the role of Context implementer, who will see this Resource, e.g., as a set of features that the Context is trying to provide;
:* Description, multi-lined text.
+
* The fully functional project management interface for people who are owners of the Context and take care of its implementation.
  
 
Actions:
 
Actions:
  
:* Create by Project owners;
+
:* Create - by Context owners;
 
:* Discuss the Objective;
 
:* Discuss the Objective;
 
:* Vote for the Objective;
 
:* Vote for the Objective;
Line 265: Line 203:
 
TODO:
 
TODO:
  
:* Project management functionality.
+
:* Context management functionality.
  
 
== Comments ==
 
== Comments ==
  
All kinds of resources might be [[#Participation|commented by any users]]. The Sugar Network does not provide any restrictions or permissions, the model is [[#Freedom|leaving responsibility to a viewer]].
+
All kinds of resources might be [[#Participation|commented on by any user]]. The Sugar Network does not provide any restrictions or permissions, the model is [[#Freedom|one of leaving responsibility to the viewer]].
  
 
== Events ==
 
== Events ==
  
If some Resource has been changed, e.g., as a result of Player interacting, Resource sends global notifications. These notification might be seen while investigating this particular object or by Following this Resource. In the last case, events will go to followers' queue of global events.
+
If some Resource has been changed, e.g., as a result of User interaction, the Resource sends out global notifications. The notification might be seen while investigating this particular object or by Following this Resource, in which case, events will go to a followers' queue of global events.
  
 
Events might be personal, e.g., personal invitations or personal messages.
 
Events might be personal, e.g., personal invitations or personal messages.
 +
 +
== Workflows ==
 +
 +
These are types of workflows that [[#Roles|Roles]] can take part in. The particular activity might involve several Users and several Roles.
  
 
== Roles ==
 
== Roles ==
  
These are roles, not the definition of particular people. Each person can play different roles in different time.
+
=== Support ===
  
=== Student ===
+
A need for general help from the local community of supporters.
  
=== Teacher ===
+
:* You need to be a part of a community with local support, thus, you will have a default place to complain, the Home Context;
 +
:* Go to Browser and click Home Context button;
 +
:* Try to search if your problem was already reported using text search string or tags;
 +
:* If search is not successful, describe your problem in a Problem entry widget as fully as possible (same as for Questions and Ideas);
 +
:* The supporters will be notified and will reply with a request for further information, or with an answer;
 +
:* On the Network screen, you will be notified about a submitted reply.
  
=== Project Contributor ===
+
Suppose something goes wrong with the system, and it is not clear where the problem is.
  
=== Project Coordinator ===
+
:* You need to be a part of a community with local support, thus, you will have a default place to complain, the Home Context;
 +
:* Since you have no any idea about what part of the system is affected, there is no way to decide against which Context to complain, go to Browser and click Home Context button;
 +
:* Try to search if your problem was already reported using a text search string or tags;
 +
:* If the search is not successful, describe your problem in a Problem entry widget as fully as possible (as for Questions and Ideas);
 +
:* The supporters will be notified and will reply with a request for further information, or with an answer;
 +
:* On the Network screen, you will be notified about a submitted reply.
  
== Workflows ==
+
Suppose something goes wrong with the system and it is possible to specify the part or place where it occurs.
  
These are kinds of workflows that [[#Roles|Roles]] can take part in. The particular activity might involve several Players and several Roles.
+
:* Go to the Browser and try to find the Context that is associated with the problem part; use Tags and full text search; after finding it, click its Home button;
 +
:* Search to see if your problem has already been reported using text search string or tags;
 +
:* If the search is not successful, describe your problem in Problem entry widget as fully as possible (as for Questions and Ideas);
 +
:* Any Context Contributor can reply with a request for further information, or with an answer;
 +
:* On the Network screen, you will be notified about a submitted reply.
  
=== Issues ===
+
Provide supporting materials.
  
A need for general help from the local community supporters.
+
:* Skilled people, somewhere on the Mothership level, create a set of Wiki pages;
 +
:* Since the initial Sugar Network won't support Wiki editing, these wiki pages will be uploaded to the Sugar Network using special tools to some Context, e.g., to the Home Context;
 +
:* Teachers/students can always get these materials by going to the Home Context and clicking Wiki.
  
:* You need to be a part of a community with local support, thus, you will have the default place to complain, the Home Project;
+
Suppose a Sugar Activity fails to start or fails on exit.
:* Go to Browser and click Home Project button;
 
:* In the Project View, describe your problem in Problem entry widget as full as possible;
 
:* The supporters will be notified and and will reply with request for further information or with an answer;
 
:* On the Network screen, you will be notified about gotten reply.
 
  
Something goes wrong with the system and it is not clear where the problem is.
+
:* The activity fail dialog should have a complaint field. Describe your problem there as fully as possible;
 +
:* If Submit button was clicked (it might be the default action), the repost with text message and activity logs will be attached to the particular Release of the Context;
 +
:* A Context Contributor, upon browsing uploaded reports, can reply with a request for further information, or with an answer;
 +
:* On the Network screen, you will be notified about a submitted reply.
  
:* You need to be a part of a community with local support, thus, you will have the default place to complain, the Home Project;
+
=== Content ===
:* Since there is no any ideas what the place in the system is affected, thus, no way to decide what project to choose to complain, go to Browser and click Home Project button;
 
:* In the Project View, describe your problem in Problem entry widget as full as possible;
 
:* The supporters will be notified and and will reply with request for further information or with an answer;
 
:* On the Network screen, you will be notified about gotten reply.
 
  
Something goes wrong with the system and it is possible to specify the place where it happens.
+
Sharing arbitrary education related media content.
 
 
:* Go to the Browser and try to find the Project that is associated with problem place; use Tags and full text search; after finding, click its Home button;
 
:* In the Project View, describe your problem in Problem entry widget as full as possible;
 
:* Any Project Contributor can reply with request for further information or with an answer;
 
:* On the Network screen, you will be notified about gotten reply.
 
  
Sugar activity fails to start or fails on exit.
+
:* Teacher (or any other User) creates a new (or reuses an existing) Wiki Context;
 +
:* Set Tags and a Context description that is appropriate to the purpose;
 +
:* Create an initial Wiki page, populate it, and attach media content;
 +
:* Students, using Tags and full-text search, explore the Context in the Browser;
 +
:* Once in the Browser, activate the found Context for its transfer to the Wiki page.
  
:* The activity fail dialog should have a complain field, describe your problem in there as full as possible;
+
Sharing an Activity object.
:* Any Activity Project Contributor can reply with request for further information or with an answer;
 
:* On the Network screen, you will be notified about gotten reply.
 
  
=== Content ===
+
:* In an after-creation dialog, there should be a button to share a newly created object with the Network;
 +
:* The Journal should have a way to share any object with one click.
  
Sharing arbitrary education related media content.
+
=== Sugar Activities ===
  
:* Teacher (or any other Player) creates new (or reuse existing) Wiki Project;
+
Fast launch of an Activity.
:* Set appropriate, to the purpose, Tags and Project description;
 
:* Create initial Wiki page, populate it and attach media content;
 
:* Students, using Tags and full-text search, explore the Project in the Browser;
 
:* Being in the Browser, activate the found Project and being moved to the Wiki page.
 
  
Sharing Activity object.
+
:* Go to the Browser and explore the Activity you want to start, maybe using the ''Activity'' Tag or full-text search;
 +
:* Click found entity.
  
:* In after-creation dialog, there should be a button to share newly created object with the Network;
+
Launch a particular Activity version, e.g., to help with testing a non-stable version or revert to a previous one because the most recent version doesn't work for you.
:* Journal should have a way to share any object by one click.
 
  
=== Sugar activities ===
+
:* Go to the Browser and explore the Activity you want to start, maybe using the ''Activity'' Tag or full-text search;
 +
:* Click Home button for a found entity;
 +
:* You should find the list of Releases with the most recent stable Release chosen, select any version you want;
 +
:* Click the Launch button, or run it from the Browser, to run a newly selected Release.
  
Fast launch of an activity.
+
=== Networkless ===
  
:* Go to the Browser and explore the activity you want to start, maybe using the ''Activity'' Tag or full-text search;
+
The Sugar Network is all about being connected to a Sugar Network server someplace on the Internet (on-line case) or in a schoolserver (off-line case). A more limited workflow is supported for the server-less case.
:* Click found entity.
 
  
Launch particular activity version, e.g., to help with testing non-stable version or fallback to previous one because the recent doesn't work for you.
+
Suppose one is at school and connected to its Network server to prepare Contexts to work on at home when a Network won't be accessible:
  
:* Go to the Browser and explore the activity you want to start, maybe using the ''Activity'' Tag or full-text search;
+
:* Go to the Browser and explore the Context you want to work on at home;
:* Click Home button for found entity;
+
:* Pick up, select, collect these Contexts (depending on implementation);
:* You should find the list of Releases with the recent stable Release chosen, select any version you want;
+
:* Once at home, where a Network is not accessible, you will see all chosen Contexts in the Browser;
:* Click the Launch button, or run it from the Browser, to run newly selected Release.
+
:* A limited functionality (depending on implementation) will be supported for these Contexts.
  
 
=== Teaching ===
 
=== Teaching ===
Line 361: Line 310:
 
Fork me.
 
Fork me.
  
:* Go to the Browser and explore the activity you want to start, maybe using the ''Activity'' Tag or full-text search;
+
:* Go to the Browser and explore the Activity you want to start, maybe using the ''Activity'' Tag or full-text search;
:* Click Home button for found entity;
+
:* Click Home button for the found entity;
 
:* ''TODO''
 
:* ''TODO''
  
== Users Interface ==
+
== Infrastructure overview ==
 
 
From users point of view, The Sugar Network is represented by several kinds views:
 
 
 
=== Player's page ===
 
 
 
* Global events queue;
 
* Personal events queue;
 
* Send personal events;
 
 
 
=== Browser ===
 
 
 
* Will be useful to a special state of the Browser to let people see a summary, hints, etc.
 
* Switch between Network Zoom levels, e.g., similar to Shell's Zoom levels;
 
* Expose additional metadata about currently selected item;
 
* Home/default project, might be useful to, e.g., having default support project for this deployment to point any questions there.
 
 
 
=== Project view ===
 
 
 
* The top of participants
 
* View for particular Project resource, Wiki, Tracker, Gallery, etc.
 
* (?) Having fast widget to start typing new Question/Idea/Problem
 
  
=== Resource view ===
+
The whole initiative is tailored by the following decisions:
  
* The top of participants
+
* The Sugar Network should be useful in off-line environments;
* See the full history of resource changes (no need all time have history like Wiki pages have);
+
* The scope of provided [[#Resources|resources]] should cover the full complement of low level collaborative behaviors between Network participants; where ''low level'' means that [[#Resources|resources]] are shared for all types of collaborative [[#Contexts|contexts]];
* Follow/NotFollow the Resource changes;
+
* The scope of provided [[#Resources|resources]] should be designed so that the Sugar Network is equally useful operating on-line as off-line;
* Send personal invitation events to Players to make them Followers of this Resource;
+
* The software architecture and interfaces are structured to stimulate a "doing" and "sharing" workflow.
* Two audience view for Objectives Resource;
 
  
=== Comments view ===
+
The whole Sugar Network is pictured by the following graphics:
  
* Restrict comments by Player's rating;
+
{| border="0"
 +
|- valign="top" align="let"
 +
| [[File:Sugar-network.png]]
 +
| Where,
 +
* '''Server'''<br>is shared data and services, in general. It might be a server accessible from the Internet (on-line case) or various distributed servers located, e.g., in schools (off-line case). See [[Platform_Team/Sugar_Network|technical pages]] for more details.
 +
* '''Conceptual level logic'''<br>The design logic and software code structures that reify the Sugar Network concepts. From a conceptual level, these designs and code standards represent a separate entity that operates inbetween the Clients and Servers. From the technical perspective, this level is represented by the Server [[Platform_Team/Sugar_Network/API|application programming interface (API)]] and [[Platform_Team/Sugar_Network/Objects_model|objects model]] in particular.
 +
* '''Client'''<br>is the software that allows Network participants to interact with the Sugar Network. These software components let people get access to the Sugar Network, and define how the Sugar Network should appear to users according to their needs. The user experience provided by the client software will vary from need to need, starting from a couple of elements in the existing software [[Wikipedia:Graphical_user_interface|GUI]] (when people even don't suspect they are interacting with the Sugar Network), and extending to clients that represent advanced conceptual elements of the Sugar Network as closely as possible.
 +
|}
  
 
== Todo ==
 
== Todo ==
  
* Support translation workflow for Projects, it might be different workflow, e.g., for Wikis, and Sugar Activities;
+
* Support translation workflow for Contexts, it might be different workflow, e.g., for Wikis, and Sugar Activities;
* Class type for projects to support regular class behaviour from teachers' pov.
+
* Class type for Contexts to support regular class behaviour from teachers' pov.
* Support coding workflow for projects.
+
* Support coding workflow for Contexts.
  
 
== Getting involved ==
 
== Getting involved ==
Line 410: Line 344:
 
{{:Sugar_Network/Feedback}}
 
{{:Sugar_Network/Feedback}}
  
== References ==
+
== See also ==
  
 
* [[Wikipedia:Stack_Exchange_Network|Stack Exchange]] family of Q&A websites.
 
* [[Wikipedia:Stack_Exchange_Network|Stack Exchange]] family of Q&A websites.
 
* [[Wikipedia:Get_Satisfaction|Get Satisfaction]] technical support platform.
 
* [[Wikipedia:Get_Satisfaction|Get Satisfaction]] technical support platform.
 
* [http://www.ideatorrent.org/ IdeaTorrent].
 
* [http://www.ideatorrent.org/ IdeaTorrent].
 +
* [http://www.curriki.org/ Curriki], Open Curricula Community.
 +
* [[wikipedia:Gamification|Gamification]].

Latest revision as of 10:22, 9 June 2012

This page is a guide to basic Sugar Network concepts. See its twin page for a technical point of view. Also, visit the introduction page.

Overview

The major goal of the Sugar Network is to provide an infrastructure to let people share different types of content, e.g., Sugar Activities, artifacts created by Sugar Activities, books, etc. for friends, a class, parents, teachers, or Sugar Learners anywhere.

Sugar Network's functionality is split into two parts:

  • Core functionality, which covers low level needs to work with content (described below);
  • Any number of representation models for usage of content, which are based on core functionality and add high level scenarios to interact with the same content, e.g., gamification elements. Representation models are pluggable and optional.

Targeted audience

Sugar-network-audience.png The audience for Sugar Network is highly diverse:
  • Students, which might be of different ages depending on a particular representation model or usage scenario;
  • Educators who need to populate content for students and review what students uploaded to the Network;
  • Deployment supporters who need to provide technical and educational support;
  • Software developers who will have a chance to get feedback directly from users.

Any individual person might belong to several categories at the same time, e.g., be a content creator, a user of content created by different creators, a reviewer of content uploaded by another people, etc.

Summary

The Sugar Network is about all these:

Needs

The needs that the Sugar Network is trying to support might be described by the following selection of Fundamental human needs:

Identity

Each User should be able to create and manage a unique identity in the network. Every interaction of the User with the network should be accounted in the User's metrics, as eventually, this may be part of the User's dashboard. Each User may have an individual reputation, based on other Users' ratings made of his contributions.

Understanding

A User should be able to view all objects and optionally apply filters to control their view based on the resource type, the Network Zoom level, tags, or the associated Users. In this preview, we may be able to offer basic statistics of the object in order to give an analytical perspective to the selection. The User should be able to select the object in order to participate on a deeper level, where he should be able to explore the associated resources. As a User, I might receive events from the objects I'm subscribed to, as well as personal events, like invitations made by other Users.

Participation

Any User may comment on any object, rate any contribution, edit any wiki, create any issue, attach any object to any gallery, become a follower of any object.

Creation

Any User may create a new Context by defining a name, the type of Context, and the Context objective(s). A Context's creator may invite other Users to follow/contribute to his Context.

Users

These are real people that take part in the Sugar Network.

Actions:

  • Send private message.

Reputation

Any particular Resource, i.e., contributions of some Users, might be rated by another Users. The Reputation of a particular User depends on how other Users appreciate him or his contributions.

Statistics

Based on tracking of Events, it is possible to measure a particular User's behaviour. This might be useful, e.g., for researchers.

Contexts

In the Sugar Network, Contexts are instances of content or software that include with them assumptions on how they may be shared or used. A Context describes how Users behave with Resources. A Context represents the Behavior or set of Behaviors that are supported for associated Resources.

There is a predefined general Context, the Global Context, which contains all other Contexts (according to the current zoom level). Thus, Users can interact with all Resources accessible on this zoom level.

Context types may differ. For now, these are the only Context types:

  • Sugar Activities,
  • Various content (might be .xol libraries).

Resources

The whole experience within the Sugar Network is about a User's interaction with resources. Resources are tied to the current Context and might be of different types:

Questions

General question about the Context. A user-friendly interface for asking questions about the current Context. The workflow is much simpler when compared to typical bug trackers (Trac, RT, etc.). It is intended to be more like "forums" or wiki "discussion" pages—just ask your question and wait for answers. In some cases, Questions might be treated as a kind of simple knowledge base for the Context (in contrast to bug trackers, Questions are not closed after answers are provided). The most useful Questions might be picked up to compose the FAQ for the Context.

Other non-developer needs are covered by Ideas and Problems. Developer needs are covered by the Objectives and its advanced view, in particular.

Actions:

  • Create a Question;
  • Discuss the Question;
  • Vote for the Question;
  • Create an Answer;
  • Discuss an Answer;
  • Vote for a single Answer;
  • Vote given by the Question creator means an Answer for the Question.

Ideas

Any ideas regarding the Context. A user-friendly interface to propose your idea to the current Context developers. The workflow is much simpler, compared to typical bug trackers—just offer your suggestion, see how other people will rate it, and wait for an implementation.

Actions:

  • Create an Idea;
  • Discuss the Idea;
  • Vote for the Idea;
  • Create a Solution, a possible Implementation, Answer, or other Resource;
  • Discuss a Solution;
  • Vote for Solutions;
  • A Context team member designates one possible Solution to one Objective, the Idea's status becomes the same as the Objective's.

Problems

Report a problem with the Context. A user-friendly interface to complain about an error that the User encountered when working with the Context. The workflow is much simpler, compared to typical bugs trackers, just complain and wait for a fix.

Actions:

  • Create a Problem;
  • Discuss the Problem;
  • Vote for the Problem;
  • Create Solution (proposed fix);
  • Discuss a Solution;
  • Designate a Release as a possible Solution;
  • Vote for a single Solution;
  • Vote given by the Problem creator means a fix for the Problem.

Wiki

A collection of Wiki pages that use MediaWiki markup language, wikitext. Pages might be represented by a tree of pages. There is always a root page. The idea of having a root page is to make it possible to merge these wiki pages to the standalone MediaWiki server.

Actions:

  • Create a new Wiki page in the hierarchy of pages;
  • Upload an arbitrary file in order to place a link to it on Wiki pages.
  • Discuss the Wiki topic;
  • Vote for the Wiki;

Todo:

  • Modify existing page;
  • View the history of modifications.

Artifact

A collection of binary objects, of types depending on Context type, associated the the Context. Such artifacts might be, for example, Journal objects created by Sugar Activities.

Actions:

  • Create new Exhibit.
  • Discuss the Exhibit;
  • Vote the Exhibit;

Todo:

  • Simplify creation of a new Exhibit by having a UI way to quickly share a newly created Activity object, e.g., from within the Naming alert or from the Journal.

Implementation

For software Contexts, this Resource is about released versions of this Context software. This is exactly what a User can execute in their instance of Sugar. There might be several implementations with different stability levels. By default, Users execute only the most recent stable version; but it is possible to choose any version.

Actions:

  • Context owners can create a new Implementation;
  • Launch.
  • Discuss the Release;
  • Vote for the Release;

Todo:

  • Support an Experiments workflow where people can make a copy of an existing Context and start experimenting with the code and use it on a regular basis, e.g., share it in the Sugar Network.
  • Provide a convenient method to attach log reports with errors to the particular Release, e.g., "Share the log" button on the Activity fail dialog.

Objectives

These are the exact objectives that a Context is trying to achieve. This type of Resource has two faces:

  • The view for Users that are not in the role of Context implementer, who will see this Resource, e.g., as a set of features that the Context is trying to provide;
  • The fully functional project management interface for people who are owners of the Context and take care of its implementation.

Actions:

  • Create - by Context owners;
  • Discuss the Objective;
  • Vote for the Objective;

TODO:

  • Context management functionality.

Comments

All kinds of resources might be commented on by any user. The Sugar Network does not provide any restrictions or permissions, the model is one of leaving responsibility to the viewer.

Events

If some Resource has been changed, e.g., as a result of User interaction, the Resource sends out global notifications. The notification might be seen while investigating this particular object or by Following this Resource, in which case, events will go to a followers' queue of global events.

Events might be personal, e.g., personal invitations or personal messages.

Workflows

These are types of workflows that Roles can take part in. The particular activity might involve several Users and several Roles.

Roles

Support

A need for general help from the local community of supporters.

  • You need to be a part of a community with local support, thus, you will have a default place to complain, the Home Context;
  • Go to Browser and click Home Context button;
  • Try to search if your problem was already reported using text search string or tags;
  • If search is not successful, describe your problem in a Problem entry widget as fully as possible (same as for Questions and Ideas);
  • The supporters will be notified and will reply with a request for further information, or with an answer;
  • On the Network screen, you will be notified about a submitted reply.

Suppose something goes wrong with the system, and it is not clear where the problem is.

  • You need to be a part of a community with local support, thus, you will have a default place to complain, the Home Context;
  • Since you have no any idea about what part of the system is affected, there is no way to decide against which Context to complain, go to Browser and click Home Context button;
  • Try to search if your problem was already reported using a text search string or tags;
  • If the search is not successful, describe your problem in a Problem entry widget as fully as possible (as for Questions and Ideas);
  • The supporters will be notified and will reply with a request for further information, or with an answer;
  • On the Network screen, you will be notified about a submitted reply.

Suppose something goes wrong with the system and it is possible to specify the part or place where it occurs.

  • Go to the Browser and try to find the Context that is associated with the problem part; use Tags and full text search; after finding it, click its Home button;
  • Search to see if your problem has already been reported using text search string or tags;
  • If the search is not successful, describe your problem in Problem entry widget as fully as possible (as for Questions and Ideas);
  • Any Context Contributor can reply with a request for further information, or with an answer;
  • On the Network screen, you will be notified about a submitted reply.

Provide supporting materials.

  • Skilled people, somewhere on the Mothership level, create a set of Wiki pages;
  • Since the initial Sugar Network won't support Wiki editing, these wiki pages will be uploaded to the Sugar Network using special tools to some Context, e.g., to the Home Context;
  • Teachers/students can always get these materials by going to the Home Context and clicking Wiki.

Suppose a Sugar Activity fails to start or fails on exit.

  • The activity fail dialog should have a complaint field. Describe your problem there as fully as possible;
  • If Submit button was clicked (it might be the default action), the repost with text message and activity logs will be attached to the particular Release of the Context;
  • A Context Contributor, upon browsing uploaded reports, can reply with a request for further information, or with an answer;
  • On the Network screen, you will be notified about a submitted reply.

Content

Sharing arbitrary education related media content.

  • Teacher (or any other User) creates a new (or reuses an existing) Wiki Context;
  • Set Tags and a Context description that is appropriate to the purpose;
  • Create an initial Wiki page, populate it, and attach media content;
  • Students, using Tags and full-text search, explore the Context in the Browser;
  • Once in the Browser, activate the found Context for its transfer to the Wiki page.

Sharing an Activity object.

  • In an after-creation dialog, there should be a button to share a newly created object with the Network;
  • The Journal should have a way to share any object with one click.

Sugar Activities

Fast launch of an Activity.

  • Go to the Browser and explore the Activity you want to start, maybe using the Activity Tag or full-text search;
  • Click found entity.

Launch a particular Activity version, e.g., to help with testing a non-stable version or revert to a previous one because the most recent version doesn't work for you.

  • Go to the Browser and explore the Activity you want to start, maybe using the Activity Tag or full-text search;
  • Click Home button for a found entity;
  • You should find the list of Releases with the most recent stable Release chosen, select any version you want;
  • Click the Launch button, or run it from the Browser, to run a newly selected Release.

Networkless

The Sugar Network is all about being connected to a Sugar Network server someplace on the Internet (on-line case) or in a schoolserver (off-line case). A more limited workflow is supported for the server-less case.

Suppose one is at school and connected to its Network server to prepare Contexts to work on at home when a Network won't be accessible:

  • Go to the Browser and explore the Context you want to work on at home;
  • Pick up, select, collect these Contexts (depending on implementation);
  • Once at home, where a Network is not accessible, you will see all chosen Contexts in the Browser;
  • A limited functionality (depending on implementation) will be supported for these Contexts.

Teaching

TODO

Developing

Fork me.

  • Go to the Browser and explore the Activity you want to start, maybe using the Activity Tag or full-text search;
  • Click Home button for the found entity;
  • TODO

Infrastructure overview

The whole initiative is tailored by the following decisions:

  • The Sugar Network should be useful in off-line environments;
  • The scope of provided resources should cover the full complement of low level collaborative behaviors between Network participants; where low level means that resources are shared for all types of collaborative contexts;
  • The scope of provided resources should be designed so that the Sugar Network is equally useful operating on-line as off-line;
  • The software architecture and interfaces are structured to stimulate a "doing" and "sharing" workflow.

The whole Sugar Network is pictured by the following graphics:

Sugar-network.png Where,
  • Server
    is shared data and services, in general. It might be a server accessible from the Internet (on-line case) or various distributed servers located, e.g., in schools (off-line case). See technical pages for more details.
  • Conceptual level logic
    The design logic and software code structures that reify the Sugar Network concepts. From a conceptual level, these designs and code standards represent a separate entity that operates inbetween the Clients and Servers. From the technical perspective, this level is represented by the Server application programming interface (API) and objects model in particular.
  • Client
    is the software that allows Network participants to interact with the Sugar Network. These software components let people get access to the Sugar Network, and define how the Sugar Network should appear to users according to their needs. The user experience provided by the client software will vary from need to need, starting from a couple of elements in the existing software GUI (when people even don't suspect they are interacting with the Sugar Network), and extending to clients that represent advanced conceptual elements of the Sugar Network as closely as possible.

Todo

  • Support translation workflow for Contexts, it might be different workflow, e.g., for Wikis, and Sugar Activities;
  • Class type for Contexts to support regular class behaviour from teachers' pov.
  • Support coding workflow for Contexts.

Getting involved

  • Submit your bug report or feature request.
  • Browse our implementation discussions, and post your feedback. (You should join this discussion list in order to avoid having your messages postponed for moderation.)

See also