Karma/Bundle layout

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, sounds, and text common to karma.html, examples, and the lessons )
          default/
                  images/
                  sounds/
          locale_name/
                   images/            
                   locale_name.json   ( karma actually needs the .po file to be converted to .json )
                   sounds/
   AUTHORS                         ( Should include names of everyone that has contributed to Karma main package )
   ChangeLog                       
   COPYING                         ( Licensing information, should default to MIT License   ? how distinguish b/w code licensing and content licensing )
   css/                            ( css/ and js/ contain the code common to all examples, lessons, and karma.html )
   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 )
   karma                           ( This is a shell script that launches utils/karma.js, it just checks if you have java installed so you can run karma.js 
                                     it is inspired partly by rails and django-admin administrative scripts )
   lessons/                        ( this is the workspace for creating new Karma lessons )
   NEWS                             ( List of important changes to this package indexed by version )
   po/ 
   README
   utils/                           ( The narwhal command-line interpreter for javascript and other utility scripts used by karma.js )
          bin/
          browser/                        ( An html5-capable browser that can be used to create sugar .xo bundle )
          karma.js                        ( The main utility script for karma, all it dependencies live in utils/ )
          packages/
          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
 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

Karma lesson bundle

consists of multiple lesson in a single bundle

  • common jquery and css files in a single folder
  • The karma utility script can be used to generate a lesson bundle with accompanying main menu and search (probably some sort of sitemap)
 bundle_name/
             assets/
                     default/              ( default as in the default locale)
                             docs/
                             images/
                             sounds/
                             default.po
                     en-US/
                             docs/
                             images/
                             sounds/
                             default.po
             css/                     ( common css files (e.g. jquery.jgrowl.css and menu.css ) )
             index.html          ( Common gateway to access the lessons in the bundle known as the Chakra)
             js/                      ( common javascript / jquery files )
             lessons/                 ( directory for all the lessons )
                    lesson_name1/
                    lesson_name2/

Lesson

consists of a single lesson

 lesson_name/
             index.html               ( lesson menu with iFrame for lesson.html )            
             lesson.html              ( valid html5 -- markup only includes visual elements and links in other resources, no inline code or styling )
             exercise.html            ( =||= )
             game.html                ( =||= )
             css/lesson.css           ( css files   -- specific to the lesson )
             css/exercise.css         ( css files   -- specific to the exercise )
             css/game.css             ( css files   -- specific to the game )
             js/lesson.js             ( javascript controlling logic for the lesson )  
             js/exercise.js           ( javascript controlling logic for the exercise )
             js/game.js               ( javascript controlling logic for the game )       
             po/                      ( translation files )
                 ne-NP.po             # example translation file for Nepal - Nepali
                 sp-ES.po             # example translation file for traditional Spanish
             assets/
                    generic/          # for language independent assets (e.g. arrows, background images, etc.)
                       images/
                          lesson/
                          exercise/
                          game/
                           preview.jpg # screenshot for Chakra
                       sounds/
                       videos/
                       docs/
                    ne/
                       images/
                       sounds/
                       videos/
                       docs/
                            activity text
                            lesson plan
                            teachers note
                    en/
                       images/
                       sounds/
                       videos/
                       docs/