Développement d’une borne interactive

Adaptation d'un système d'exploitation spécifique pour la mise en place de borne d'accès aux élèves et parents d'élèves accessible dans les bureaux OPT et en tribu afin que les parents puissent avoir accès aux notes, suivi et informations de leurs enfants (site VR, pronote, site CIO, site IDCNC et ENT). Projet finalisé en août 2015 en vue d'une présentation aux dirigeants OPT. Travail en collaboration / concertation avec des enseignants de Touho.

Projet PAROLE : Poste d’Accès aux Ressources de l’Orientation et de Liaison avec l’Elève

Contexte

Les familles en Nouvelle-Calédonie résident pour la grande majorité à des distances éloignées du lycée ou du collège, la correspondance avec celles-ci peut donc s’avérer laborieuse et non optimale. Même si elle souhaitait s’investir, il leur serait compliqué, en dehors des horaires de bureau et sans Internet, de pouvoir assurer un suivi de proximité.

Des logiciels s’inscrivent dans le cadre d’une correspondance plus optimale entre les établissements et les parents d’élève, le but étant de pouvoir suivre l’évolution de l’enfant. Seulement cela implique que la famille a, à la fois accès à Internet, à un ordinateur et sait comment utiliser tout cela. Ainsi, une grande majorité attende l’issue des conseils de classe pour connaitre véritablement l’évolution de leur enfant.

C’est pour se proposer de résoudre ce problème de suivi et de communication entre les professeurs, l’élève et les parents d’élèves que ce projet est apparu. L’idéal serait de proposer une borne interactive librement accessible aux parents d’élèves dans les bureaux de poste (OPT) ou dans les villes (mairie) ou à proximité des tribus.

Fonctionnement du dispositif

La borne interactive est constituée d’un écran tactile, d’un nano PC (type raspberry pi) et d’une connexion Internet. Elle devra être installé dans les bureaux OPT dans un premier temps en province nord ou dans des institutions / organisations partenaires du projet. Elle devra être le plus simple possible d’utilisation.

Accès aux applications Web suivantes : site du vice-rectorat, site des établissements, des liens vers les offres de formation et d’orientation, d’autres liens à la demande. L’accès à pronote de chaque établissement ou tout outil de suivi des élèves est primordial.

Objectifs

  • Réduire la fracture numérique en nouvelle Calédonie
  • Renforcer la liaison parents-établissement et la rendre plus réactive et attractive par l’accès aux informations disponibles concernant le suivi de l’élève
  • Permettre une diffusion plus large et interactive des ressources éducatives disponibles (orientation,événements, diffusion d’informations)
  • Réduire les couts de correspondance et diminuer la consommation de papier dans la communication
  • Améliorer l’image des établissements scolaires en Nouvelle Calédonie par une meilleure visibilité

Travail effectué

Par rapport aux contraintes indiquées, j’ai directement indiqué que l’idéal serait une application Web en HTML5 (avec ou sans framework) avec une carte interactive permettant aux parents de sélectionner le collège ou établissement souhaité. L’application Web devra être responsive design pour s’adapter à tout type d’écran (terminaux ou autre).

L’intérêt d’une interface Web est de permettre de centraliser l’ensemble des liens, d’en ajouter / modifier à la demande, sans devoir refaire tous les terminaux à la moindre modification. L’interface Web a été entièrement réalisée par la webmestre du vice-rectorat.

Mon implication a été principalement sur le choix, la modification et l’adaptation d’un système d’exploitation. Il fallait qu’il soit minimal en ne lançant qu’un navigateur Web qui se connecterait directement sur l’interface Web sans aucun accès aux périphériques (pas de clef USB ou autre), qu’il soit entièrement tactile et que la configuration soit centralisée.

  • Sélection du système d’exploitation porteus kiosk avec configuration centralisée
  • Adaptation / modification du système d’exploitation
  • Adaptation / modification de chrome en mode borne
  • Adptation / développement de plugins pour chrome
    • Virtual Keyboard : modification pour la gestion des iframe
    • Google input tools
    • vTab

Modifications de Virtual Keyboard

Pensez à activer l’option « touchscreen » !

script.js

