From MozillaWiki
Jump to: navigation, search

Project Abstract

Expression Widgets is part of the JetPack for Learning, an effort to support open education. The project proposes a system that leverages the web browsing experience and the JetPack infra-structure, and support learners to collaborate and produce open-based educational resources. The model proposes a collaboration environment where students express their thoughts as part of ongoing sessions, such as a lecture given by a professor.

To support students to contribute to educational resources, Expression Widgets introduces a number of pre-developed widget modules. This model aims to explore various communication forms using web-based standards. The goal is to reach a condition where participants can create/capture/modify content such as text, canvas-based drawings, SVG elements, MathML or other type of mathematical expression formats, and more.

The annotated resources are organized and kept in simple wiki pages, so there are less rules associated with server systems and focus on possibilities for team-centered conventions. This is a key component of this project as we want to minimize the aspects of governance and let participants simply create open-based repositories and start collaborating. While keeping an user interface that let everyone express while they are browsing, the system aims to spread the idea that annotations about live events can eventually become an open-based education resource. This may support educational organizations to break traditional thinking that all the materials need to be books or something that is old-fashion printed. Since everyone is contributing, the association with personal attribution may loose value as the social interactions can gain attention thus spreading a culture of continued collaboration over the materials.

Note - March Review

* ( new documentation section was uploaded to the project home )

Note - Feb 4th Update

  • Reviewer and interested users - Notice from February 4th - if you find the GitHub location down or slow, please use this alternative hosted site.

Main - Jan 31th UTC-8 6.28PM Update

  • Project homepage on Github with a video overview, link to installation of the jetpack, and also information on how to set the environment. The video shows an earlier version of the system, however the overview demonstration applies fine to the current application. The app current version is 0.5.8.

Project Status

Moving forward

  • More ways to visualize the shared resources. At this stage, when a participant clicks the 'class' button, they enter in overlay mode. The current visualization is quite simple and it shows a case of social aggregation that organizes the statements from the various participants using the date time stamp information. Moving forward, it is important to explore new ways to visualize the aggregated information from the participants. Maybe even explore the case where input from a participant can influence partially the visualizations.
  • As students can share their statements under a same ongoing session, the system should explore interactive scenarios where teams can build more complex document-based structures together, such as a collaborative diagram. At this point it is not possible for user A to clone statements from user B.
  • Improve compatibility with server-side repositories. There are identified challenges as the system interacts with an existing wiki page. As an example, the image widget stores the image bits information using inline data in the wiki which can lead to huge sections in the wiki. We need to evaluate this model and also how wiki systems can deal with external applications. At this stage, the implementation of the transport mechanism deals with the wiki page using a hidden iframe. It is important to move to explore real web services interfaces as a means to read/write on behalf of users.

Concept of Widgets


Widgets are helper applications that can help participants to create and format content into the collaborative session. In this context, a major challenge is how to let participants use the natural Web ( apps and content available online ) and be able to associate the content from these apps into the experience. To illustrate a scenario, imagine that user A uses an online app and creates a drawing DA. An user B may want to clone that drawing DA as a new drawing DB. In order to do that, User B needs to see the visualization of DA, then, when it is time to edit, the original meta/data, not the graphics view, must be cloned and an editing experience must be recreated, now for user B with a clone DB of DA. Being the drawing app a Web-based app, the system needs to mediate the data from user A and pass along to the web app as being data for the user B. This negotiation needs to be done in the client and maybe with some guidelines or rules that are part of the shared document.

Current stage

Some widgets are local wrappers to remote apps, like the textify case. In other cases, we have local widgets - JavaScript code that is bundled together with the Expression Widgets prototype. The end goal is to keep all the widgets online and not a local repository with installed code - what we have at this stage ( 0.5.8 release ). Participants should be able to simply import widgets that are being referenced from the wiki-based documents. This model suggests a highly scalable widget architecture where participants can be creative and express their ideas with online apps available on the web. It may also be interesting to explore licensing and expose the culture of flexible licenses to the participants session. This way, knowing that an online app can generate content under flexible licenses, such as creative commons, users may experience improved collaboration opportunities.

A number of current widgets implemented and locally added to the ExpressionWidgets JetPack application. These widgets should be considered as examples of applications that can support participants to express their thoughts for an ongoing session:

Other widgets to be explored:

Concept of Repositories

Warning - These URLs are use cases URLs that represents classes. The ExpressionWidget JetPack application can read/write to these URLs or other URLs that match the same wiki markup structure. Please do not write in these pages, unless you are following the instructions along with the JetPack. These URLs are meant to be written by the ExpressionWidgets JetPack Module, and also visualized, at this stage, by the Expression Widgets overlay visualization mode.

  • [[1] Test Class 1]
  • [[2] Test Class 2]
  • [[3] Test Class 3]

Video Updates

These videos are here as reference materials on the developments. This should be used by developers or folks closer to being a contributor.


  • (feedback) A bit confusing the dual username
  • (feedback) Snapshot and Textify are cool
  • (feedback) Gomes tested on Windows - all great
  • (feedback/paula) Difficult to understand the save mechanism
  • (feedback) More improvements and new visualizations to the overlay mode
  • (bug) tooltips now working ( Jetpack? )
  • (bug) Cannot put spaces around screenname
  • (bug) There is been reports of screenshot not working. So far the widget panel needs to be in the slidebar at the same time you visit the snapshot page;
  • (bug) If you are saving, and editing new stuff, you will loose til the saving goes on - a new reload happens