Tutorius integration proposal for Sugar 0.90

Here is a proposal to integrate a tutorial system into the next release of Sugar (0.90). This proposal builds on top of the work done on Tutorius during the last year and attempts to provide a draft version to be improved by community feedback. First, a high-level overview of the result expected is discussed and mock-ups based on screenshots are used to illustrate the idea. Second, the technical feasibility is discussed given what we learnt during the last year. Third, a roadmap is suggested to take into account the release calendar of Sugar.

Overview

The proposal consists in providing a default interactive tutorial for Sugar that will give an overview of the particularities of the Sugar interface and activities. This tutorial should be accessible from the first login screen, right after the color selection, and from the option menu:

login

options

The tutorial will provide an overview of the Desktop, the Group and the Neighborhood Views as well as the Frame, the Journal, the Write and the Browse activity. Here are screenshots of what it might look like for some of them.

desktop

neighborhood

journal

write

The information presented to the user will be essentially composed of bubble messages pointing at screen elements. Progress through the tutorial will be accomplished by the user clicking a next button at the bottom of the screen. Once the tutorial is over, the user will be brought back to the Desktop screen where she will be able to resume interacting with the system normally.

The tutorial should be stored in the user home directory, alongside any activity data, as an XML file representing the execution states of the tutorial.

Translation of the tutorial should be made using the gettext convention by storing translations of the tutorial strings along side the XML file using the gettext schema (.po, .pot, .mo files).

The tutorial should be independent of the screen resolution.

On top of that, the tutorial should be designed to be robust against unscripted actions made by the user. It means that if the user clicks on any button while the tutorial is showing the different elements of the interface, the tutorial should never become out-of-sync with the state of the interface in a way that cannot be resolved by the user. The examples given previously simply rely on the user pressing the next button when she is ready to move on, therefore issues about the exact state of the interface should be avoided.

For the 0.90 release, the tutorial won’t be user modifiable other than by modifying the XML format by hand, which won’t be recommended.

Feasibility

The major part of the system has already been developed as part of the Tutorius project, that has been running from January to December 2009. The subsystems that have been developed include:

  • An engine to run tutorials through many activities
  • An XML format to save tutorials to disk
  • A translation scheme for user-visible strings based on gettext
  • A rendering mecanism to display custom defined drawings on top of an activity or on an overlayed window
  • A communication mecanism between the engine, Activities and the Shell to send information to be displayed (Bubble Messages) and receive events generated inside the activity based on dbus
  • However, a number of issues prevent the current system from being able to run the aforementioned scenario:

  • Current Bubble Message positions are pixel defined. Therefore, they are not resolution independent
  • A transparent window cannot be reliably overlayed on top of each Shell view, preventing Bubble Messages from being displayed on those
  • Assessement of the security of the communication mecanism between the engine and the different Activities must be done to make sure that we do not break the security scheme already in place
  • Those are the major issues that will need to be worked out to make the system works and the integration smooth.

    Roadmap

    A tentative high-level roadmap is proposed, taking into account the roadmap to Sugar 0.90. The major difficulty anticipated is having the code reviewed, understood and integrated in the Sugar mainline by core developers. To ease the transition, the current system will be rebased on top of the latest release of Sugar (0.88), so that a patch for sugar and sugar-toolkit will be easily derivable. Also, a custom build of SoaS with the Tutorius system will be made available for testing. This roadmap is subject to changes if a better order is found to facilitate a progressive testing by the NZ team.

    March

    Discuss with the Sugar community about the proposal
    Specify the content for the introduction tutorial
    Rebase the current Tutorius code base to Sugar 0.88

    April

    Produce a new SoaS image with Tutorius based on Sugar 0.88
    Fix the window stacking to correctly overlay bubble messages on top of Views and the Frame

    May

    Migrate the Bubble Message position rendering from absolute to relative
    Fix remaining minor bugs

    June

    Make sure localization of Tutorials correctly works
    Add the logging screen option for the introduction tutorial
    Add the option item to replay the introduction tutorial

    July

    Produce a first complete Tutorial
    Produce documentation for the localization team to translate the Tutorial

    August

    Bug fix
    Revision of the Tutorial
    Help with the release effort

    September

    General help

    Please contribute any relevant comment below!

    Post a Comment

    Your email is never shared. Required fields are marked *

    *
    *