Karma

From Sugar Labs

Jump to: navigation, search

Contents

Karma.png

The Karma Project

Karma is a framework for creating educational software using JavaScript, html5, and SVG. The Karma team is primarily focused on developing Sugar activities but you can also Karma to create lessons that run in any web browser that supports html5. The best ways to get involved are to join the mailing list and get the code

Rationale

Anyone with a modern standards-compliant web browser and a text editor should be able to create learning activities that can be used by anyone with a computer. Sugar should not be a walled garden that only allows learning activities expressly designed for it and it alone but rather gives extra power and depth to learning activities. Karma uses a specialized vocabulary that features a number of specialized terms. Please refer to the Karma Dictionary early and often.

Status

Karma is a sub-project of Sugar Labs that is under active development. The latest examples can be seen at http://karma.sugarlabs.org. You can also check out the Karma Project blog for updates.

To try out the karma examples you need to have an html5-capable browser. The Browse activity within Sugar does not currently support html5. To try out karma within Sugar you need to install Surf and its webkit dependencies or run Firefox 3.5 from the command-line (yum install pywebkitgtk WebKit-gtk gnome-python2-gconf).

The current focus of development is to convert Nepal's set of lessons coded in Squeak smalltalk. You can find the list of lessons to be converted here. This is a good place for new contributors to get started

What Karma Is

What Karma Isn't

Design Philosophy

A Karma lesson is composed of a valid html5 document, javascript code, and css stylesheets and optional assets such as images, audio, video and lesson plans. 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.

Design Goals

Technical Architecture

Conventions

 The following are valid names
 karma_3_Maths_LargestNumber_15
 karma_2_English_MatchingPuzzle
 karma_6_Maths_AddingUpTo10_4
Put code in following order
1) variable declarations
2) method declarations
3) method calls

Version Control

Currently all lessons are stored in the examples/ folder of main karma repository


Here is how you can use the karma_lesson template to create a new repository from scratch

 $ git clone git://git.sugarlabs.org/karma_lesson/mainline.git
 $ mkdir ../karma_3_English_3  # create a new lesson directory following our naming convention
 $ cp -r * ../karma_3_English_3  
 $ cd ../karma_3_English_3
 $ rm -r .git     # make sure you get rid of the old git directory
 $ git init
 $ git add .
 $ git commit -a -m "first commit"

Now go to the http://git.sugarlabs.org/projects/new, make sure you are logged in Create a new project, use the same name as you did for your lesson's main folder then,

 $ git remote add origin git://...   # the pubic push url

Then on to coding your lesson ;)

From then on

$ git push origin master   # will sync your local tree w/ the server

Tagging -- a karma lesson can be in only one of two states, stable or unstable. Any commit tagged 'stable' is the stable version of your code. Every other version of your code is unstable. We will not use numeric versioning such as 0.1, 1.0, 1.2, etc. for the foreseeable future.

Meetings

Karma:Meeting 21 December 2009

GSoC Project

Karma started as a GSoC project with Felipe Lopez Toledo "SubZero" as the student participant and Bryan Berry as mentor.

GSoC Meetings

Notes from GSoC meetings - kept for archival purposes

Project Roadmap

0.1 "Osito"

Was completed September 11, 2009

0.2 "Gatito"

Completed mid-December 2009


0.3 "niño"

Due 31 March 2010

Future Direction of Karma

No schedule yet.

This page has more information.

Library

here lies a lot of links to resources specific to karma

UI

HTML5

General Web Design

Canvas

SVG

Javascript


Coding Tools and Conventions

Subpages

Karma/Anti-conventionsKarma/AssessmentKarma/Bundle layout
Karma/CollaborationKarma/DictionaryKarma/Future Direction
Karma/Layout Converted Squeak LessonsKarma/NepalKarma/Specifications
Karma/To-DoKarma/UtilitiesKarma/application
Karma/i18n
Personal tools
Namespaces
Variants
Actions
Sugar
Teams
Projects
Local Labs
Using the Wiki
Google Translations