Git Product home page Git Product logo

karmamake's Introduction

Inspired by the Karma project at http://karma.sugarlabs.org/
Karma lessons should be easy to make. Especially the ones that are very similar to others.
Let's have a templating system, and very readable lesson specifications.
Share your thoughts!

Everything to create lessons is in the 'source' directory.
The created lessons will end up in the 'lessons' directory.
For every lesson content directory in 'source/content' the make.rb tool reads in the script file (script.yaml).
In the script you specify the lesson format and style to use.
Those are read from 'source/formats' and 'source/styles' respectively.

Executing the Ruby script source/make.rb in the source directory generates the lessons.
You can view a lesson by clicking the index.html file in any of the generated lesson directories.

Rob van den Bogaard, 2011-01-18


==== REDESIGN THOUGHTS ====

/lessons --> output for complete lessons
/source/storyboards --> text scripts for lesson outlines
/source/content --> text scripts for learning content
/source/interaction --> javascript interaction library, html entry point(s)
/source/style --> svg/html/css designs

example:
/source/style/daddy duck/ contains:
  markup for entry point
  

  storyboard:
    start:
      interaction: explanation
      when:
        next: find the gem
    find the gem:
      interaction: rpg seek
      when:
        found: make sums
    make sums:
      interaction: fill blanks
      when:
        ready: show score
    show score:
      interaction: score board
      when:
        next: start

  content:
    title:
      Multiplication
    style:
      Daddy duck
      
    start:
      text: In this lesson we will explore the wonders of multiplication.

lesson specification text script
learning content text script
storyboard text script: creates an interactive story by defining a flow of interactions
lesson constructor ruby script: generates lessons by reading templates and filling in blanks
interaction component javascript: defines an interaction between the player and the lesson
audio-visual design svg/html/css/image/font/sound files: provides template or scene to put the interaction in and style them

use placeholders everywhere:
- values from content get inserted in interaction script by element id
- interaction components get inserted into style templates by interaction name and element id

karmamake's People

Contributors

robvandenbogaard avatar

Stargazers

 avatar

Watchers

 avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.