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 reading.html, css and js are common files, they are inside../css/ and ../js/ respectively) tutorial/ ( contains files related to the tutorial ) game/ ( contains files related to the game ) exercise/ ( contains files related to the exercise ) assets/ {langCode}/ (files specific to langCode: en-US, en, es-MX, es, ....) docs/ activity text lesson plan teachers note
- Notes:
- {langCode} represents the lang code and country code
- which will be the template language for aseets/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'
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
- {type} represents 'game' or 'exercise' or 'reading'
- does docs/ is used?