Difference between revisions of "Karma/Bundle layout"

From Sugar Labs
Jump to navigation Jump to search
 
(39 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
== The Main Karma Package ==
 
== The Main Karma Package ==
  
''Consists of an HTML5 capable browser (activity), a lesson bundle, examples, and utilities to start working with Karma quickly''
+
''A set of tools that will help you start working with Karma quickly''
  
 
This is what is contained in the repository at http://git.sugarlabs.org/projects/karma/
 
This is what is contained in the repository at http://git.sugarlabs.org/projects/karma/
Line 8: Line 8:
 
* includes "platform" files, i.e. a basic html5-capable browser that can be used to create an xo bundle
 
* includes "platform" files, i.e. a basic html5-capable browser that can be used to create an xo bundle
  
   
+
  ROOT/                             ( ROOT is not actually a directory name, it just labels the top-level of this package )
    AUTHORS                        # Should include names of everyone that has contributed to KarmaBuilder
+
     assets/                        ( images, audio, and text common to karma.html, examples, and the lessons for the launch page for all lessons )
    ChangeLog                     
+
           image/
    COPYING                        # Licensing information, should default to MIT License  ? how distinguish b/w code licensing and content licensing
+
          audio/
    css/                            # css/ and js/ contain the code common to all examples, lessons, and karma.html
 
    examples/                      # working examples of karma lessons
 
    js/                            # css/ and js/ contain the code common to all examples, lessons, and karma.html
 
    INSTALL                       
 
    karma                          # This is a shell script that launches karma.js, it just checks if you have java installed so you can run karma.js
 
                                        # it is inspired partly by rails and [http://docs.djangoproject.com/en/dev/ref/django-admin/ django-admin] administrative scripts
 
    karma.html                      # The starting page for accessing Karma lessons, should include links to the examples
 
    karma.js                        # The main utility script for karma, all it dependencies live in utils/
 
    lessons/                        # this is the workspace for creating new Karma lessons
 
     locale/                        # images, sounds, and text common to karma.html, examples, and the lessons
 
           default/
 
                  images/
 
                  sounds/
 
 
           locale_name/
 
           locale_name/
                     images/             
+
                     image/             
                     locale_name.json  # karma actually needs the .po file to be converted to .json
+
                     locale_name.json  ( karma actually needs the .po file to be converted to .json )
                     locale_name.po
+
                     audio/
                    sounds/
+
     AUTHORS                        ( Should include names of everyone that has contributed to Karma main package )
     NEWS                            # List of important changes to this package indexed by version
+
     css/                           ( css/ and js/ contain the code common to all examples, lessons )
     platform/                       # An html5-capable browser that can be used to create sugar .xo bundle
+
    COPYING                        ( Licensing information, should default to MIT License  ? how distinguish b/w code licensing and content licensing )
     po/  
+
    docs/
 +
    examples/                      ( working examples of karma lessons )
 +
    index.html                    ( The starting page for accessing Karma lessons, should include links to the examples, known as the CHAKRA )
 +
     js/                            ( css/ and js/ contain the code common to all examples, lessons, and karma.html )
 
     README
 
     README
     utils/                           # The [http://www.narwhaljs.org/ narwhal] command-line interpreter for javascript and other utility scripts used by karma.js
+
     tests/                         unit tests
  
 
== Karma XO bundle ==
 
== Karma XO bundle ==
Line 41: Line 31:
 
* It is still undecided whether karma will default to using Browse which is based on Firefox or [http://dev.laptop.org/~bobbyp/surf/Surf-106.xo Surf] which based on webkit (Safari/Chrome). Surf requires that you install the rpms for pywebkitgtk and webkitgtk
 
* It is still undecided whether karma will default to using Browse which is based on Firefox or [http://dev.laptop.org/~bobbyp/surf/Surf-106.xo Surf] which based on webkit (Safari/Chrome). Surf requires that you install the rpms for pywebkitgtk and webkitgtk
  
 +
The '''Below information is out-of-date'''
 +
<strike>
 
   activity/
 
   activity/
 
         activity.info                          (activity info file)
 
         activity.info                          (activity info file)
Line 50: Line 42:
 
         contents.sig                          (credentials for signed bundle)
 
         contents.sig                          (credentials for signed bundle)
 
         permissions.info                      (optional; '''not a stable API''')
 
         permissions.info                      (optional; '''not a stable API''')
 +
  assets/
 
   AUTHORS
 
   AUTHORS
 
   bin/
 
   bin/
Line 58: Line 51:
 
   clickToView.xml
 
   clickToView.xml
 
   COPYING
 
   COPYING
 +
  css/
 
   downloadmanager.py
 
   downloadmanager.py
 
   edittoolbar.py
 
   edittoolbar.py
 
   globalhistory.py
 
   globalhistory.py
 
   icons
 
   icons
 +
  index.html
 +
  js/
 
   linkbutton.py
 
   linkbutton.py
 +
  karma
 +
  karmaactivity.py
 
   lessons/
 
   lessons/
 
   locale
 
   locale
Line 78: Line 76:
 
   setup.py
 
   setup.py
 
   viewtoolbar.py
 
   viewtoolbar.py
   karmaactivity.py
+
   utils/
 
   webtoolbar.py
 
   webtoolbar.py
 +
</strike>
 +
== Lesson ==
  
== Karma lesson bundle ==
+
''consists of a single lesson''
  
''consists of multiple lesson in a single bundle''
+
  lesson_name/
 +
              assets/
 +
                      {langCode}/        (files specific to langCode: en-US, en, es-MX, es, ....) and not the default locale
 +
                      image/
 +
                      audio/
 +
                      svg/
 +
                      video/
 +
             
 +
              css/
 +
                    lesson.css
 +
              index.html           
 +
              js/
 +
                  lesson.js      main logic of program
 +
              kDoc.html  (viewer for lesson plan and teacher's Note)
 +
              lessonPlan.html
 +
              teachersNote.html
 +
              start.html    (start page)
 +
           
  
* common jquery and css files in a single folder
+
*Notes:
* preferably a script can be used to generate a lesson bundle with accompanying main menu and ''search'' (probably some sort of sitemap)
+
# {langCode} represents the lang code and country code
 +
# which will be the template language for assets/docs/* ?, English suggested
 +
# suggestion: rename assets/{langCode}/docs/ to docs/{langCode}/ . This is based that at this moment there are no other kind of files under assets/ than 'docs'
  
  bundle_name/
+
The following is out of date but kept for history
              mainmenu.html
+
<strike>
              css/                    # common css files (e.g. jquery.jgrowl.css and menu.css)
 
              js/                      # common javascript / jquery files
 
              lessons/                # directory for all the lessons
 
                    lesson_name/
 
             
 
== Lesson ==
 
  
''consists of a single lesson''
+
== Reading, Game and Exercise ==
 +
''consist of a single 'reading', 'game' or 'exercise' ''
  
  lesson_name/
+
{type}/
               index.html              # valid html5 -- markup only includes visual elements and links in other resources, no inline code or styling
+
               index.html              (valid html5 -- markup only includes visual elements and links in other resources, no inline code or styling )
               css/                     # css files  -- all control of presentation done in CSS
+
               css/{type}.css          ( css files  -- specific to the lesson )
                  karma.css            # default stylesheet for Karma
+
               js/{type}.js            ( javascript controlling logic for the lesson )
                  lesson_name.css      # custom stylesheet for lesson
+
               po/                      ( translation files )
               js/                     # javascript files
+
                   ne-NP.po            ( example translation file for Nepal - Nepali )
                  karma.js            # common javascript functions for a Karma lesson
+
                   sp-ES.po            ( example translation file for traditional Spanish )
                  jquery.js, jquery.growl.js    # utility functions from jQuery
+
                  {langCode}.po        ( translation file )
                  lesson_name.js      # javascript controlling logic for the lesson        
 
               po/                      # translation files
 
                   ne_NP.po            # example translation file for Nepal - Nepali
 
                   sp_ES.po            # example translation file for traditional Spanish
 
 
               assets/
 
               assets/
 +
                    generic/          ( for language independent assets (e.g. arrows, background images, etc.) )
 +
                        images/
 +
                            preview.jpg  ( screenshot for Chakra  )
 +
                        sounds/
 +
                        videos/
 +
                        docs/
 
                     ne/
 
                     ne/
 
                         images/
 
                         images/
                         audio/
+
                         sounds/
 +
                        videos/
 
                         docs/
 
                         docs/
                            lesson plan?
 
                            teachers note?
 
 
                     en/
 
                     en/
 
                         images/
 
                         images/
                         audio/
+
                         sounds/
 +
                        videos/
 +
                        docs/
 +
                    {langCode}/
 +
                        images/
 +
                        sounds/
 +
                        videos/
 +
                        docs/
 +
* Notes
 +
# {type} represents 'game' or 'exercise' or 'reading'
 +
# does docs/ is used?
 +
</stike>

Latest revision as of 00:55, 10 March 2010

The Main Karma Package

A set of tools that will help you start working with Karma quickly

This is what is contained in the repository at http://git.sugarlabs.org/projects/karma/

  • Includes script for Karma activity generation, xo bundle generation
  • includes "platform" files, i.e. a basic html5-capable browser that can be used to create an xo bundle
ROOT/                              ( ROOT is not actually a directory name, it just labels the top-level of this package )
   assets/                         ( images, audio, and text common to karma.html, examples, and the lessons for the launch page for all lessons )
          image/
          audio/
          locale_name/
                   image/            
                   locale_name.json   ( karma actually needs the .po file to be converted to .json )
                   audio/
   AUTHORS                         ( Should include names of everyone that has contributed to Karma main package )
   css/                           ( css/ and js/ contain the code common to all examples, lessons )
   COPYING                         ( Licensing information, should default to MIT License   ? how distinguish b/w code licensing and content licensing )
   docs/
   examples/                       ( working examples of karma lessons )
   index.html                     ( The starting page for accessing Karma lessons, should include links to the examples, known as the CHAKRA )
   js/                             ( css/ and js/ contain the code common to all examples, lessons, and karma.html )
   README
   tests/                          unit tests

Karma XO bundle

  • similar to E-Paath layout and uses the standard Sugar bundle structure
  • It is still undecided whether karma will default to using Browse which is based on Firefox or Surf which based on webkit (Safari/Chrome). Surf requires that you install the rpms for pywebkitgtk and webkitgtk

The Below information is out-of-date

 activity/
        activity.info                          (activity info file)
        activity-web.svg                       (icon for activity as specified in activity.info)
        mimetypes.xml                          (map documents to MIME types)
        text-plain.svg                         (icons for documents, e.g. "text-plain.svg" for "text/plain")
        text-html.svg
        contents                               (manifest for bundle contents)
        contents.sig                           (credentials for signed bundle)
        permissions.info                       (optional; not a stable API)
 assets/
 AUTHORS
 bin/
        launch.sh                           (launcher script)
 browser.dtd
 browser.py
 cert8.db
 clickToView.xml
 COPYING
 css/
 downloadmanager.py
 edittoolbar.py
 globalhistory.py
 icons
 index.html
 js/
 linkbutton.py
 karma
 karmaactivity.py
 lessons/
 locale
 MANIFEST
 messenger.py
 model.py
 palettes.py
 places.py
 po/ 
 promptservice.py
 README
 securitydialogs.py
 sessionhistory.py
 sessionstore.py
 setup.py
 viewtoolbar.py
 utils/
 webtoolbar.py

Lesson

consists of a single lesson

  lesson_name/
             assets/
                     {langCode}/         (files specific to langCode: en-US, en, es-MX, es, ....) and not the default locale
                     image/
                     audio/
                     svg/
                     video/
             
             css/
                    lesson.css
             index.html             
             js/
                 lesson.js      main logic of program
             kDoc.html   (viewer for lesson plan and teacher's Note)
             lessonPlan.html
             teachersNote.html
             start.html     (start page)
            
  • Notes:
  1. {langCode} represents the lang code and country code
  2. which will be the template language for assets/docs/* ?, English suggested
  3. suggestion: rename assets/{langCode}/docs/ to docs/{langCode}/ . This is based that at this moment there are no other kind of files under assets/ than 'docs'

The following is out of date but kept for history

Reading, Game and Exercise

consist of a single 'reading', 'game' or 'exercise'

{type}/
             index.html               (valid html5 -- markup only includes visual elements and links in other resources, no inline code or styling )
             css/{type}.css           ( css files   -- specific to the lesson )
             js/{type}.js             ( javascript controlling logic for the lesson )
             po/                      ( translation files )
                 ne-NP.po             ( example translation file for Nepal - Nepali )
                 sp-ES.po             ( example translation file for traditional Spanish )
                 {langCode}.po        ( translation file )
             assets/
                    generic/          ( for language independent assets (e.g. arrows, background images, etc.) )
                       images/
                           preview.jpg  ( screenshot for Chakra  )
                       sounds/
                       videos/
                       docs/
                    ne/
                       images/
                       sounds/
                       videos/
                       docs/
                    en/
                       images/
                       sounds/
                       videos/
                       docs/
                    {langCode}/
                       images/
                       sounds/
                       videos/
                       docs/
  • Notes
  1. {type} represents 'game' or 'exercise' or 'reading'
  2. does docs/ is used?

</stike>