La roue de STAINSBEAUPAYS™
JavaScript CSS
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
css-sass
js
medias
pages
tasks
.gitignore
.jshintrc
Gruntfile.js
LICENSE
README.md
config.json
package.json

README.md

La roue de STAINSBEAUPAYS™

Prérequis

Afin de générer le projet vous avez besoin de nodejs+npm, Sass en ligne de commande et grunt-cli.

L'installation de grunt-cli se fait depuis un outil de commande — Terminal si vous êtes sur Mac, Invite de commande si vous êtes sur Window – en tappant npm install grunt-cli -g. Une fois ces éléments installés, rendez-vous dans le répertoire du projet avec votre outil de commande et tapez npm install. Cette commande installera toutes les dépendances requises pour utiliser le projet.

Le projet est basé sur la librairie Backbone. Des connaissances en Backbone ou tout autre MV* sont fortement conseillées.

Utilisation

npm start lance un écouteur de fichier permettant de compiler le projet à chaque modification de code. Il lance aussi un serveur de consultation local à l'adresse http://localhost:3000

Le code compilé et accessible depuis http://localhost:3000 se trouve dans le répertoire /publish, à la racine du projet.

Modifications

config.json

Le fichier config.json donne accès aux paramètres suivants :

cdn

Permet de choisir le serveur utilisé pour servir les vidéos et les images lors de l'avancée dans une vidéo. Utiliser "/" pour utiliser le même serveur que celui sur lequel est hébergé le code.

{
  "cdn": "/",
  ...
}

colors

Les 3 types de couleurs utilisées sur la roue. Par défaut :

  • outer: contenus jaunes
  • center: contenus jaunes strillés
  • inner: contenus noirs
{
  ...,
  "colors": {
    "outer": "#fff700",
    "center": "#fff700",
    "inner": "#111111"
  },
  ...
}

pages

Tableau associatif entre les identifiants internes de pages et les hash localisés visibles dans l'url

{
  ...,
  "pages": {
    "link1": "lien1",
    "link2": "lien2",
    "wheel": "roue"
  },
  ...
}

tracks

Tableau comprenant les vidéos à utiliser dans la roue. Chaque vidéo comprend les informations suivantes :

  • id : identifiant de la vidéo (utilisé comme nom de fichier si name n'est pas fourni)
  • type : placement dans la roue
  • duration : durée en secondes de la vidéo (utilisé pour générer la portion de cercle)
  • name : nom du fichier vidéo (sans extension)
  • title : titre de la vidéo
  • description : description de la vidéo
{
  ...,
  "tracks": [
    {
      "id": 1,
      "type": "inner",
      "duration": 102957.279,
      "name": "video01",
      "title": "Titre 1",
      "description": "Description 1"
    },
    {
      "id": 2,
      "type": "outer",
      "duration": 12957.79,
      "name": "video02",
      "title": "Titre 2",
      "description": "Description 2"
    },
    ...
  ]
}

Vidéos

Le projet se base sur des vidéos aux formats suivants :

  • .mp4 — codec video : h264, codex audio : AAC — pour Safari, Chrome et Internet Explorer
  • .webm - codec video : vp8, codec audio : Ogg Vorbis — pour Firefox, Opera et Chrome

Le chemin d'appel des vidéos se base sur la valeur du noeud cdn défini dans le fichier config.json puis du répertoire wheel ; s'en suit le répertoire qualité (sd, md, hd) puis le nom du fichier vidéo et enfin l'extension.

Par exemple, dans le cas où l'on appelle une vidéo nommée video01 en qualité sd depuis un cdn "/" sous le navigateur Safari on optiendra l'appel suivant :/wheel/sd/video01.mp4

Rotation de la roue

Lors de la rotation de la roue, des images de fond sont affichées. Ces images sont appelées depuis le répertoire /medias/dyn/rotation. Le nom du fichier image est lié à la rotation de la roue : 000.jpg, 200.jpg jusqu'au fichier 360.jpg. Le code est prévu pour appeller des images au format .webp si le navigateur prend en charge ce type d'images sinon le format .jpg est utilisé.

Compilation

La compilation du projet est gérée par Grunt. La liste des tâches disponibles sur le projet se trouve dans le répertoire /tasks.

Les commandes grunt dev et grunt release compilent respectivement le projet dans une version développement non optimisé et une version de production générant, entre autres, des css et les js minifiés.