chrome.extension.sendRequest({method: "openFromIframe", posY: posY, posX: posX, force: force, frame: this.parent.id, elem: virtualKeyboardChromeExtensionClickedElem.id });

Au lieu de :

chrome.extension.sendRequest({method: "openFromIframe", posY: posY, posX: posX, force: force, frame: this.frameElement.id, elem: virtualKeyboardChromeExtensionClickedElem.id });

Et :

function virtualKeyboardChromeExtension_inputTypesRender() {
    if (virtualKeyboardChromeExtensionElemType == "textarea") {
        if (top != self)
        {
            window.parent.document.getElementById("virtualKeyboardChromeExtensionMainNumbers").style.display =  "none";
            window.parent.document.getElementById("virtualKeyboardChromeExtensionNumberBarKbdInput").style.display =  "none";
            window.parent.document.getElementById("virtualKeyboardChromeExtensionMainKbd").style.display =  "";
        }
        else
        {
            document.getElementById("virtualKeyboardChromeExtensionMainNumbers").style.display =  "none";
            document.getElementById("virtualKeyboardChromeExtensionNumberBarKbdInput").style.display =  "none";
            document.getElementById("virtualKeyboardChromeExtensionMainKbd").style.display =  "";
        }
        virtualKeyboardChromeClassStyleDisplay("kbEmailInput", "none");
    } else {
        if (top != self)
        {
            window.parent.document.getElementById("virtualKeyboardChromeExtensionNumberBarKbdInput").style.display =  "none";
            window.parent.document.getElementById("virtualKeyboardChromeExtensionMainKbd").style.display =  "";
            window.parent.document.getElementById("virtualKeyboardChromeExtensionMainNumbers").style.display =  "none";
        }
        else
        {
            document.getElementById("virtualKeyboardChromeExtensionNumberBarKbdInput").style.display =  "none";
            document.getElementById("virtualKeyboardChromeExtensionMainKbd").style.display =  "";
            document.getElementById("virtualKeyboardChromeExtensionMainNumbers").style.display =  "none";
        }
        virtualKeyboardChromeClassStyleDisplay("kbEmailInput", "none");
        if (virtualKeyboardChromeExtensionClickedElem.type == "number") {
            if (top != self)
            {
                window.parent.document.getElementById("virtualKeyboardChromeExtensionNumberBarKbdInput").style.display =  "";
                window.parent.document.getElementById("virtualKeyboardChromeExtensionMainKbd").style.display =  "none";
            }
            else
            {
                document.getElementById("virtualKeyboardChromeExtensionNumberBarKbdInput").style.display =  "";
                document.getElementById("virtualKeyboardChromeExtensionMainKbd").style.display =  "none";
            }
        } else if (virtualKeyboardChromeExtensionClickedElem.type == "email") {
            virtualKeyboardChromeClassStyleDisplay("kbEmailInput", "");
        }
    }
}

Au lieu de :

function virtualKeyboardChromeExtension_inputTypesRender() {
    if (virtualKeyboardChromeExtensionElemType == "textarea") {
        document.getElementById("virtualKeyboardChromeExtensionMainNumbers").style.display =  "none";
        document.getElementById("virtualKeyboardChromeExtensionNumberBarKbdInput").style.display =  "none";
        document.getElementById("virtualKeyboardChromeExtensionMainKbd").style.display =  "";
        virtualKeyboardChromeClassStyleDisplay("kbEmailInput", "none");
    } else {
        document.getElementById("virtualKeyboardChromeExtensionNumberBarKbdInput").style.display =  "none";
        document.getElementById("virtualKeyboardChromeExtensionMainKbd").style.display =  "";
        document.getElementById("virtualKeyboardChromeExtensionMainNumbers").style.display =  "none";
        virtualKeyboardChromeClassStyleDisplay("kbEmailInput", "none");
        if (virtualKeyboardChromeExtensionClickedElem.type == "number") {
            document.getElementById("virtualKeyboardChromeExtensionNumberBarKbdInput").style.display =  "";
            document.getElementById("virtualKeyboardChromeExtensionMainKbd").style.display =  "none";
        } else if (virtualKeyboardChromeExtensionClickedElem.type == "email") {
            virtualKeyboardChromeClassStyleDisplay("kbEmailInput", "");
        }
    }
}