GureWork > espacios de Coworking topalekuak :)
GureWork > espacios de Coworking topalekuak :) > MindTouch dekiwiki > CoDoer framework

CoDoer framework

     CoDoer framework under MindTouch 

     v   < 
     > 

     

      CoCreation made Simple

    The main objective for CoDoer Framework is to make co-creation simple in a collaborative way. Our implementation is based in MindTouch collaborative open-source platform (as a back-end), we work on co-creating a new framework in a learning by doing way, more (re)usable and cooperative for developers (building engines & widgets), but for common users too (reusing & customizing widgets) :)

      Our Twitter & Blog

    You'll find updated info following us through our Twitter account and Blog posts:

      Main keys

    • How can we do more things with less work...? simplifying, reusing & cooperating :) 
      • making it more simple to use (usable)
        • More visual
        • Better organized
        • More interactive
      • making it more reusable
        • More modular (reusing the parts)
        • More shareable (reusing with others)
      • making it more usable with others (cooperative)
        • More collaborative (coworking)
        • Better distributed (networking)
    • By parts
    • First approach

      Parts

    • Model: the developer can define data models to after manage them (without adding any new tables).
    • View: the developer can design views (user interfaces) within regular editor, and using dekiscript assign actions to be executed by the controller, when DOM events occur (using JEM).
    • Controller: the developer can use the controller template within the page to run MVC actions. This dekiscript template use javascript and ajax, can catch events, run asynchronous operations calling dekiscript templates and REST operations, and update DOM elements.
    • Sharer: the part that facility coordinating and sharing all the parts, adding its collaborative abilities.
    • Junctions
      • View<->Controller
      • Model<->Controller
      • View<->(Controller)<->Model
      • MVC<->Sharer<->MVC

      Doing It!

    How?

    I've some ideas about visualization, collaboration, autonomy, etc., and it think the most easy way to explain them is... doing them ;), then follow me, let's go!

    To do some transformations to any template (source template), we need to add some extra code somewhere, then we have two possibilities:

    • To add the extra code inside the source template
    • To use another template to do it (engine template), taking out the control of the source template

    With the first option, we mix source and controller code, and is harder to maintain the code.

    Then we'll use a engine template, called "CoDoer".

    Step #1 : Runner engine: Organize by Sections

     Completed :  Jan-Feb 2010 over MindTouch 9.08 "Minneopa" 

    One of the capabilities of MindTouch that i like more is sectioning, i like how using sections i can organize and edit the contents easily :)

    • Organize by Sections
      • Organize code in sections
      • Separate presentation code & Visualize into user interface
      • Add logging capabilities

    Step #2 : Runner engine: Views with Events

     Completed :  Mar-Apr 2010 over MindTouch 9.08 "Minneopa" 

    We can improve the separation and obtain a template that we can understand and maintain more easily :)

    • Views with Events
      • Move "Message Manager" Events to their associated Views
      • Move language texts (localized strings) to separated Resources section
      • Add event logging capabilities

    Step #3: Runner Controller & Activator

     Completed :  May 2010-Jan 2011 over MindTouch 10.0.5 "Olympic" 

    The way to separate and facility the control of each parts (Runner), and to manage widgets with different engine actions (Activator).

    • Runner Controller & Activator
      • Runner engine: Controller with Multiple Widgets
        • Move all event handling control code to a maintainable Interaction table
      • Activator engine: Action engine Management, with Run & Test actions
        • Define a global CoDoer activator engine to manage all the action engines applicable to a widget
    m

    Step #4: Controller Scenes, Evolution, Messages & Multi-localization

     Completed : Feb 2011-Aug 2011 over MindTouch 10.0.8 "Olympic" 

    The way to control Widget state transitions (Scenes), and to reutilize and integrate Template & REST operations

    • Controller Scenes (inside Interactions)
      • Add new div html elements to all views
      • Add new variables to store scene state
      • Add new code in controller function to manage scene transitions
    • Added evolution capabilities to widgets and engines
      • Activator engine
        • Revision qualifier handling in engines & widgets
        • New widgets section with revision quialifiers
      • New evolution tables for each Widget, registering main branches (with revisions)
    • Added message event handling
      • New "message" event at controller interactions table
      • Inner widget or entire page (inter widgets) scope
    • Added multi-localization handling
      • Runner multi-localization handling integrated with views & controller intreractions
    • Create a simple Wizard widget: "SceneFlow"
      • Some simple Html views
      • Define transitions by scenes
      • Enable localization to change wizard language

    Next Step #5: Runner with Generator engine

     Planned for Sep 2011 

    The way to reuse Widgets, enabling to create widgets based in other configurable/composable pattern widgets

    • Adapt Runner engine to use combined with Generator engine
      • To parse new Generate sections & extract data from table
      • To call Generator engine
      • To compose result in caller widget
    • Create new Generator engine
      • To get & interpret configurable parameters
      • To apply & return configured widget
    • Create a new pattern widget
      • Form-EditList based in ToDoList widget (MindTouch) & TaskList3 (@Carlescm)
    • Create a Tutorial creating a simple ToDo List widget using Generator from scratch
      • To show it in a few simple steps :)

    Following Steps

    • Refactory Runner Section Parser
      • Create a Section Parser template at CoDoer-Util
      • Test that all the widgets runs fine
    • Controller Operations
      • To parse new Operation section & extract data from table
      • To create a new JS function to run operations
        • REST operations
        • View refresh operation (with localization)
        • Others?
      • Add new code in controller function to execute operation functions
      • Add error handling
    • Collaborative Manager & Distributed widgets

      • The way to share Templates and enable networked development ;)

    • Native Databases

      • The way to create autonomous & shareable applications :)

    • Designer

      • The way to co-design widgets ;) where the coders can co-create & share widgets, and non-coders can reuse them :)

    ;) Open Collaboration

     The Nature of this development is fully collaborative: open contribution & shareable sources 

     If you want to participate in developing somehow, i will be very happy to coworking with you :)) 

     @himikel 

     

    :) Interactive discussion

     Use @user to publish it on his/her wall immediately (on GureWork) 

     

    Resources

    Releases

    Engine : Runner
    { 
        "#1": "CoDoer-Runner-1", 
        "#2": "CoDoer-Runner-2", 
        "#3": "CoDoer-Runner-3", 
        "#3b": "CoDoer-Runner-3b", 
        "#4": "CoDoer-Runner-4:480"
    }
    Engine : Tester
    { 
        "#1": "CoDoer-Tester-1", 
        "#2": "CoDoer-Tester-1", 
        "#3": "CoDoer-Tester-1", 
        "#3b": "CoDoer-Tester-1", 
        "#4": "CoDoer-Tester-1"
    }
    Widgets
    { 
        "Calculator-CoDoer-4": ":20", 
        "GigyaSocialize-CoDoer-4": ":98", 
        "InteractiveComments-CoDoer-4": ":0", 
        "LinkedHitz-Local-Pref-4": ":32", 
        "LinkedHitz-Local-Prop-4": ":196", 
        "SceneFlow-CoDoer-4": ":92", 
        "TodoList-CoDoer-4": ":13"
    }

     

    Resources

    Releases

    Engine : Runner
    { 
        "#1": "CoDoer-Runner-1", 
        "#2": "CoDoer-Runner-2", 
        "#3": "CoDoer-Runner-3", 
        "#3b": "CoDoer-Runner-3b", 
        "#4": "CoDoer-Runner-4:480"
    }
    Engine : Tester
    { 
        "#1": "CoDoer-Tester-1", 
        "#2": "CoDoer-Tester-1", 
        "#3": "CoDoer-Tester-1", 
        "#3b": "CoDoer-Tester-1", 
        "#4": "CoDoer-Tester-1"
    }
    Widgets
    { 
        "Calculator-CoDoer-4": ":20", 
        "GigyaSocialize-CoDoer-4": ":98", 
        "InteractiveComments-CoDoer-4": ":0", 
        "LinkedHitz-Local-Pref-4": ":32", 
        "LinkedHitz-Local-Prop-4": ":196", 
        "SceneFlow-CoDoer-4": ":92", 
        "TodoList-CoDoer-4": ":13"
    }

    Powered by MindTouch (Expired)