Karma: Difference between revisions

No edit summary
Subzero (talk | contribs)
mNo edit summary
Line 9: Line 9:
=== Status ===
=== Status ===


Karma is a sub-project of Sugar Labs that is under active development as a part of a [[Karma#GSoC_Project| Google Summer of Code project]]. The latest examples can be seen at [http://karma.sugarlabs.org|http://karma.sugarlabs.org]. You can also check out the [http://karmaproject.wordpress.com Karma Project blog] for updates.
Karma is a sub-project of Sugar Labs that is under active development as a part of a [[Karma#GSoC_Project| Google Summer of Code project]]. The latest examples can be seen at [http://karma.sugarlabs.org http://karma.sugarlabs.org]. You can also check out the [http://karmaproject.wordpress.com Karma Project blog] for updates.




Line 34: Line 34:
=== Design Philosophy ===
=== Design Philosophy ===


A Karma lesson is composed of a valid xhtml5 document, javascript code, and css stylesheets. Karma should be very easy for inexperienced developers to understand and work with. Even non-programmers should be able to make visible changes by tweaking the code and liberal use of cut-and-paste. Complexities such as integration with pootle, local storage, and certain types of animation should be abstracted so that novice developers don't have to understand them in order to effectively use Karma. Karma strictly adheres to the Model-View-Controller Pattern and similarly to unobtrusive JavaScript. In essence. you should be able to substantially change the look and feel of a Karma lesson by modifying the CSS without having to understand the JavaScript code.
A Karma lesson is composed of a valid html5 document, javascript code, and css stylesheets. Karma should be very easy for inexperienced developers to understand and work with. Even non-programmers should be able to make visible changes by tweaking the code and liberal use of cut-and-paste. Complexities such as integration with pootle, local storage, and certain types of animation should be abstracted so that novice developers don't have to understand them in order to effectively use Karma. Karma strictly adheres to the Model-View-Controller Pattern and similarly to unobtrusive JavaScript. In essence. you should be able to substantially change the look and feel of a Karma lesson by modifying the CSS or you could translate the activity, without having to understand the JavaScript code.  


=== Technical Architecture ===
=== Technical Architecture ===


* Run-time - Karma will work with basic functionality on any W3C standards-compliant browser that supports HTML5 tags canvas and audio. This notably excludes Microsoft's Internet Explorer. Karma will be particularly tailored to work within Sugar's [[Browse]] activity. Longer-term we hope to extend Karma to take advantage of Sugar's collaboration features.
* Run-time - Karma will work with basic functionality on any W3C standards-compliant browser that supports HTML5 tags canvas and audio. This notably excludes Microsoft's Internet Explorer. Karma will be particularly tailored to work within Sugar's [[Browse]] activity. Longer-term we hope to extend Karma to take advantage of Sugar's collaboration features.
* Primary Programming language - Javascript (?version?) Karma depends heavily the javascript library jQuery, version 1.3.
* Primary Programming language - Javascript ([https://developer.mozilla.org/En/JavaScript 1.8.1]) Karma depends heavily the javascript library jQuery, version 1.3.
* i18n -- Pervasive internationalization is a critical part of Karma
* i18n -- Pervasive internationalization is a critical part of Karma
** Supported types of i18n
** Supported types of i18n
Line 52: Line 52:


   lesson_name/
   lesson_name/
               index.html              # valid xhtml5 -- 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/                    # css files   -- all control of presentation done in CSS
                   karma.css            # default stylesheet for Karma
                   karma.css            # default stylesheet for Karma
                   lesson_name.css      # custom stylesheet for lesson
                   lesson_name.css      # custom stylesheet for lesson
               js/                      # javascript files
               js/                      # javascript files
                   karma.js            # common javascript functions for a Karma lesson
                   karma.js            # common javascript functions for a Karma lesson
                   jquery.js, jquery.growl.js    # utility functions from jquery
                   jquery.js, jquery.growl.js    # utility functions from jQuery
                   lesson_name.js      # javascript controlling logic for the lesson           
                   lesson_name.js      # javascript controlling logic for the lesson           
               po/                      # translation files
               po/                      # translation files
                   ne_NP.po            # example translation file for US English
                   ne_NP.po            # example translation file for Nepal - Nepalli
                   sp_ES.po            # example translation file for traditional Spanish
                   sp_ES.po            # example translation file for traditional Spanish




Line 73: Line 72:
* Working demos at http://karma.sugarlabs.org
* Working demos at http://karma.sugarlabs.org
* Project Documentation kept in the Sugar Labs wiki
* Project Documentation kept in the Sugar Labs wiki
* Code naming conventions ?
* Code naming conventions: Based in [http://www.gnu.org/prep/standards/standards.html GNU standards]
* File naming conventions: lowercase letters, underscore instead of spaces  (need to write more about it)
* File naming conventions: lowercase letters, underscore instead of spaces  (need to write more about it)