Une base de données enregistre la structure des sites des artistes et celui du projet A ainsi que les commentaires échangés ou publiés.
Les images et le code des générateurs sont stockés à part.

Aio projeta bdd schema 1.0 140117

1. La base de données

→ Voir aussi le document PDF détaillé aio-projeta-bdd-0.9.0-140215.pdf (270 ko).

1.1. Cloisonnement des sites

La base de données de l'application est unique ; elle enregistre les informations de tous les sites, hors fichiers externes (décrits au chapitre 2).

Pour garantir un bon niveau de sécurité, les données sont cloisonnées entre les sites : un objet en base ne peut être en relation qu'avec des objets du même site. Des contrôles d'intégrité sont effectués systématiquement dans les modèles au moment de l'enregistrement et dans les contrôleurs, à partir de l'attribut site_id de chaque objet.

Cette règle n'admet que les exceptions suivantes :

  • les utilisateurs (table 'users') sont communs à tous les sites, mais chacun est rattaché à un site ;
  • les composants sont des générateurs (table 'generators') communs ;
  • les collages (table 'stickers') peuvent reliés un espace d'un site à une œuvre d'un autre site en cas d'emprunt entre sites autorisé.

1.2. La description des sites et de leur contenu

La table 'sites' déclare tous les sites Web du projet, y compris le site communautaire, chaque site disposant de sa propre adresse internet (sous-domaine ou domaine spécifique).

Pour chacun d'eux, la table 'spaces' en construit la structure avec un arbre d'espaces de publication : expositions, actualités, etc. Certains espaces ont un usage spécial, soit visible (page d'intro, page d'accueil, page d'actualités), soit invisible (espaces de ressources et de réserve).

Dans chaque espace, les collages (stickers) accrochent des œuvres (works). Ceci permet de référencer plusieurs fois une même œuvre dans plusieurs espaces et si besoin de les déplacer facilement. Une œuvre peut avoir plusieurs œuvres filles pour compléter sa description par celle de ses parties, par exemple une suite musicale et chacun de ses chants.

Au départ, une œuvre décrit complètement une réalisation artistique avec trois images différentes et un texte associé. Cette notion est également utilisée pour tout contenu volumineux : articles, textes de liaison, ressources graphiques (logos, signatures, etc.) ou sonores, voire des documents PDF ou autres. Les objets joints (attachments) à une œuvre suppriment ces limites.

La version 0.9 en cours de développement considère progressivement tous les textes, images, documents et autres fichiers comme des ingrédients (ingredients) et référence leurs utilisations (ingredient_uses). À la fin de cette migration, la notion d'objets joints sera supprimée ainsi que le référencement direct de fichiers par une œuvre.

1.3. La génération des pages

Les générateurs (generators) de page sont utilisés en deux temps : pendant la phase de définition d'un site, ils produisent le code qui sera ensuite lors de sa consultation par les internautes.

Chaque site a un utilisateur titulaire et un arbre d'espaces d'enregistrement, décrivant son contenu, ainsi qu'un espace de ressources communes (logo, fond d'écran, etc.) et un pour stocker les éléments mis en réserve avant leur publication.

Les générateurs sont de quatre types différents :

  1. les vues (views) sont les seules à produire effectivement les pages présentées aux internautes ; pour ce faire, les vues font appel aux générateurs des autres types  ;
  2. les gabarits (layouts) sont des modèles de pages comportant la structure et les parties fixes ou presque ;
  3. les partiels (partials) produisent des morceaux de pages : menus, articles, présentation graphique, etc. ; ils peuvent être réutilisés dans les différents générateurs d'un site ;
  4. les composants (components) sont des partiels prédéfinis, utilisables pour la fabrication de tous les sites.

La composition (compositions) d'un générateur enregistre les autres générateurs qu'il utilise. Exemple : une vue appelle presque toujours des composants et parfois des partiels.

Enfin, tous les textes peuvent être écrits dans plusieurs langues pour permettre alors aux générateurs de produire une page dans sa version originale ou dans sa traduction la plus adaptée en fonction de la demande de l'internaute ou du paramétrage de son navigateur.

L'interactivité des utilisateurs

Les abonnements (subscriptions) définissent la relation entre les utilisateurs et les sites. Ils permettent de définir les abonnements aux informations sur un site, le profil de membre de l'association liée au site et tous les droits des gestionnaires et auteurs. Des envois ciblés de messages pourront ainsi être effectués à partir de ces données ainsi que la génération de pages présentant les membres d'une association... Les groupes (groups) déterminent les différents types d'abonnements de chaque site.

Les utilisateurs déclarés ou non peuvent publier des commentaires (comments) sur une page d'un site qui a choisi d'offrir cette fonctionnalité. Le gestionnaire du site peut les publier ou non et répondre à leurs rédacteurs. Les commentaires peuvent aussi servir pour des échanges de messages entre les membres inscrits du projet A.

2. Les fichiers hors base de données

En dehors de la base de données, l'application enregistrent des informations dans des fichiers indépendants : les images ; les documents ; le code des générateurs ; les moules de saisie ; les journaux.

Jusqu'à trois images peuvent être définies dans une œuvre ; c'est en général la même photo avec des dimensions différentes. Un document au format PDF ou autres peut être enregistré à la place d'une image. Les objets joints (attachments) à une œuvre permettent en outre chacun l'enregistrement structuré et décrit d'un fichier quelconque : fichier son ou autre.

Le code des générateurs est lisible en mode conception sur l'application ; il doit encore être écrit et installé en dehors de l'application. Dans une version ultérieure, il sera généré automatiquement à partir de caractéristiques fonctionnelles que le concepteur aura enregistré dans la base de données.

Associés aux générateurs, les moules, facultatifs, définissent dans chaque cas les possibilités de saisie par les webmestres et les aides dans ce travail : sélection des champs ; valeurs par défaut ; interactions autorisées ; explications.

Les feuilles de styles au format CSS fixent la présentation des pages HTML générées par l'application pour être servies aux internautes.

Les journaux tracent l'activité de l'application pour tracer les incidents et produire des statistiques.

version 0.9.0-0375-140204
↑ Haut