Changes

Jump to navigation Jump to search
1,476 bytes added ,  11:02, 29 April 2010
Line 1: Line 1: −
<noinclude>{{ GoogleTrans-en | es =show | bg =show | zh-CN =show | zh-TW =show | hr =show | cs =show | da =show | nl =show | fi =show | fr =show | de =show | el =show | hi =show | it =show | ja =show | ko =show | no =show | pl =show | pt =show | ro =show | ru =show | sv =show }}{{TOCright}}
+
<noinclude>{{GoogleTrans-en}}{{TOCright}}
 +
[[Category:Activities|Library]]</noinclude>
 +
 
 +
----
 +
'''NOTE:''' Core functionality of Library was moved to [[Features/Unified Browser for Objects]], since now Library will be implemented in plugin form (as a separate activity).
 +
----
 +
 
 +
= Thanks to =
 +
 
 +
Library activity idea was inspired by [http://thread.gmane.org/gmane.comp.education.sugar.discuss/2586 iaep@ mailing list thread].
 +
 
 +
= Related ideas =
 +
 
 +
* [http://wiki.laptop.org/go/Journal%2C_reloaded Journal, reloaded]
 +
* [[Design_Team/Designs/Journal#01|Journal mockups]]
 +
* [[Unified Bundles]]
 +
* [[User:Alsroot/trash/Unified Objects | Unified Objects]]
 +
* ...
    
= Purposes =
 
= Purposes =
    
Cornerstone ideas:
 
Cornerstone ideas:
* implement [[Unified Objects]] proposal to have unified method to create, reuse and share ''all'' Objects in Sugar
+
* implement [[User:Alsroot/trash/Unified Objects | Unified Objects]] proposal to have unified method to create, reuse and share ''all'' Objects in Sugar
 
* work with ''remote'' Sugar Objects in the same way like with ''local''
 
* work with ''remote'' Sugar Objects in the same way like with ''local''
* make this activity Sucrose version independent(0.82+)
+
* make this activity Sucrose version independent (0.82+)
    
= Objects model =
 
= Objects model =
Line 22: Line 39:     
Every Library object could include:
 
Every Library object could include:
* manually included Journal objects
   
* auto included Journal objects
 
* auto included Journal objects
** by MIME type
   
** new version of object, if object was already included
 
** new version of object, if object was already included
 +
** by datastore fields, like ''mime_type'', ''tags'' etc.
 
* all Journal objects
 
* all Journal objects
   Line 37: Line 53:     
* ''creator'' for activities
 
* ''creator'' for activities
* ''creation'' for objects that were generated by activity(''activity_id'' field is not empty)
+
* ''creation'' for objects that were generated by activity (''activity_id'' field is not empty)
 
* ''unbind'' for Journal objects w/o ''activity_id'' field
 
* ''unbind'' for Journal objects w/o ''activity_id'' field
 
* ''local'' objects are stored in Journal
 
* ''local'' objects are stored in Journal
 
* ''remote'' object from online ''source'' (only for current session)
 
* ''remote'' object from online ''source'' (only for current session)
 +
 +
=== Properties based tags ===
 +
 +
* tags values parsed from object's properties
    
=== Subjective tags ===
 
=== Subjective tags ===
Line 92: Line 112:  
** ''local objects'' that were created on local system
 
** ''local objects'' that were created on local system
 
** ''local objects'' that were downloaded from remote ''source''<br>user can sync them with original remote objects
 
** ''local objects'' that were downloaded from remote ''source''<br>user can sync them with original remote objects
* ''remote objects'' stored in the Journal of other(online) users
+
* ''remote objects'' stored in the Journal of other (online) users
    
=== Sources ===
 
=== Sources ===
   −
Every Library object has list of known(not necessarily online) ''sources'' of objects:
+
Every Library object has list of known (not necessarily online) ''sources'' of objects:
    
* ''local objects'' stored in local Journal
 
* ''local objects'' stored in local Journal
* ''Sugar users'' joined(if they are online) to this Library session
+
* ''Sugar users'' joined (if they are online) to this Library session
 
* (?) ''activities.sugarlabs.org''
 
* (?) ''activities.sugarlabs.org''
 
* (?) ''various sources'' that are provided by proper backend, for example books from gutenberg.org
 
* (?) ''various sources'' that are provided by proper backend, for example books from gutenberg.org
   −
If ''source'' is online user can browse his objects(in separate way or merging them to the main set of objects) and download or download+start them.
+
If ''source'' is online user can browse his objects (in separate way or merging them to the main set of objects) and download or download+start them.
    
=== Synchronize/Upgrade objects ===
 
=== Synchronize/Upgrade objects ===
Line 128: Line 148:  
* ''download'' remote object, if current object is from remote ''source'' and wasn't downloaded previously
 
* ''download'' remote object, if current object is from remote ''source'' and wasn't downloaded previously
 
* ''sync'' current object with remote one, if current object was originally downloaded from remote ''source''
 
* ''sync'' current object with remote one, if current object was originally downloaded from remote ''source''
* ''delete'' object from local system(i.e. from the Journal), if current object was originally downloaded from remote ''source'' it would turn to "un-downloaded" state
+
* ''delete'' object from local system (i.e., from the Journal), if current object was originally downloaded from remote ''source'' it would turn to "un-downloaded" state
    
=== Tags sidebar ===
 
=== Tags sidebar ===
Line 135: Line 155:     
* ''chosen tags'' backslashed list of tags that were chosen
 
* ''chosen tags'' backslashed list of tags that were chosen
* ''related tags'' cloud or tree of tags to choose
+
* ''related tags''
 +
** cloud of ''related tags''
 +
** tree (made by ''composite tags'') of ''related tags''
 +
* without any tags i.e. all objects
    
After proper ''tag'' was chosen:
 
After proper ''tag'' was chosen:
Line 141: Line 164:  
# ''related tags'' would reflect on the final list of objects
 
# ''related tags'' would reflect on the final list of objects
 
# ''objects list'' would contain the final list of objects
 
# ''objects list'' would contain the final list of objects
 +
 +
User can choose what kinds of tags it should contain:
 +
* ''objective tags''
 +
* ''properties based tags''
 +
* ''subjective tags''
    
=== Sources sidebar ===
 
=== Sources sidebar ===
Line 146: Line 174:  
It filters objects for ''tags sidebar''
 
It filters objects for ''tags sidebar''
   −
List of known(not necessarily online) ''sources'' of objects.<br>
+
List of known (not necessarily online) ''sources'' of objects.<br>
 
User can select proper item to view objects only for this ''source''.
 
User can select proper item to view objects only for this ''source''.
   Line 152: Line 180:     
[[Image:library.svg|200px]]
 
[[Image:library.svg|200px]]
 +
[[Image:-1.png|200px]]
 +
[[Image:-2.png|200px]]
 +
[[Image:-3.png|200px]]
 +
[[Image:-4.png|200px]]
    
= Usage scenarios =
 
= Usage scenarios =
Line 161: Line 193:  
# ''B'' browses ''A''s ''local'' objects
 
# ''B'' browses ''A''s ''local'' objects
 
# ''B'' can download particular/all ''A'''s ''local'' objects
 
# ''B'' can download particular/all ''A'''s ''local'' objects
# ''B'' can merge ''A'''s ''local'' objects to the objects list(only for current session)
+
# ''B'' can merge ''A'''s ''local'' objects to the objects list (only for current session)
 
# during the next online session ''B'' can synchronize previously downloaded objects
 
# during the next online session ''B'' can synchronize previously downloaded objects
   Line 178: Line 210:  
# make these activities auto-updated
 
# make these activities auto-updated
 
# add rule to include to this "Activities" object all activities
 
# add rule to include to this "Activities" object all activities
# treats created Library object like a regular Home view i.e. use it to run all(preinstalled and downloaded) activities
+
# treats created Library object like a regular Home view i.e. use it to run all (preinstalled and downloaded) activities
# "auto-updated" should mean that downloaded activities will be up-to-date(in some way) when "Activities" object is run
+
# "auto-updated" should mean that downloaded activities will be up-to-date (in some way) when "Activities" object is run
    
=== Publish objects on non-Sugar sources ===
 
=== Publish objects on non-Sugar sources ===
Line 186: Line 218:  
# click "publish" button
 
# click "publish" button
   −
=== (?) Room/Lesson mode ===
+
= Implementation =
 +
 
 +
Implementation details.
   −
At the first approach it could look like:
+
=== Database model ===
   −
# teacher prepares one or several Library objects for future lesson
+
Library follows simple rules:
# during the lesson teacher shares proper Library object for all students
  −
# teacher could observe if all students were joined to proper Library object, to proper object inside of Library object
     −
So, this mode should contain mini-neighbourhood view for Library object's items.
+
* use local datastore API to search/filter ''local objects''
 +
* use remote datastore API(in some way) to search/filter ''remote objects''
 +
* use telepathy tubes for notifying users about changes
 +
* sync shared objects while opening Library activity or manually
    
= Going further =
 
= Going further =
 +
 +
=== Integration with Sugar components ===
 +
 +
* downloaded files by Browse activity
 +
 +
=== Simplify UI usage ===
 +
 +
* several levels of UI complexity
 +
* presets with different sets of UI components
    
=== Various non-sugar ''sources'' ===
 
=== Various non-sugar ''sources'' ===
   −
* for NFS/Samba shares
   
* FTP servers
 
* FTP servers
 +
 +
=== Room/Lesson mode ===
 +
 +
At the first approach it could look like:
 +
 +
# teacher prepares one or several Library objects for future lesson
 +
# during the lesson teacher shares proper Library object for all students
 +
# teacher could observe if all students were joined to proper Library object, to proper object inside of Library object
 +
 +
So, this mode should contain mini-neighbourhood view for Library object's items.
    
= Roadmap =
 
= Roadmap =
Line 211: Line 264:  
! Real date
 
! Real date
 
|-
 
|-
| Local version
+
| Local version<br>v1
 
| 2009-05-12
 
| 2009-05-12
|
+
| 2009-05-29
 
|-
 
|-
| Remote version(Sugar users as an objects source)<br>v1 release
+
| Remote version(Sugar users as an objects source)
 
| 2009-05-19
 
| 2009-05-19
 
|  
 
|  
 
|-
 
|-
| Publish objects on activities.sugarlabs.org<br>v2 release
+
| Publish objects on activities.sugarlabs.org
 
| 2009-05-26
 
| 2009-05-26
 
|
 
|
 
|-
 
|-
| Provide [[#Keep activities up-to-date]] scenario for LTSP<br>v3 release
+
| Provide [[#Keep activities up-to-date]] scenario for LTSP
 
|
 
|
 
|
 
|
 
|-
 
|-
| Provide [[#Keep activities up-to-date]] scenario for intranet library portal<br>v4 release
+
| Provide [[#Keep activities up-to-date]] scenario for intranet library portal
 
|
 
|
 
|
 
|
|-}
+
|-
 +
|}
 +
 
 +
== Activity Library ==
 +
 
 +
See also [[Activities/Activity Library]].
 +
 
 +
= Resources =
   −
[[Category:Activities]]
+
* [http://git.sugarlabs.org/projects/library Sources]
 +
* [http://activities.sugarlabs.org/en-US/sugar/addon/4089 Activity Library page]

Navigation menu