Présentation de truzZ

Introduction

Ce document est une présentation synthétique de Truzz.

La version originale du document en PDF est téléchargeable.

Les spécifications fonctionnelles de Truzz sont détaillées dans un autre document, disponible sur demande.

Une distribution de Drupal

Truzz est une distribution de Drupal, c'est à dire un ensemble de modules intégrés et préconfigurés, destinée à être mise à disposition au public sous licence libre GPL.

L'intérêt d'une distribution est de satisfaire la plupart des besoins générique d'une organisation dans des délais courts, tout en servant de base à des développements et à des configurations spécifiques.

Ce modèle économique est en plein essor, comme en témoigne les distributions maintenant réputées d'agences web spécialisées dans Drupal : Acquia Drupal (Acquia), OpenAtrium (Development Seed), OpenPublish (Phase2 Technology), Pressflow (Four Kitchens), etc. Le fondateur de Drupal encourage l'émergence de nouvelles distributions commerciales (http://buytaert.net/on-business-models-for-drupal-distributions, http://www.archive.org/details/TheStateOfDrupal_100 minute 00:47:00).

Truzz a été conçu par Likwid. Elle est actuellement en cours de développement.

Une plate-forme de publication communautaire multi-sites

Truzz est une plate-forme de publication communautaire multi-sites.

  • Complète : les très nombreuses fonctionnalités de Truzz couvrent un large spectre des besoins dans tous les aspects de la collaboration, de la publication et de la mise en page.
  • Cohérente : Truzz n'est pas une accumulation de modules mais un système intégré basé sur des concepts simples et robustes.
  • Versatile : les principes de Truzz sont génériques, c'est à dire conçus pour répondre à des situations variés et à des usages en évolution permanente.

Les perspectives

De nouvelles fonctionnalités pourront être développées pour de futures versions de Truzz :

  • Extranet : gestion des tâches, gestion électronique de document, messagerie instantanée, etc.
  • Communautaire : réseau social, mise en relation par affinité, annonces, etc.
  • Gestion des contacts : CRM, gestion d'adhérents, annuaire partagé, etc.
  • Décisions collectives : délibération, procuration, vote, contrôle démocratique, etc.

Les fonctionnalités majeures

L'architecture et les fonctionnalités de Truzz en font un produit sans équivalent :

  • Truzz est à la fois une plate-forme multi-sites
  • et un extranet collaboratif,
  • permettant de partager facilement du contenu par des vecteurs multiples (blocs, flux de syndication, listes de diffusion),
  • dont la mise en page se fait en glisser-déposer,
  • où les styles graphiques peuvent être personnalisés facilement,
  • et dans laquelle un Assistant aide les utilisateurs à alimenter les listes de contenus de façon semi-automatique.

Une plate-forme multi-sites

Truzz est basée sur uneinstance de Drupal unique : les contenus, les utilisateurs et la configuration de tous les sites résident dans une seule base de données.

Cette architecture est inspirée des plate-formes de blogs, des fermes de wiki et des extranets d'entreprise. Elle offre plusieurs avantages par rapport à un système de génération automatique d'instances :

  • Un nouveau site peut être généré en quelques clics et bénéficie instantanément de toutes les fonctionnalités de Truzz.
  • Le concept de "site" a été réduit à sa plus simple essence : un environnement graphique correspondant à un sous-domaine. Cela permet de le distinguer de la notion de  "groupe", utilisée pour la gestion du contenu et des droits d'accès. C'est cette distinction qui rend possible la fusion entre une plate-forme multi-sites et un extranet collaboratif.
  • Le partage du contenu, des catégories, des blocs et des utilisateurs prend une dimension inégalée : tout peut être mutualisé facilement, sans les contraintes de synchronisation posées par les architectures multi-instances.
  • L'administration de bas niveau et la maintenance applicative sont facilitées : les opérations de configuration avancée, de sécurisation, de monitoring, de sauvegarde des données, de mise à jour du code et de correction des problèmes sont centralisées sur une seule instance.
  • L'administration des sites et des groupes est également facilitée : les webmestres et les modérateurs n'ont à gérer que la configuration qui les concerne directement, sans se soucier de l'infrastructure technique et des tâches de maintenance. Le temps qu'ils consacrent à l'administration et la formation nécessaire pour y parvenir sont ainsi considérablement réduits. Par ailleurs, un administrateur global peut "prendre la main" à tout instant sur un site ou sur un groupe dès que nécessaire.

La seule contrainte posée par une instance unique est la dépendance vis-à-vis des administrateurs de la plate-forme : ils ont accès à toutes les données et ont tous les pouvoirs sur les sites, les groupes, les contenus, les utilisateurs et la configuration. Cette dépendance existe également dans un système multi-instances, bien qu'à un degré moindre.

Cependant, les webmestres d'un site gèrent de façon autonome :

  • son thème graphique,
  • son menu de navigation,
  • ses contextes, qui permettent d'afficher la même barre latérale sur de nombreuses pages,
  • ses statistiques de fréquentation sur un compte Google Analytics.

Un extranet collaboratif

En plus d'être une plate-forme multi-sites, Truzz est également un groupware, c'est à dire un outil en ligne pour des groupesde travail.

L'ensemble de l'application est conçu pour faciliter la collaboration de collectifs réels, dépassant largement le cadre des "communautés virtuelles".

Les blogs

Chaque utilisateur a la possibilité de créer des blogs dès son inscription.

Ces blogs sont des groupes et bénéficient donc de toutes les fonctionnalités de collaboration, de gestion de contenu et de mise en page de la plate-forme.

Un blog peut être transformé en site à part entière par un administrateur.

La gestion des rendez-vous

La gestion des rendez-vous permet d'organiser tous les aspects d'une réunion ou d'un événement :

  1. La préparation du contenu et des ressources requises pour le rendez-vous (grâce aux groupes, aux forums, aux listes de diffusion, et aux références).
  2. La diffusion des informations sur le rendez-vous - notamment le lieu (géolocalisé sur Google Maps) et le moment (planifié dans des calendriers) - par les canaux appropriés (blocs, flux RSS/iCal et listes de diffusion).
  3. L'inscription des participants : un engagement sur leur présence au rendez-vous, mais également une indication de la popularité de l'événement ou des ressources à mobiliser.
  4. Le bilan : comptes-rendus, témoignages, photos, enregistrements audio et vidéos, etc.

Les groupes

Un groupe est un ensemble d'utilisateurs partageant des nodes. Chaque node de la plate-forme appartient à un groupe.

  • La création d'un groupe est une opération simple et rapide.
  • Chaque groupe gère de façon autonome ses nodes et ses pages.
  • Chaque groupe peut restreindre comme il le souhaite les droits d'accès au contenu grâce aux permissions et aux nodes privés.
  • La gestion des révisions permet de collaborer à plusieurs sur des nodes et de les utiliser ainsi comme des documents de travail collectifs.
  • Chaque groupe s'affiche dans l'environnement graphique d'un site. Chaque site peut avoir autant de groupes que souhaité.
  • L'inscription de nouveaux membres à un groupe peut être soit libre et immédiate, soit soumise à une validation par les modérateurs.
  • Seuls les nodes des groupes confirmés apparaissent dans les résultats de recherche et sont référencés automatiquement par l'Assistant. Cela permet de laisser une grande liberté d'action aux utilisateurs (par exemple, créer un blog) tout en permettant un contrôle sur les pages dans lesquelles les nodes apparaissent, le tout avec travail de modération réduit au minimum.

Les rôles et les permissions

Les rôles et les permissions de Truzz ont été étudiés pour satisfaire aux exigences suivantes :

  • La simplicité et la robustesse : chaque rôle correspond à un niveau de confiance. Leur nombre est donc réduit au minimum : deux au niveau global (animateur et administrateur), deux au niveau de chaque groupe (rédacteur et modérateur) et un au niveau de chaque site (webmestre).
  • La sécurité : la répartition des permissions a été pensée dans ses moindre détail pour :
  • limiter les risques de perturbation par des utilisateurs maladroits ou malintentionnés,
  • éviter la destruction irréversible d'information,
  • et préserver la confidentialité des données personnelles.
  • Le dynamisme de la communauté : les principes de la sécurité douce (inspirés des wikis) sont appliqués autant que possible. La plus grande liberté d'action est laissé aux utilisateurs  : plutôt que d'empêcher une action, on se donne les moyens de la surveiller et de rétablir facilement la situation à un état antérieur en cas de dégât.

Les questionnaires

L'outil de gestion de questionnaires peut être utilisé pour générer des pétitions, des sondages d'opinion, des fiches d'inscription à un événement, etc.

Un rédacteur peut facilement créer un questionnaire à l'aide d'une interface riche lui permettant de définir des champs de données (lignes de saisie, zones de texte, listes déroulante, cases à cocher, boutons radios, etc.)

Les administrateurs peuvent proposer des modèles de questionnaires afin d'en faciliter la création.

Les fonctionnalités disponibles incluent :

  • La validation de l'adresse e-mail.
  • L'affichage public de la liste des signataires qui ont autorisé la diffusion de leur nom.
  • Les statistiques sur les réponses fournies.
  • L'export des données complètes au format CSV.

Le partage de contenu multi-vecteurs : blocs, flux et listes de diffusion

Les références

Dans Truzz, un node n'est pas seulement un contenu, c'est aussi une liste de références vers d'autres nodes.

Les possibilités d'usages sont infinies. En voici quelques exemples illustratifs :

  • Un article peut contenir une liste de suggestions d'articles similaires.
  • Un dossier peut contenir une liste d'articles sur le même sujet.
  • Un fil d'actualités peut contenir une liste de brèves sur un thème donné.
  • Une rubrique peut contenir une liste d'articles, de dossiers et de fil d'actualité.
  • Une galerie peut contenir une liste d'images.
  • Une webTV peut contenir une liste de de vidéos.
  • Une série de podcast peut contenir une liste d'émissions audio.
  • Une webradio peut contenir une liste de séries de podcast.
  • Un bloc de syndication peut contenir une liste de contenus importés depuis un site extérieur.
  • Un bulletin d'information peut contenir une liste une série de numéros de parution.
  • Etc.

Dans Truzz, chaque liste de références peut être diffusée simultanément par trois vecteurs :

  • Les blocs (web).
  • Les flux de syndication (RSS, iCal, podcast).
  • Les listes de diffusion (e-mail).

D'autres vecteurs de diffusion seront ajoutés à l'avenir (messagerie instantanée, SMS, etc.)

Par ailleurs, une barre d'action propose les services de partage de liens habituels avec les principaux sites du web 2.0 : réseaux sociaux (Facebook, LinkedIn...), micro-blogging (Twitter...), signets sociaux (Delicious, Diigo...), vote (Digg), plates-formes de blog (Blogger...), etc.

Les blocs

Un bloc est un conteneur, une "enveloppe" permettant d'afficher un node et la liste de ses références.

Les paramètres de configuration d'un bloc permettent de déterminer notamment quelles informations du node et quelles informations de la liste des références s'affichent dans ce bloc. La liste des gabarits proposés permet de satisfaire tous les besoins de mise en page, par exemple :

  • Node seul, sans les références.
  • Titres seuls.
  • Attributs + titres.
  • Vignettes (icônes) + titres.
  • Titres + chapeaux.
  • Titres + petites vignettes + chapeaux.
  • Titres + vignettes moyennes + corps.
  • Vignettes moyennes seules.
  • Trois premières vignettes moyennes sur trois colonnes.
  • Forum (liste de fils de discussion triés par ordre de fraîcheur et indiquant le nombre de commentaires pour chaque fil).
  • Agenda simple (rendez-vous par ordre antichronologique).
  • Agenda détaillé (rendez-vous regroupés par date, i.e. avec un sous-titre pour chaque jour).
  • Galerie d'images (grille de vignettes moyennes).
  • Etc.

Une page peut afficher dans un bloc n'importe-quel node public de toute la plate-forme :

  • Le même node peut être affiché dans de nombreux blocs, sur de nombreuses pages de toute la plate-forme.
  • Un bloc peut être dupliqué dans autant de pages que souhaité. Tous les blocs dupliqués affichent le même node mais chaque bloc s'affiche selon ses propres paramètres.
  • Un utilisateur peut ainsi construire et alimenter de nombreuses pages en créant des blocs à partir de ses propres nodes ou des nodes trouvé sur la plate-forme.

Les flux de syndication

Les références des nodes sont publiés dans plusieurs formats de flux de syndication :

  • Un flux RSS pour chaque node.
  • Un flux iCal pour chaque calendrier (node référençant des rendez-vous).
  • Un flux de podcast pour chaque webradio (node référençant des émissions audio).

Les listes de diffusion

Chaque node de la plate-forme, quel qu'il soit (article, dossier, rubrique, vidéo, etc.), génère automatiquement deux listes de diffusion :

  • La liste de diffusion de ses références, c'est à dire des contenus qui lui sont liés.
  • La liste de diffusion de ses commentaires, qui en font un fil de discussion ad-hoc.

Un contributeur peut s'abonner aux listes de diffusion de chaque node auquel il a accès. Il reçoit alors les références ou les commentaires de ce node par e-mail.

La mise en page en glisser-déposer

Dans Truzz, l'ensemble de la mise en page se fait à la souris, en glisser-déposer.

Le Panier

Le Panier sert à la collecte des nodes :

  • Un utilisateur peut déposer dans son Panier tous les nodes auxquels il a accès.
  • Il peut utiliser le Panier comme gestionnaire de signets et classer ses nodes favoris dans des dossiers.
  • Il peut également glisser-déposer un node du Panier en tant que bloc dans une page ou en tant que référence dans un autre node.

La gestion des références en glisser-déposer

Les références peuvent être ajoutées, réordonnées et retirées d'un node à la souris, dans le Panier ou dans une page :

  • Un utilisateur peut glisser-déposer n'importe-quel node de la plate-forme dans un autre node qu'il a le droit de modifier, pour l'y ajouter en tant que référence.
  • Il peut également réordonner les références d'un node en glisser-déposer.

La gestion des blocs en glisser-déposer

Les blocs qui composent une page peuvent être entièrement disposés à la souris :

  • ils peuvent êtrecréés à partir d'un node glissé depuis le Panier,
  • déplacés et réordonnés dans une page,
  • et glissés de la page vers le Panier pour pouvoir être dupliqués dans d'autres pages.

L'utilisateur peut choisir une disposition différente pour chaque page, par exemple : une colonne large et une colonne étroite ; ou trois colonnes ; ou une région en pleine largeur au-dessus de deux colonnes,  etc. L'éventail des dispositions proposées permet de satisfaire tous les besoins en terme de mise en page.

La personnalisation des styles graphiques

Chaque site dispose de sa propre feuille de styles.

Un webmestre peut personnaliser la feuille de style de son site de deux manières :

  • En modifiant directement les règles CSS de son site dans une zone de texte.
  • Ou par une interface permettant de personnaliser facilement et sans connaissance technique tous les éléments de la feuille de style : le bandeau de la têtière, les couleurs d'habillage des blocs, la couleur de fond, l'espacement des lignes, la police de caractères, la couleur et la taille du texte, etc.

L'Assistant

La plupart des sites web actuels font un usage intensif de requêtes de base de données pour mettre à jour des listes de manière automatisée : fils d'actualités, forums de discussion, petites annonces, boutiques en ligne, moteurs de recherche, etc. Cette approche comporte un inconvénient majeur : les listes générées automatiquement incluent toujours une part de bruit. Autrement dit, elles sont généralement moins pertinentes que des listes élaborées manuellement avec le discernement et l'expertise d'un humain.

Pour répondre à ce problème, Likwid propose une approche innovante permettant de gérer des listes de façon semi-automatique :

  • L'Assistant alimente automatiquement un grand nombre de listes en tâche de fond. Il peut ainsi être utilisé, par exemple, pour ajouter des brèves à des fils d'actualité, des articles à des dossiers, des recommandations de contenu similaire à sur un sujet donné, etc.
  • Les utilisateurs gardent l'entière maîtrise de ces listes : ils peuvent à tout moment retirer et réordonner les éléments ou en ajouter eux-mêmes de nouveaux manuellement, corrigeant et complétant ainsi le travail de l'Assistant sans le perturber.

Lorsque le mode Assistant est activé pour un node, l'Assistant met à jour en continu la liste de ses références en lui ajoutant et retirant des éléments, à partir d'une requête définie par l'utilisateur.

L'intervention de l'Assistant ne perturbe pas le travail des utilisateurs : la liste reste en permanence modifiable manuellement et les éléments retirés par un utilisateur ne sont pas ajoutés à nouveau par l'Assistant.

Un choix très large de critères peut être utilisé dans les requêtes. L'interface de création de requête est familière aux utilisateurs puisqu'elle est identique à celle de la page de recherche.

L'Assistant s'appuie sur Apache Solr, un moteur de recommandation très puissant : pondération des critères, score de pertinence pour les résultats, etc. Apache Solr repose sur la technologie Lucene, utilisée par de grands noms tels que la Bibliothèque Nationale de France, Wikipédia, AOL, IBM, Eclipse, Akamai, CNET, OpenSolaris et SourceForge.

Les autres fonctionnalités

Les fonctionnalités majeures décrites dans la section précédente ne représentent qu'une partie des possibilités offertes par Truzz.

De nombreuses autres fonctionnalités couvrent l'ensemble des besoins des utilisateurs, rédacteurs, modérateurs et administrateurs de la plate-forme : gestion des nodes, des utilisateurs, contenu multimédia, catégorisation, contribution, administration, optimisation des performances, etc. Cette section en fournit une vue d'ensemble très synthétique et non exhaustive.

La gestion des nodes

Dans Drupal, un node est un élément de base qui contient les données et le texte. Dans Truzz, tout est un node : un article, une rubrique, un dossier, un bloc de syndication, un commentaire, un rendez-vous, un profil d'utilisateur, une liste de diffusion, etc.

  • Les modérateurs gèrent tous les nodes dans une interface centrale permettant de créer des filtres riches et d'agir sur plusieurs nodes à la fois en quelques clics.
  • Les nodes peuvent être effacés sans que leurs données soient supprimées : ils sont placés dans une "corbeille" et peuvent être récupérés facilement si nécessaires.
  • Un nouveau node est généré à partir d'un modèle. Un administrateur peut créer facilement de nombreux modèles afin de faciliter le travail des utilisateurs.
  • Le formulaire de contribution est découpé en onglets verticaux pour plus d'ergonomie.
  • L'éditeur riche offre un confort de saisie similaire à un traitement de texte. Des plug-ins peuvent être développés à la demande afin d'y ajouter des fonctionnalités.
  • Le texte copié-collé dans l'éditeur riche depuis OpenOffice, Word ou un site web tierce conserve son formatage : le code HTML est automatiquement nettoyé pour ne conserver que les balises utiles (gras, italiques, puces, titres, etc.) et de supprimer ou convertir les autres. De nouvelles règles de conversion peuvent être ajoutées à l'aide d'une interface riche.
  • Des vignettes de différentes tailles sont générées automatiquement pour chaque image ajoutée aux contenus, afin d'optimiser le temps de chargement des pages.
  • Les documents PDF joints aux nodes sont automatiquement accompagnés d'une image de prévisualisation de leur contenu.
  • Un lecteur audio est automatiquement inséré dans un node lorsqu'un fichier MP3 est uploadé.
  • Les émissions audio peut être diffusée en podcast et regroupées dans une webradio.
  • Un lecteur vidéo est automatiquement inséré dans un node lorsque l'url d'une vidéo hébergée sur un site tiers (YouTube, Dailymotion, etc.) est collée dans un champ prévu à cet effet.

La contribution

  • Le formulaire de contribution est découpé en onglets verticaux pour plus d'ergonomie.
  • L'éditeur riche offre un confort de saisie similaire à un traitement de texte. Des plug-ins peuvent être développés à la demande afin d'y ajouter des fonctionnalités.
  • Le texte copié-collé dans l'éditeur riche depuis OpenOffice, Word ou un site web tierce conserve son formatage : le code HTML est automatiquement nettoyé pour ne conserver que les balises utiles (gras, italiques, puces, titres, etc.) et de supprimer ou convertir les autres. De nouvelles règles de conversion peuvent être ajoutées à l'aide d'une interface riche.
  • Des vignettes de différentes tailles sont générées automatiquement pour chaque image ajoutée aux contenus, afin d'optimiser le temps de chargement des pages.
  • Les documents PDF joints aux nodes sont automatiquement accompagnés d'une image de prévisualisation de leur contenu.
  • Un lecteur audio est automatiquement inséré dans un node lorsqu'un fichier MP3 est uploadé.
  • Les émissions audio peut être diffusée en podcast et regroupées dans une webradio.
  • Un lecteur vidéo est automatiquement inséré dans un node lorsque l'url d'une vidéo hébergée sur un site tiers (YouTube, Dailymotion, etc.) est collée dans un champ prévu à cet effet.

Les images, l'audio et la vidéo

  • Des vignettes de différentes tailles sont générées automatiquement pour chaque image ajoutée aux contenus, afin d'optimiser le temps de chargement des pages.
  • Les documents PDF joints aux nodes sont automatiquement accompagnés d'une image de prévisualisation de leur contenu.
  • Un lecteur audio est automatiquement inséré dans un node lorsqu'un fichier MP3 est uploadé.
  • Les émissions audio peut être diffusée en podcast et regroupées dans une webradio.
  • Un lecteur vidéo est automatiquement inséré dans un node lorsque l'url d'une vidéo hébergée sur un site tiers (YouTube, Dailymotion, etc.) est collée dans un champ prévu à cet effet.

Les tags

Les tags indiquent les sujets d'un node : thèmes, géographie, organisations, événements et personnalités.

  • La taxonomie est mutualisée sur toute la plate-forme.
  • La saisie des tags est facilitée par :
  • L'autocomplétion : une liste déroulante propose les tags existants contenant la chaîne de caractère saisie.
  • L'ajout progressif des tags : chaque tag ajouté apparaît au-dessus de la zone de saisie, ce qui génèrent moins d'erreurs que la saisie sur une ligne séparée par des virgules.
  • La suggestion : à chaque ajout, une liste de tags est automatiquement suggérée, en fonction des associations de tags les plus fréquemment rencontrées dans les nodes existant.
  • Les synonymes : les synonymes sont des termes définis par les administrateurs, qui sont automatiquement remplacé par un tag "officiel" ayant le même sens, ce qui permet de préserver une cohérence dans la catégorisation des nodes.
  • Les nouveaux tags proposés par les utilisateurs sont placés dans une file de modération avant d'être validés par les animateurs de la plate-forme. Un tag validé est affecté au node pour lequel il a été proposé.

Les attributs

Les attributs d'un node caractérisent sa nature ou son usage. Par exemple : actualité, article, bloc, communiqué de presse , compte rendu, documentation, dossier, émission, externe, interne, lettre d'information, officiel, proposition, rapport, revue de presse, rubrique, tract, vidéo, etc.

  • Les attributs disponibles sont définis pour toute la plate-forme par les administrateurs.
  • Un node peut avoir plusieurs attributs.
  • Les attributs peuvent être utilisés pour filtrer le contenu pour des recherches, dans l'interface de gestion des nodes ou lors de l'ajout automatique de références par l'Assistant.
  • Un attribut peut être associé à un pictogramme, présenté en regard du titre du node partout où il est affiché.

Les commentaires et les forums de discussion

Dans Truzz, chaque node est également un fil de discussion de commentaires.

Les forums sont des nodes qui référencent des fils de discussion.

Un contributeur peut s'abonner par e-mail à un fil de discussion. Celui-ci devient alors une liste de diffusion à part entière.

La gestion des utilisateurs

  • Un utilisateur à un compte unique sur la plate-forme. Il reste authentifié d'un site à l'autre.
  • Le profil d'un utilisateur comprend des informations sur ses centres d'intérêt et sa géolocalisation.
  • Sa page de profil présente les contributions de l'utilisateur ainsi que les nodes, les groupes et les autres utilisateurs en rapport avec ses centres d'intérêt.
  • Les animateurs de la plate-forme peuvent des comptes en série à partir d'une liste d'adresses e-mail.

 Les nodes privés

Un node privé est en accès restreint :

  • Sa page n’est accessible qu’aux membres du groupe propriétaire du node.
  • Un node privé n'est visible dans les résultats de recherche que par les membres du groupepropriétaire.
  • Un node privé ne peut être affiché en tant que référence que dans un node privé du même groupe que lui.
  • Un node privé ne peut être affiché en tant que bloc que dans la page d'un node privé du même groupe que lui.
  • Les entrées de menu de navigation pointant vers un node privé sont désactivées.

La page de recherche

La page de recherche permet d'effectuer des recherches dans le contenu et les catégories des nodes.

  • Une interface riche de construction de requête permet à l'utilisateur d'ajouter des critères de recherche un à un.
  • Les résultats de recherche sont fournis par le moteur de recherche Apache Solr.
  • La recherche par facettes permet d'affiner une recherche basée sur des tags. Lorsqu'une recherche a été effectuée, des tags sont proposés pour affiner la recherche. En cliquant sur ces tags, l'utilisateur les ajoute comme critères.
  • Des mots similaires (variantes et synonymes) à ceux de la recherche sont suggérés à l'utilisateur pour lui permettre d'améliorer rapidement sa requête.

L'interface d'administration

Truzz propose un environnement graphique unique pour toute les interactions entre les utilisateurs et le système

  • La barre d'administration est un panneau latéral contenant le menu d'administration et le Panier. Elle peut être affichée ou masquée instantanément en un clic.
  • Le menu d'administration est conçu pour faciliter la navigation dans l'arborescence des pages d'administration, qui peuvent s'avérer très nombreuses.
  • La barre d'actions est attachée aubas de la fenêtre du navigateur. Elle regroupe les actions disponibles pour la plupart des utilisateurs (profil, recherche, flux, signaler un contenu, envoyer un lien vers la page aux principaux sites du web 2.0, etc.)

Dans une plate-forme collaborative telle que Truzz, la distinction traditionnelle entre un "frontend" et un "backend" n'a plus lieu d'être. L'ensemble de l'interface est conçu pour alterner les interactions riches telles que la lecture, la contribution, la modération, la catégorisation, la mise en page et la configuration.

Cette cohérence graphique permet aux utilisateurs de découvrir les fonctionnalités avancées dans une interface familière, en gardant des repères visuels permanents.

Par ailleurs, l'absence de séparation nette entre une zone "passive" et une zone "active" pour les utilisateurs matérialise un espace commun dans lequel ils peuvent varier leur mode d'implication sans cloisonnement artificiel.

Cet environnement graphique a été conçu avec deux préoccupations :

  • La clarté : chaque élément de l'interface doit être identifiable facilement par un utilisateur novice et être accessible de manière intuitive. Pour cela, notre graphiste a conçu les styles, les pictogrammes et la disposition des interfaces dans un souci d'équilibre entre le sens et l'esthétique.
  • L'ergonomie : les utilisateurs chevronnés doivent pouvoir effectuer les tâches courantes en un minimum de temps et de contraintes. Dans ce but, nous mettons à profit les nombreuses possibilités de contrôles et d'interactions riches offertes par le framework jQuery UI.

L'optimisation des performances

L'optimisation du code

La rapidité d'affichage d'une page dépend du temps de calcul d'une page  :

  • Nous développons nos modules avec une préoccupation constante pour la rapidité d'exécution du code : les requêtes MySQL sont optimisées pour être à la fois rapides et en nombre réduit et les modules tiers utilisés ont été sélectionnés après un audit rigoureux de leur impact sur les performances du système.
  • Le code PHP exécuté est stocké en mémoire vive sous forme d'opcode, c'est-à-dire de langage machine précompilé, plus rapide à exécuter.
  • Truzz est basé sur Pressflow, une distribution de Drupal conçue par l'agence Four Kitchen, leader dans le domaine des sites à haute performance et un des contributeurs majeurs au noyau de Drupal (HTTP://fourkitchens.com/pressflow-makes-drupal-scale). Les améliorations de Pressflow incluent : le support de laréplication MySQL ; la compatibilité avec les reverse proxies tel que Varnish ; une meilleure utilisation des fonctionnalités de PHP 5, grâce à l'abandon de la compatibilité avec PHP 4 ; une meilleure utilisation des fonctionnalités de MySQL, grâce à l'abandon de la compatibilité avec les autres moteurs de bases de données (PostgreSQL, SQLite...) ; de nombreuses optimisations du noyau de Drupal, qui seront probablement (comme les précédentes) intégrées aux futures versions officielles de Drupal.
  • L'architecture système (clustering, configuration Apache et MySQL, etc.) est conçue en collaboration étroite avec le prestataire assurant l'infogérance, afin de garantir une excellente tenue de montée en charge.

Les caches

Truzz fonctionne avec plusieurs niveaux de cache, qui permettent d'économiser un temps de calcul considérable :

  • Truzz stocke le cache du noyau de Drupal avec Memcached, un système de gestion de cache extrêmement performant utilisant la mémoire vive (RAM) du système.
  • Le cache authentifié : traditionnellement, les utilisateurs authentifiés ne peuvent pas recevoir des pages en provenance d'un cache, car cela pose des problèmes de gestion de droits d'accès notamment. Truzz dispose de son propre système de gestion de cache pour les utilisateurs authentifiés, qui s'intègre avec son système de gestion de droits d'accès. Ainsi, les pages sont servies aux contributeurs en quelques dixièmes de secondes, sans devoir être recalculées.
  • Le cache anonyme : les utilisateurs anonymes bénéficient d'un cache statique, plus rapide encore que le cache des utilisateur authentifié. Les pages de la Truzz leur sont servies en quelques centièmes de seconde directement à partir d'un reverse proxy (Varnish), c'est-à-dire d'un logiciel stockant les pages entières dans la mémoire vive du serveur. Une requête HTTP n'occasionne ainsi absolument aucune exécution de code PHP, ni de requête SQL, ni d'accès disque. Un reverse proxy peut servir sans difficulté plusieurs milliers de requêtes par seconde. Ses performances ne sont limitées que par la taille de la mémoire vive et la bande passante du serveur, permettant ainsi des pics de fréquentation extrêmes.
  • Le recalcul des pages "juste à temps" : l'architecture très particulière de Truzz (basée entièrement sur les références et les blocs) permet de ne recalculer une page pour le cache qu'à l'instant où elle est mise à jour. À l'inverse, le cache d'un site Drupal "classique" doit supprimer chaque page stockée à intervalles réguliers faute d'information sur la mise à jour de leur contenu, ce qui a pour conséquence de nombreuses requêtes lentes inutiles et l'envoi de pages non à jour.

L'optimisation "côté client"

La rapidité d'affichage d'une page dépend également du temps de chargement dans le navigateur :

  • Les fichiers HTML sont stockés dans les caches dans un format compressé, ce qui réduit considérablement le temps de téléchargement.
  • Les fichiers CSS et JavaScript sont concaténés (c'est-à-dire rassemblés en un seul fichier) et stockés dans les caches dans un format compressé, ce qui réduit considérablement le nombre de requêtes HTTP et le temps de téléchargement.
  • Les fichiers d'image sont automatiquement compressés sur le serveur en fonction de leur taille d'affichage dans la page. Cette approche réduit non seulement le temps de téléchargement des images, mais également le temps d'affichage de la page par le navigateur (car il n'a pas besoin de redimensionner les images).